File tree Expand file tree Collapse file tree 6 files changed +124
-0
lines changed
main/java/com/wolfssl/provider/jce
test/java/com/wolfssl/provider/jce/test Expand file tree Collapse file tree 6 files changed +124
-0
lines changed Original file line number Diff line number Diff line change @@ -89,9 +89,13 @@ The JCE provider currently supports the following algorithms:
8989 MD5
9090 SHA-1
9191 SHA-224
92+ OID: 2.16.840.1.101.3.4.2.4
9293 SHA-256
94+ OID: 2.16.840.1.101.3.4.2.1
9395 SHA-384
96+ OID: 2.16.840.1.101.3.4.2.2
9497 SHA-512
98+ OID: 2.16.840.1.101.3.4.2.3
9599 SHA3-224
96100 SHA3-256
97101 SHA3-384
Original file line number Diff line number Diff line change @@ -86,18 +86,30 @@ private void registerServices() {
8686 if (FeatureDetect .Sha224Enabled ()) {
8787 put ("MessageDigest.SHA-224" ,
8888 "com.wolfssl.provider.jce.WolfCryptMessageDigestSha224" );
89+ /* SHA-224 OID */
90+ put ("Alg.Alias.MessageDigest.2.16.840.1.101.3.4.2.4" ,
91+ "SHA-224" );
8992 }
9093 if (FeatureDetect .Sha256Enabled ()) {
9194 put ("MessageDigest.SHA-256" ,
9295 "com.wolfssl.provider.jce.WolfCryptMessageDigestSha256" );
96+ /* SHA-256 OID */
97+ put ("Alg.Alias.MessageDigest.2.16.840.1.101.3.4.2.1" ,
98+ "SHA-256" );
9399 }
94100 if (FeatureDetect .Sha384Enabled ()) {
95101 put ("MessageDigest.SHA-384" ,
96102 "com.wolfssl.provider.jce.WolfCryptMessageDigestSha384" );
103+ /* SHA-384 OID */
104+ put ("Alg.Alias.MessageDigest.2.16.840.1.101.3.4.2.2" ,
105+ "SHA-384" );
97106 }
98107 if (FeatureDetect .Sha512Enabled ()) {
99108 put ("MessageDigest.SHA-512" ,
100109 "com.wolfssl.provider.jce.WolfCryptMessageDigestSha512" );
110+ /* SHA-512 OID */
111+ put ("Alg.Alias.MessageDigest.2.16.840.1.101.3.4.2.3" ,
112+ "SHA-512" );
101113 }
102114 if (FeatureDetect .Sha3Enabled ()) {
103115 put ("MessageDigest.SHA3-224" ,
Original file line number Diff line number Diff line change @@ -254,4 +254,31 @@ public void testSha224GetDigestLength()
254254 MessageDigest sha224 = MessageDigest .getInstance ("SHA-224" , "wolfJCE" );
255255 assertEquals (Sha224 .DIGEST_SIZE , sha224 .getDigestLength ());
256256 }
257+
258+ @ Test
259+ public void testSha224OidAlias ()
260+ throws NoSuchProviderException , NoSuchAlgorithmException {
261+
262+ byte [] input = "1234567890" .getBytes ();
263+
264+ /* Get MessageDigest using algorithm name */
265+ MessageDigest mdAlgorithm = MessageDigest .getInstance (
266+ "SHA-224" , "wolfJCE" );
267+ assertNotNull (mdAlgorithm );
268+
269+ /* Get MessageDigest using OID */
270+ MessageDigest mdOid = MessageDigest .getInstance (
271+ "2.16.840.1.101.3.4.2.4" , "wolfJCE" );
272+ assertNotNull (mdOid );
273+
274+ /* Verify algorithm name matches */
275+ assertEquals ("SHA-224" , mdAlgorithm .getAlgorithm ());
276+
277+ /* Compute digests */
278+ mdAlgorithm .update (input );
279+ mdOid .update (input );
280+
281+ /* Verify digests match */
282+ assertTrue (Arrays .equals (mdAlgorithm .digest (), mdOid .digest ()));
283+ }
257284}
Original file line number Diff line number Diff line change @@ -395,5 +395,32 @@ public void testUpdateWithOffsetEqualToArraySizeThrows()
395395 /* Test with offset equal to array size */
396396 sha256 .update (data , 10 , 1 );
397397 }
398+
399+ @ Test
400+ public void testSha256OidAlias ()
401+ throws NoSuchProviderException , NoSuchAlgorithmException {
402+
403+ byte [] input = "1234567890" .getBytes ();
404+
405+ /* Get MessageDigest using algorithm name */
406+ MessageDigest mdAlgorithm = MessageDigest .getInstance (
407+ "SHA-256" , "wolfJCE" );
408+ assertNotNull (mdAlgorithm );
409+
410+ /* Get MessageDigest using OID */
411+ MessageDigest mdOid = MessageDigest .getInstance (
412+ "2.16.840.1.101.3.4.2.1" , "wolfJCE" );
413+ assertNotNull (mdOid );
414+
415+ /* Verify algorithm name matches */
416+ assertEquals ("SHA-256" , mdAlgorithm .getAlgorithm ());
417+
418+ /* Compute digests */
419+ mdAlgorithm .update (input );
420+ mdOid .update (input );
421+
422+ /* Verify digests match */
423+ assertTrue (Arrays .equals (mdAlgorithm .digest (), mdOid .digest ()));
424+ }
398425}
399426
Original file line number Diff line number Diff line change @@ -370,5 +370,32 @@ public void testSha384Threaded()
370370 }
371371 }
372372 }
373+
374+ @ Test
375+ public void testSha384OidAlias ()
376+ throws NoSuchProviderException , NoSuchAlgorithmException {
377+
378+ byte [] input = "1234567890" .getBytes ();
379+
380+ /* Get MessageDigest using algorithm name */
381+ MessageDigest mdAlgorithm = MessageDigest .getInstance (
382+ "SHA-384" , "wolfJCE" );
383+ assertNotNull (mdAlgorithm );
384+
385+ /* Get MessageDigest using OID */
386+ MessageDigest mdOid = MessageDigest .getInstance (
387+ "2.16.840.1.101.3.4.2.2" , "wolfJCE" );
388+ assertNotNull (mdOid );
389+
390+ /* Verify algorithm name matches */
391+ assertEquals ("SHA-384" , mdAlgorithm .getAlgorithm ());
392+
393+ /* Compute digests */
394+ mdAlgorithm .update (input );
395+ mdOid .update (input );
396+
397+ /* Verify digests match */
398+ assertTrue (Arrays .equals (mdAlgorithm .digest (), mdOid .digest ()));
399+ }
373400}
374401
Original file line number Diff line number Diff line change @@ -390,5 +390,32 @@ public void testSha512Threaded()
390390 }
391391 }
392392 }
393+
394+ @ Test
395+ public void testSha512OidAlias ()
396+ throws NoSuchProviderException , NoSuchAlgorithmException {
397+
398+ byte [] input = "1234567890" .getBytes ();
399+
400+ /* Get MessageDigest using algorithm name */
401+ MessageDigest mdAlgorithm = MessageDigest .getInstance (
402+ "SHA-512" , "wolfJCE" );
403+ assertNotNull (mdAlgorithm );
404+
405+ /* Get MessageDigest using OID */
406+ MessageDigest mdOid = MessageDigest .getInstance (
407+ "2.16.840.1.101.3.4.2.3" , "wolfJCE" );
408+ assertNotNull (mdOid );
409+
410+ /* Verify algorithm name matches */
411+ assertEquals ("SHA-512" , mdAlgorithm .getAlgorithm ());
412+
413+ /* Compute digests */
414+ mdAlgorithm .update (input );
415+ mdOid .update (input );
416+
417+ /* Verify digests match */
418+ assertTrue (Arrays .equals (mdAlgorithm .digest (), mdOid .digest ()));
419+ }
393420}
394421
You can’t perform that action at this time.
0 commit comments