NoSuchAlgorithmException: нет такого алгоритма: SHA-256 для провайдера SunPKCS11-NSS
У меня есть конфигурация FIPS с моим приложением, и я использую NSS 3.39
Библиотека для того же.
Когда я начал первоначальное общение через TLS 1.2
с конфигурацией FIPS я получаю ошибку: java.security.NoSuchAlgorithmException: no such algorithm: SHA-256 for provider SunPKCS11-NSS
Когда я использую TLS 1.1 для связи с той же конфигурацией, я получаю ошибку:
java.security.NoSuchAlgorithmException: no such algorithm: MD5 for provider SunPKCS11-NSS
Принимая во внимание, что это работает с нормальным SSL
установки (не FIPS).
Кто-нибудь сталкивался с этой проблемой? Есть ли какие-либо изменения в NSS?
Примечание: это работало с TLS 1.1 с NSS 3.23 с той же самой установкой. Я использую JRE 8 для конфигурации NSS 3.23 и 3.39.
Ниже приводится полная трассировка стека:NSS 3.39, JRE 8 с TLS 1.2:
java.lang.RuntimeException: Algorithm SHA-256 not available
19:10:45,315 INFO [STDOUT] %% Invalidated: [Session-7, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256]
19:10:45,315 INFO [STDOUT] MultiProtocolServer
19:10:45,315 INFO [STDOUT] , SEND TLSv1.2 ALERT:
19:10:45,316 INFO [STDOUT] fatal,
19:10:45,316 INFO [STDOUT] description = internal_error
19:10:45,316 INFO [STDOUT] MultiProtocolServer, WRITE: TLSv1.2 Alert, length = 2
19:10:45,316 INFO [STDOUT] [Raw write]: length = 7
19:10:45,316 INFO [STDOUT] 48
19:10:45,316 INFO [STDOUT] 48
19:10:45,316 INFO [STDOUT] 48
19:10:45,317 INFO [STDOUT] 48
19:10:45,317 INFO [STDOUT] :
Caused by: java.lang.RuntimeException: Algorithm SHA-256 not available
at sun.security.ssl.JsseJce.getMessageDigest(JsseJce.java:342)
at sun.security.ssl.CloneableDigest.getDigest(HandshakeHash.java:310)
at sun.security.ssl.HandshakeHash.setFinishedAlg(HandshakeHash.java:229)
at sun.security.ssl.ServerHandshaker.clientHello(ServerHandshaker.java:753)
at sun.security.ssl.ServerHandshaker.processMessage(ServerHandshaker.java:224)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1026)
at sun.security.ssl.Handshaker$1.run(Handshaker.java:966)
at sun.security.ssl.Handshaker$1.run(Handshaker.java:963)
at java.security.AccessController.doPrivileged(Native Method)
at sun.security.ssl.Handshaker$DelegatedTask.run(Handshaker.java:1416)
... 1 more
Caused by: java.security.NoSuchAlgorithmException: no such algorithm: SHA-256 for provider SunPKCS11-NSS
at sun.security.jca.GetInstance.getService(GetInstance.java:101)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:218)
at java.security.Security.getImpl(Security.java:724)
at java.security.MessageDigest.getInstance(MessageDigest.java:275)
at sun.security.ssl.JsseJce.getMessageDigest(JsseJce.java:339)
... 11 more
Трассировка стека с помощью NSS 3.39, JRE 8 с TLS 1.0 и TLS 1.1:
java.lang.RuntimeException: Algorithm MD5 not available
18:32:12,705 INFO [STDOUT] MultiProtocolServer
18:32:12,705 INFO [STDOUT] , SEND TLSv1 ALERT:
18:32:12,705 INFO [STDOUT] fatal,
18:32:12,705 INFO [STDOUT] description = internal_error
18:32:12,705 INFO [STDOUT] MultiProtocolServer, WRITE: TLSv1 Alert, length = 2
18:32:12,705 INFO [STDOUT] [Raw write]: length = 7
18:32:12,705 INFO [STDOUT] 48
18:32:12,705 INFO [STDOUT] 48
18:32:12,705 INFO [STDOUT] 48
18:32:12,705 INFO [STDOUT] 48
18:32:12,705 INFO [STDOUT] :
18:32:12,705 INFO [STDOUT] 49
Caused by: java.lang.RuntimeException: Algorithm MD5 not available
at sun.security.ssl.JsseJce.getMessageDigest(JsseJce.java:342)
at sun.security.ssl.CloneableDigest.getDigest(HandshakeHash.java:310)
at sun.security.ssl.HandshakeHash.protocolDetermined(HandshakeHash.java:149)
at sun.security.ssl.ServerHandshaker.clientHello(ServerHandshaker.java:523)
at sun.security.ssl.ServerHandshaker.processMessage(ServerHandshaker.java:224)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1026)
at sun.security.ssl.Handshaker$1.run(Handshaker.java:966)
at sun.security.ssl.Handshaker$1.run(Handshaker.java:963)
at java.security.AccessController.doPrivileged(Native Method)
at sun.security.ssl.Handshaker$DelegatedTask.run(Handshaker.java:1416)
... 1 more
Caused by: java.security.NoSuchAlgorithmException: no such algorithm: MD5 for provider SunPKCS11-NSS
at sun.security.jca.GetInstance.getService(GetInstance.java:101)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:218)
at java.security.Security.getImpl(Security.java:724)
at java.security.MessageDigest.getInstance(MessageDigest.java:275)
at sun.security.ssl.JsseJce.getMessageDigest(JsseJce.java:339)
... 11 more