mirror of
https://github.com/bitwarden/android.git
synced 2024-12-18 23:31:52 +03:00
add support for rsa oaep sha1 enc type
This commit is contained in:
parent
2714c7cce9
commit
1be4f6e20c
3 changed files with 14 additions and 5 deletions
|
@ -5,6 +5,7 @@
|
||||||
AesCbc256_B64 = 0,
|
AesCbc256_B64 = 0,
|
||||||
AesCbc128_HmacSha256_B64 = 1,
|
AesCbc128_HmacSha256_B64 = 1,
|
||||||
AesCbc256_HmacSha256_B64 = 2,
|
AesCbc256_HmacSha256_B64 = 2,
|
||||||
RsaOaep_Sha256_B64 = 3
|
Rsa2048_OaepSha256_B64 = 3,
|
||||||
|
Rsa2048_OaepSha1_B64 = 4
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,7 +55,8 @@ namespace Bit.App.Models
|
||||||
CipherText = encPieces[1];
|
CipherText = encPieces[1];
|
||||||
Mac = encPieces[2];
|
Mac = encPieces[2];
|
||||||
break;
|
break;
|
||||||
case EncryptionType.RsaOaep_Sha256_B64:
|
case EncryptionType.Rsa2048_OaepSha256_B64:
|
||||||
|
case EncryptionType.Rsa2048_OaepSha1_B64:
|
||||||
if(encPieces.Length != 1)
|
if(encPieces.Length != 1)
|
||||||
{
|
{
|
||||||
throw new ArgumentException("Malformed encPieces.");
|
throw new ArgumentException("Malformed encPieces.");
|
||||||
|
|
|
@ -350,12 +350,19 @@ namespace Bit.App.Services
|
||||||
throw new ArgumentNullException(nameof(privateKey));
|
throw new ArgumentNullException(nameof(privateKey));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(encyptedValue.EncryptionType != EncryptionType.RsaOaep_Sha256_B64)
|
IAsymmetricKeyAlgorithmProvider provider = null;
|
||||||
|
switch(encyptedValue.EncryptionType)
|
||||||
{
|
{
|
||||||
throw new ArgumentException("encType unavailable.");
|
case EncryptionType.Rsa2048_OaepSha256_B64:
|
||||||
|
provider = WinRTCrypto.AsymmetricKeyAlgorithmProvider.OpenAlgorithm(AsymmetricAlgorithm.RsaOaepSha256);
|
||||||
|
break;
|
||||||
|
case EncryptionType.Rsa2048_OaepSha1_B64:
|
||||||
|
provider = WinRTCrypto.AsymmetricKeyAlgorithmProvider.OpenAlgorithm(AsymmetricAlgorithm.RsaOaepSha1);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new ArgumentException("EncryptionType unavailable.");
|
||||||
}
|
}
|
||||||
|
|
||||||
var provider = WinRTCrypto.AsymmetricKeyAlgorithmProvider.OpenAlgorithm(AsymmetricAlgorithm.RsaOaepSha256);
|
|
||||||
var cryptoKey = provider.ImportKeyPair(privateKey, CryptographicPrivateKeyBlobType.Pkcs8RawPrivateKeyInfo);
|
var cryptoKey = provider.ImportKeyPair(privateKey, CryptographicPrivateKeyBlobType.Pkcs8RawPrivateKeyInfo);
|
||||||
var decryptedBytes = WinRTCrypto.CryptographicEngine.Decrypt(cryptoKey, encyptedValue.CipherTextBytes);
|
var decryptedBytes = WinRTCrypto.CryptographicEngine.Decrypt(cryptoKey, encyptedValue.CipherTextBytes);
|
||||||
return decryptedBytes;
|
return decryptedBytes;
|
||||||
|
|
Loading…
Reference in a new issue