summary refs log tree commit diff
path: root/crypto/src/cms/PasswordRecipientInformation.cs
diff options
context:
space:
mode:
authorPeter Dettman <peter.dettman@bouncycastle.org>2023-04-13 16:48:27 +0700
committerPeter Dettman <peter.dettman@bouncycastle.org>2023-04-13 16:48:27 +0700
commita0b75007cc33d1ead75b2aed6439a7b272469bed (patch)
tree4a831e9dfc6fc39b99246610e878bd7917b67c62 /crypto/src/cms/PasswordRecipientInformation.cs
parentGuard against null nonce and clone returned nonce (diff)
downloadBouncyCastle.NET-ed25519-a0b75007cc33d1ead75b2aed6439a7b272469bed.tar.xz
Refactoring around AeadParameters and ParametersWIthIV
Diffstat (limited to 'crypto/src/cms/PasswordRecipientInformation.cs')
-rw-r--r--crypto/src/cms/PasswordRecipientInformation.cs13
1 files changed, 9 insertions, 4 deletions
diff --git a/crypto/src/cms/PasswordRecipientInformation.cs b/crypto/src/cms/PasswordRecipientInformation.cs
index f629caba6..ff4a20d68 100644
--- a/crypto/src/cms/PasswordRecipientInformation.cs
+++ b/crypto/src/cms/PasswordRecipientInformation.cs
@@ -54,12 +54,17 @@ namespace Org.BouncyCastle.Cms
 				string				cName = CmsEnvelopedHelper.Instance.GetRfc3211WrapperName(kekAlgName);
 				IWrapper			keyWrapper = WrapperUtilities.GetWrapper(cName);
 
-				byte[] iv = Asn1OctetString.GetInstance(kekAlgParams[1]).GetOctets();
+                var iv = Asn1OctetString.GetInstance(kekAlgParams[1]);
 
-				ICipherParameters parameters = ((CmsPbeKey)key).GetEncoded(kekAlgName);
-				parameters = new ParametersWithIV(parameters, iv);
+                ICipherParameters parameters = ((CmsPbeKey)key).GetEncoded(kekAlgName);
 
-				keyWrapper.Init(false, parameters);
+#if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER
+                parameters = new ParametersWithIV(parameters, iv.GetOctetsSpan());
+#else
+				parameters = new ParametersWithIV(parameters, iv.GetOctets());
+#endif
+
+                keyWrapper.Init(false, parameters);
 
 				KeyParameter sKey = ParameterUtilities.CreateKeyParameter(
 					GetContentAlgorithmName(), keyWrapper.Unwrap(encryptedKey, 0, encryptedKey.Length));