コード例 #1
0
 public KeyValueStorageSecure(
     string prefix,
     string version,
     VersionedCrypterProvider crypterProvider,
     IKeyValueStorage kvs) : base(prefix, kvs)
 {
     _crypterProvider = crypterProvider;
     _version         = version;
 }
コード例 #2
0
ファイル: KeyValueStorage.cs プロジェクト: keroxp/UniCommon
 public static IKeyValueStorage Secure(
     string prefix,
     string version,
     VersionedCrypterProvider crypterProvider,
     IKeyValueStorage kvs = null)
 {
     if (kvs == null)
     {
         kvs = Prefixed(prefix);
     }
     return(new KeyValueStorageSecure(prefix, version, crypterProvider, kvs));
 }
コード例 #3
0
ファイル: CrypterTest.cs プロジェクト: keroxp/UniCommon
        public void Decrypt_Different_Version()
        {
            c = Crypter.Default(() => "password");
            VersionedCrypterProvider provider = vsn => Crypter.Default(() => vsn);
            // 違うバージョンで読み出しても復号化できる
            var k1 = KeyValueStorage.Secure("test", "1", provider);

            k1.Upsert("key", "value");
            Assert.AreEqual("value", k1.GetString("key"));
            var k2 = KeyValueStorage.Secure("test", "2", provider);

            Assert.AreEqual("value", k2.GetString("key"));
            // k2 -> k1
            k2.Upsert("key2", "value2");
            Assert.AreEqual("value2", k1.GetString("key2"));
        }