Ошибка при установке теста nCipherKM

Ошибка возникает при запуске java com.ncipher.provider.InstallationTest для проверки правильности установки поставщика nCipherKM.

> java com.ncipher.provider.InstallationTest
talled providers:
nCipherKM
SUN
SunRsaSign
SunEC
SunJSSE
SunJCE
SunJGSS
SunSASL
XMLDSig
 SunPCSC
 SunMSCAPI

Exception in thread "main" java.lang.ExceptionInInitializerError
        at javax.crypto.JceSecurity.loadPolicies(JceSecurity.java:378)
        at javax.crypto.JceSecurity.setupJurisdictionPolicies(JceSecurity.java:323)
        at javax.crypto.JceSecurity.access$000(JceSecurity.java:50)
        at javax.crypto.JceSecurity$1.run(JceSecurity.java:85)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.crypto.JceSecurity.<clinit>(JceSecurity.java:82)
        at javax.crypto.JceSecurityManager.<clinit>(JceSecurityManager.java:65)
        at javax.crypto.Cipher.getConfiguredPermission(Cipher.java:2586)
        at javax.crypto.Cipher.getMaxAllowedKeyLength(Cipher.java:2610)
        at com.ncipher.provider.InstallationTest.unlimitedStrengthJurisdictionPolicyFilesInstalled(InstallationTest.java:130)
        at com.ncipher.provider.InstallationTest.main(InstallationTest.java:70)
Caused by: java.lang.SecurityException: Framework jar verification can not be initialized
        at javax.crypto.JarVerifier.<clinit>(JarVerifier.java:228)
        ... 11 more
Caused by: com.ncipher.provider.nCCommunicationException: Error NoUsableModules while opening channel for MessageDigest mech 44 (SHA1Hash)
        at com.ncipher.provider.nCHash.openChannel(nCHash.java:208)
        at com.ncipher.provider.nCHash.updateChannel(nCHash.java:215)
        at com.ncipher.provider.nCHash.flush(nCHash.java:175)
        at com.ncipher.provider.nCHash.engineDigest(nCHash.java:91)
        at java.security.MessageDigest$Delegate.engineDigest(Unknown Source)
        at java.security.MessageDigest.digest(Unknown Source)
        at javax.crypto.JarVerifier.getSystemEntropy(JarVerifier.java:857)
        at javax.crypto.JarVerifier.testSignatures(JarVerifier.java:744)
        at javax.crypto.JarVerifier.access$400(JarVerifier.java:37)
        at javax.crypto.JarVerifier$1.run(JarVerifier.java:222)
        at javax.crypto.JarVerifier$1.run(JarVerifier.java:187)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.crypto.JarVerifier.<clinit>(JarVerifier.java:186)
        ... 11 more

Что я делаю:

  1. Скопируйте файл nCipherKM.jar из / java / classes в / jre / lib / ext.
  2. Загрузите файлы политики юрисдикции неограниченной надежности Java Cryptography Extension (JCE) из oracle и скопируйте local_policy.jar и US_export_policy.jar в jre / lib / security
  3. Сначала добавьте в jre / lib / security / java.security провайдер nCipherKM:

    security.provider.1 = com.ncipher.provider.km.mCipherKM security.provider.2 = sun.security.provider.Sun security.provider.3 = sun.security.rsa.SunRsaSign ...

  4. # P5 #
    # P6 #

И получите ужас.


person Sorand    schedule 08.11.2019    source источник
comment
(1) для Oracle 8u161 up вам больше не нужно устанавливать неограниченную политику, она уже есть (а для OpenJDK всегда был) (2) попробуйте поставить ncipher в качестве поставщика last, а не первого, и тест должен хотя бы load и рассказать вам, что (он думает) происходит   -  person dave_thompson_085    schedule 09.11.2019


Ответы (1)


Проблема в том, что ваш HSM (-ы) непригоден для использования, что означает, что они недоступны, находятся в неправильном режиме или в другом состоянии, непригодном для использования:

Вызвано: com.ncipher.provider.nCCommunicationException: ошибка NoUsableModules при открытии канала для механизма MessageDigest 44 (SHA1Hash)

Запустите / opt / nfast / bin / query, чтобы узнать, в каком состоянии находятся ваши модули, и исправить это соответствующим образом.

У вас nCipherKM стоит первым в списке (как сказано в руководстве), что означает, что ваша JVM будет использовать его для всех криптографических операций, включая хеширование.

person Sander Temme    schedule 09.11.2019