internal VaultInfo(string id, Encrypted encryptedAttributes, Encrypted encryptedKey, Keychain keychain) { Id = id; _encryptedAttributes = encryptedAttributes; _encryptedKey = encryptedKey; _keychain = keychain; }
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"); }
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])); }
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)); }
internal static void DecryptAesKey(Encrypted encryptedAesKey, Keychain keychain) { keychain.Add(AesKey.Parse(Decrypt <R.AesKey>(encryptedAesKey, keychain))); }
internal static T Decrypt <T>(R.Encrypted encrypted, IDecryptor decryptor) { return(Decrypt <T>(Encrypted.Parse(encrypted), decryptor)); }
internal static void DecryptRsaKey(R.Encrypted encryptedRsaKey, Keychain keychain) { DecryptRsaKey(Encrypted.Parse(encryptedRsaKey), keychain); }
internal static void DecryptRsaKey(Encrypted encryptedRsaKey, Keychain keychain) { keychain.Add(RsaKey.Parse(Decrypt <R.RsaKey>(encryptedRsaKey, keychain))); }
public bool CanDecrypt(Encrypted encrypted) { return(CanDecrypt(encrypted.Scheme, encrypted.KeyId)); }