24
24
*/
25
25
/*
26
26
* ===========================================================================
27
- * (c) Copyright IBM Corp. 2018, 2024 All Rights Reserved
27
+ * (c) Copyright IBM Corp. 2018, 2025 All Rights Reserved
28
28
* ===========================================================================
29
29
*/
30
30
@@ -95,6 +95,8 @@ public final class SunEntries {
95
95
private static final boolean useNativeSHA256 ;
96
96
private static final boolean useNativeSHA384 ;
97
97
private static final boolean useNativeSHA512 ;
98
+ private static final boolean useNativeSHA512_224 ;
99
+ private static final boolean useNativeSHA512_256 ;
98
100
99
101
static {
100
102
/* The property 'jdk.nativeDigest' is used to control enablement of all native
@@ -131,6 +133,16 @@ public final class SunEntries {
131
133
* SHA-512 implementation.
132
134
*/
133
135
useNativeSHA512 = useNativeDigest && NativeCrypto .isAlgorithmEnabled ("jdk.nativeSHA512" , "SHA-512" );
136
+
137
+ /* The property 'jdk.nativeSHA512_224' is used to control enablement of the native
138
+ * SHA-512-224 implementation.
139
+ */
140
+ useNativeSHA512_224 = useNativeDigest && NativeCrypto .isAlgorithmEnabled ("jdk.nativeSHA512_224" , "SHA-512-224" );
141
+
142
+ /* The property 'jdk.nativeSHA512_256' is used to control enablement of the native
143
+ * SHA-512-256 implementation.
144
+ */
145
+ useNativeSHA512_256 = useNativeDigest && NativeCrypto .isAlgorithmEnabled ("jdk.nativeSHA512_256" , "SHA-512-256" );
134
146
}
135
147
136
148
// Flag indicating whether the operating system is AIX.
@@ -311,6 +323,8 @@ public final class SunEntries {
311
323
String providerSHA256 ;
312
324
String providerSHA384 ;
313
325
String providerSHA512 ;
326
+ String providerSHA512_224 ;
327
+ String providerSHA512_256 ;
314
328
/*
315
329
* Set the digest provider based on whether native crypto is
316
330
* enabled or not.
@@ -355,6 +369,18 @@ public final class SunEntries {
355
369
providerSHA512 = "sun.security.provider.SHA5$SHA512" ;
356
370
}
357
371
372
+ if (useNativeSHA512_224 && NativeCrypto .isAllowedAndLoaded ()) {
373
+ providerSHA512_224 = "sun.security.provider.NativeSHA5$SHA512_224" ;
374
+ } else {
375
+ providerSHA512_224 = "sun.security.provider.SHA5$SHA512_224" ;
376
+ }
377
+
378
+ if (useNativeSHA512_256 && NativeCrypto .isAllowedAndLoaded ()) {
379
+ providerSHA512_256 = "sun.security.provider.NativeSHA5$SHA512_256" ;
380
+ } else {
381
+ providerSHA512_256 = "sun.security.provider.SHA5$SHA512_256" ;
382
+ }
383
+
358
384
add (p , "MessageDigest" , "MD2" , "sun.security.provider.MD2" , attrs );
359
385
add (p , "MessageDigest" , "MD5" , providerMD5 , attrs );
360
386
addWithAlias (p , "MessageDigest" , "SHA-1" , providerSHA ,
@@ -369,9 +395,9 @@ public final class SunEntries {
369
395
addWithAlias (p , "MessageDigest" , "SHA-512" ,
370
396
providerSHA512 , attrs );
371
397
addWithAlias (p , "MessageDigest" , "SHA-512/224" ,
372
- "sun.security.provider.SHA5$SHA512_224" , attrs );
398
+ providerSHA512_224 , attrs );
373
399
addWithAlias (p , "MessageDigest" , "SHA-512/256" ,
374
- "sun.security.provider.SHA5$SHA512_256" , attrs );
400
+ providerSHA512_256 , attrs );
375
401
addWithAlias (p , "MessageDigest" , "SHA3-224" ,
376
402
"sun.security.provider.SHA3$SHA224" , attrs );
377
403
addWithAlias (p , "MessageDigest" , "SHA3-256" ,
0 commit comments