@@ -155,6 +155,14 @@ private static void decomposeEncryptionAlgorithm(Set<String> decomposition, int
155155 case EncryptionAlgorithm .NULL :
156156 decomposition .add ("C_NULL" );
157157 break ;
158+ case EncryptionAlgorithm .NULL_HMAC_SHA256 :
159+ decomposition .add ("C_NULL_HMAC" );
160+ decomposeHmacSHA256 (decomposition );
161+ break ;
162+ case EncryptionAlgorithm .NULL_HMAC_SHA384 :
163+ decomposition .add ("C_NULL_HMAC" );
164+ decomposeHmacSHA384 (decomposition );
165+ break ;
158166 case EncryptionAlgorithm .SM4_CBC :
159167 decomposition .add ("SM4_CBC" );
160168 break ;
@@ -174,14 +182,14 @@ private static void decomposeHashAlgorithm(Set<String> decomposition, int crypto
174182 switch (cryptoHashAlgorithm )
175183 {
176184 case CryptoHashAlgorithm .sha256 :
177- addAll (decomposition , "SHA256" , "SHA-256" , "HmacSHA256" );
185+ decomposeHmacSHA256 (decomposition );
178186 break ;
179187 case CryptoHashAlgorithm .sha384 :
180- addAll (decomposition , "SHA384" , "SHA-384" , "HmacSHA384" );
188+ decomposeHmacSHA384 (decomposition );
189+ break ;
190+ case CryptoHashAlgorithm .sha512 :
191+ decomposeHmacSHA512 (decomposition );
181192 break ;
182- // case CryptoHashAlgorithm.sha512:
183- // addAll(decomposition, "SHA512", "SHA-512", "HmacSHA512");
184- // break;
185193 case CryptoHashAlgorithm .sm3 :
186194 addAll (decomposition , "SM3" , "HmacSM3" );
187195 break ;
@@ -190,6 +198,21 @@ private static void decomposeHashAlgorithm(Set<String> decomposition, int crypto
190198 }
191199 }
192200
201+ private static void decomposeHmacSHA256 (Set <String > decomposition )
202+ {
203+ addAll (decomposition , "SHA256" , "SHA-256" , "HmacSHA256" );
204+ }
205+
206+ private static void decomposeHmacSHA384 (Set <String > decomposition )
207+ {
208+ addAll (decomposition , "SHA384" , "SHA-384" , "HmacSHA384" );
209+ }
210+
211+ private static void decomposeHmacSHA512 (Set <String > decomposition )
212+ {
213+ addAll (decomposition , "SHA512" , "SHA-512" , "HmacSHA512" );
214+ }
215+
193216 private static void decomposeKeyExchangeAlgorithm (Set <String > decomposition , int keyExchangeAlgorithm )
194217 {
195218 switch (keyExchangeAlgorithm )
@@ -263,14 +286,14 @@ private static void decomposeMACAlgorithm(Set<String> decomposition, int cipherT
263286 addAll (decomposition , "SHA1" , "SHA-1" , "HmacSHA1" );
264287 break ;
265288 case MACAlgorithm .hmac_sha256 :
266- addAll (decomposition , "SHA256" , "SHA-256" , "HmacSHA256" );
289+ decomposeHmacSHA256 (decomposition );
267290 break ;
268291 case MACAlgorithm .hmac_sha384 :
269- addAll (decomposition , "SHA384" , "SHA-384" , "HmacSHA384" );
292+ decomposeHmacSHA384 (decomposition );
293+ break ;
294+ case MACAlgorithm .hmac_sha512 :
295+ decomposeHmacSHA512 (decomposition );
270296 break ;
271- // case MACAlgorithm.hmac_sha512:
272- // addAll(decomposition, "SHA512", "SHA-512", "HmacSHA512");
273- // break;
274297 default :
275298 throw new IllegalArgumentException ();
276299 }
@@ -381,6 +404,7 @@ private static int getCryptoHashAlgorithm(int cipherSuite)
381404 case CipherSuite .TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 :
382405 case CipherSuite .TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 :
383406 case CipherSuite .TLS_RSA_WITH_NULL_SHA256 :
407+ case CipherSuite .TLS_SHA256_SHA256 :
384408 return CryptoHashAlgorithm .sha256 ;
385409
386410 case CipherSuite .TLS_AES_256_GCM_SHA384 :
@@ -412,6 +436,7 @@ private static int getCryptoHashAlgorithm(int cipherSuite)
412436 case CipherSuite .TLS_RSA_WITH_ARIA_256_CBC_SHA384 :
413437 case CipherSuite .TLS_RSA_WITH_ARIA_256_GCM_SHA384 :
414438 case CipherSuite .TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 :
439+ case CipherSuite .TLS_SHA384_SHA384 :
415440 return CryptoHashAlgorithm .sha384 ;
416441
417442 case CipherSuite .TLS_SM4_CCM_SM3 :
@@ -455,6 +480,8 @@ private static String getTransformation(int encryptionAlgorithm)
455480 case EncryptionAlgorithm .CHACHA20_POLY1305 :
456481 return "ChaCha20-Poly1305" ;
457482 case EncryptionAlgorithm .NULL :
483+ case EncryptionAlgorithm .NULL_HMAC_SHA256 :
484+ case EncryptionAlgorithm .NULL_HMAC_SHA384 :
458485 return "NULL" ;
459486 case EncryptionAlgorithm .SM4_CBC :
460487 return "SM4/CBC/NoPadding" ;
0 commit comments