|
|
|
|
@ -55,6 +55,8 @@ namespace Bit.Core.Utilities
@@ -55,6 +55,8 @@ namespace Bit.Core.Utilities
|
|
|
|
|
switch(encType) |
|
|
|
|
{ |
|
|
|
|
case Enums.EncryptionType.AesCbc256_B64: |
|
|
|
|
case Enums.EncryptionType.Rsa2048_OaepSha1_HmacSha256_B64: |
|
|
|
|
case Enums.EncryptionType.Rsa2048_OaepSha256_HmacSha256_B64: |
|
|
|
|
if(encStringPieces.Length != 2) |
|
|
|
|
{ |
|
|
|
|
return false; |
|
|
|
|
@ -78,26 +80,52 @@ namespace Bit.Core.Utilities
@@ -78,26 +80,52 @@ namespace Bit.Core.Utilities
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(encType != Enums.EncryptionType.Rsa2048_OaepSha1_B64 && |
|
|
|
|
encType != Enums.EncryptionType.Rsa2048_OaepSha256_B64) |
|
|
|
|
switch(encType) |
|
|
|
|
{ |
|
|
|
|
var iv = Convert.FromBase64String(encStringPieces[0]); |
|
|
|
|
var ct = Convert.FromBase64String(encStringPieces[1]); |
|
|
|
|
case Enums.EncryptionType.AesCbc256_B64: |
|
|
|
|
case Enums.EncryptionType.AesCbc128_HmacSha256_B64: |
|
|
|
|
case Enums.EncryptionType.AesCbc256_HmacSha256_B64: |
|
|
|
|
var iv = Convert.FromBase64String(encStringPieces[0]); |
|
|
|
|
var ct = Convert.FromBase64String(encStringPieces[1]); |
|
|
|
|
if(iv.Length < 1 || ct.Length < 1) |
|
|
|
|
{ |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(iv.Length < 1 || ct.Length < 1) |
|
|
|
|
{ |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if(encType == Enums.EncryptionType.AesCbc128_HmacSha256_B64 || |
|
|
|
|
encType == Enums.EncryptionType.AesCbc256_HmacSha256_B64) |
|
|
|
|
{ |
|
|
|
|
var mac = Convert.FromBase64String(encStringPieces[2]); |
|
|
|
|
if(mac.Length < 1) |
|
|
|
|
{ |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(encType == Enums.EncryptionType.AesCbc128_HmacSha256_B64 || |
|
|
|
|
encType == Enums.EncryptionType.AesCbc256_HmacSha256_B64) |
|
|
|
|
{ |
|
|
|
|
var mac = Convert.FromBase64String(encStringPieces[2]); |
|
|
|
|
if(mac.Length < 1) |
|
|
|
|
{ |
|
|
|
|
break; |
|
|
|
|
case Enums.EncryptionType.Rsa2048_OaepSha256_B64: |
|
|
|
|
case Enums.EncryptionType.Rsa2048_OaepSha1_B64: |
|
|
|
|
case Enums.EncryptionType.Rsa2048_OaepSha1_HmacSha256_B64: |
|
|
|
|
case Enums.EncryptionType.Rsa2048_OaepSha256_HmacSha256_B64: |
|
|
|
|
var rsaCt = Convert.FromBase64String(encStringPieces[0]); |
|
|
|
|
if(rsaCt.Length < 1) |
|
|
|
|
{ |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(encType == Enums.EncryptionType.Rsa2048_OaepSha1_HmacSha256_B64 || |
|
|
|
|
encType == Enums.EncryptionType.Rsa2048_OaepSha256_HmacSha256_B64) |
|
|
|
|
{ |
|
|
|
|
var mac = Convert.FromBase64String(encStringPieces[1]); |
|
|
|
|
if(mac.Length < 1) |
|
|
|
|
{ |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
catch |
|
|
|
|
|