示例#1
0
        public void ExtractEncryptedAccounts_returns_accounts_and_caches_keys()
        {
            var blob = "c2FsdHNhbHRzYWx0c2FsdHNhbHRzYWx0c2FsdHNhbHRLV0MzAxW0NQiQrbiEe4yl26Ga" +
                       "gNu1edW/lK/INVrdUkE1+nmpiTZHlNkKKSK5NXbWGuztnk3256De1/2GtaUXjTKOMYvh" +
                       "eV3TJJZWHKHEbSBHJ63OXH/svTCBm1yncDDcqWicVOjQwzP5C4oTmRB9jCAE9A7kx8bZ" +
                       "jz2VQaAAxbKWwCFCSrzFXB22R6DwH+rpnKshrcHiflI8Fy2o000mU1XRhk1yFNqYZkiJ" +
                       "BH0N3aJR7AkqRRALhUaLsMgYWsCxPqD9dP0dsp7A03htUKllVMfjfRexwJfJGi2ezSUv" +
                       "egGVt3k=";

            var cache    = new Parse.DerivedKeyCache();
            var accounts = Parse.ExtractEncryptedAccounts(blob.Decode64(), Password, cache);

            Assert.Equal(2, accounts.Length);
            Assert.Single(cache.Keys);
        }
示例#2
0
        public void ComputeEncryptionKey_derives_key_and_stores_it_in_cache()
        {
            var cache = new Parse.DerivedKeyCache();
            var key   = Parse.ComputeEncryptionKey(
                Password.ToBytes(),
                Salt32,
                new Parse.CryptoConfig(
                    new Parse.Pbkdf2Config(Parse.Pbkdf2Config.HashMethodType.Sha1, 10204, 32),
                    Parse.CryptoConfig.CipherModeType.Cbc,
                    Parse.CryptoConfig.IvGenerationModeType.EvpByteToKey,
                    Parse.CryptoConfig.SignatureModeType.None),
                cache);

            Assert.Equal("OAIU9FREAugcAkNtoeoUithzi2qXJQc6Gfj5WgPD0mY=".Decode64(), key);
            Assert.Single(cache.Keys);
            Assert.Contains(
                "pbkdf2-Sha1-10204-70617373776f7264-73616c7473616c7473616c7473616c7473616c7473616c7473616c7473616c74",
                cache.Keys);
        }