summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlexander Scheel <alexander.scheel@keyfactor.com>2024-01-26 17:28:53 -0500
committerPeter Dettman <peter.dettman@bouncycastle.org>2024-01-30 10:06:04 +0700
commit494887291a2f6424d666ddca21092bcae64fc2e6 (patch)
treef6667001a17a919b24a3ac96fe2460a1358c1cc0
parentMark test NonParallelizable (diff)
downloadBouncyCastle.NET-ed25519-494887291a2f6424d666ddca21092bcae64fc2e6.tar.xz
Add Hmac SHA384/SHA512 with Pbes2 in PKCS#12
This adds support for SHA-384 and SHA-512 in conjunction with Pbes2
PKCS#12 bundles after seeing one in the wild.

Signed-off-by: Alexander Scheel <alexander.scheel@keyfactor.com>
-rw-r--r--crypto/test/src/pkcs/test/PKCS12StoreTest.cs48
1 files changed, 47 insertions, 1 deletions
diff --git a/crypto/test/src/pkcs/test/PKCS12StoreTest.cs b/crypto/test/src/pkcs/test/PKCS12StoreTest.cs
index add8c8866..f4a6467c9 100644
--- a/crypto/test/src/pkcs/test/PKCS12StoreTest.cs
+++ b/crypto/test/src/pkcs/test/PKCS12StoreTest.cs
@@ -847,6 +847,44 @@ namespace Org.BouncyCastle.Pkcs.Tests
       + "TK5wp093iTAxMCEwCQYFKw4DAhoFAAQU1SGg9xV7jfLcJh3tzd+phZTMN38E"
       + "CL6WgCtEom7kAgIIAA==");
 
+		private static readonly char[] hmacSha384TestPassword = "changeit".ToCharArray();
+		private static readonly byte[] hmacSha384Test = Base64.Decode(
+		"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"
+		+ "05M2znIOOdFEiVubcf9IBAgdTcmL1rwzgQICBAA=");
+
 		private readonly SecureRandom Random = new SecureRandom();
 
 		/**
@@ -1426,6 +1464,13 @@ namespace Org.BouncyCastle.Pkcs.Tests
 			IsTrue(store.GetCertificateChain("45cbf1116fb3f38b2984b3c7224cae70a74f7789").Length == 1);
 		}
 
+		private void DoTestHmacSha384()
+		{
+			Pkcs12Store store = new Pkcs12StoreBuilder().Build();
+			store.Load(new MemoryStream(hmacSha384Test, false), hmacSha384TestPassword);
+			IsTrue(store.GetCertificateChain("test").Length == 1);
+		}
+
 		public override string Name
 		{
 			get { return "PKCS12Store"; }
@@ -1436,6 +1481,7 @@ namespace Org.BouncyCastle.Pkcs.Tests
             DoTestCertsOnly();
 			DoTestPkcs12Store();
 			DoTestLoadRepeatedLocalKeyID();
+			DoTestHmacSha384();
 		}
 
 		[Test]
@@ -1443,7 +1489,7 @@ namespace Org.BouncyCastle.Pkcs.Tests
 		{
 			string resultText = Perform().ToString();
 
-            Assert.AreEqual(Name + ": Okay", resultText);
+			Assert.AreEqual(Name + ": Okay", resultText, resultText);
 		}
 	}
 }