internal VaultInfo(string id, Encrypted encryptedAttributes, Encrypted encryptedKey, Keychain keychain)
 {
     Id = id;
     _encryptedAttributes = encryptedAttributes;
     _encryptedKey        = encryptedKey;
     _keychain            = keychain;
 }
Esempio n. 2
0
        internal static T Decrypt <T>(Encrypted encrypted, IDecryptor decryptor)
        {
            var plaintext = decryptor.Decrypt(encrypted).ToUtf8();

            try
            {
                return(JsonConvert.DeserializeObject <T>(plaintext));
            }
            catch (JsonException e)
            {
                throw new InternalErrorException("Failed to parse JSON", e);
            }
        }
        public byte[] Decrypt(Encrypted encrypted)
        {
            switch (encrypted.Scheme)
            {
            case AesKey.EncryptionScheme:
                return(GetAes(encrypted.KeyId).Decrypt(encrypted));

            case RsaKey.EncryptionScheme:
                return(GetRsa(encrypted.KeyId).Decrypt(encrypted));
            }

            throw new UnsupportedFeatureException($"Encryption scheme '{encrypted.Scheme}' is not supported");
        }
Esempio n. 4
0
        public byte[] Decrypt(Encrypted e)
        {
            if (e.KeyId != Id)
            {
                throw new InternalErrorException("Mismatching key id");
            }

            if (e.Scheme != EncryptionScheme)
            {
                throw new InternalErrorException(
                          $"Invalid encryption scheme '{e.Scheme}', expected '{EncryptionScheme}'");
            }

            return(AesGcm.Decrypt(Key, e.Ciphertext, e.Iv, new byte[0]));
        }
Esempio n. 5
0
        public byte[] Decrypt(Encrypted e)
        {
            if (e.KeyId != Id)
            {
                throw new InternalErrorException("Mismatching key id");
            }

            if (e.Scheme != EncryptionScheme)
            {
                throw new InternalErrorException(
                          $"Invalid encryption scheme '{e.Scheme}', expected '{EncryptionScheme}'");
            }

            return(Crypto.DecryptRsaSha1(e.Ciphertext, Parameters));
        }
Esempio n. 6
0
 internal static void DecryptAesKey(Encrypted encryptedAesKey, Keychain keychain)
 {
     keychain.Add(AesKey.Parse(Decrypt <R.AesKey>(encryptedAesKey, keychain)));
 }
Esempio n. 7
0
 internal static T Decrypt <T>(R.Encrypted encrypted, IDecryptor decryptor)
 {
     return(Decrypt <T>(Encrypted.Parse(encrypted), decryptor));
 }
Esempio n. 8
0
 internal static void DecryptRsaKey(R.Encrypted encryptedRsaKey, Keychain keychain)
 {
     DecryptRsaKey(Encrypted.Parse(encryptedRsaKey), keychain);
 }
Esempio n. 9
0
 internal static void DecryptRsaKey(Encrypted encryptedRsaKey, Keychain keychain)
 {
     keychain.Add(RsaKey.Parse(Decrypt <R.RsaKey>(encryptedRsaKey, keychain)));
 }
Esempio n. 10
0
 public bool CanDecrypt(Encrypted encrypted)
 {
     return(CanDecrypt(encrypted.Scheme, encrypted.KeyId));
 }