ckr\u general\u错误

jfgube3f  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(397)

我在用softhsm配置sunpkcs11时遇到ckr\u general\u错误。
平台:
winodows 10 64位
openjdk 11.0.2版
https://github.com/disig/softhsm2-for-windows/releases/download/v2.5.0/softhsm2-2.5.0.msi
环境变量:

  1. PKCS11_LOGGER_FLAGS=16
  2. PKCS11_LOGGER_LIBRARY_PATH=C:\SoftHSM2\lib\softhsm2-x64.dll

vm参数:

  1. -Djava.security.debug=sunpkcs11

java代码:

  1. String aPKCS11LibraryFileName = "C:\\\\Development\\\\pkcs11-logger\\\\pkcs11-logger-x64.dll";
  2. StringBuilder pkcs11Config = new StringBuilder();
  3. pkcs11Config
  4. .append("name = token1")
  5. .append(NEW_LINE)
  6. .append("library = ")
  7. .append(DOUBLE_QUOTE)
  8. .append(aPKCS11LibraryFileName)
  9. .append(DOUBLE_QUOTE);
  10. Provider provider = Security.getProvider("SunPKCS11");
  11. Method configureMethod = provider.getClass().getMethod("configure", String.class);
  12. provider = (Provider) configureMethod.invoke(provider, "--" + pkcs11Config.toString());
  13. Security.addProvider(provider);
  14. KeyStore keyStore = KeyStore.getInstance(SUN_PKCS11_KEYSTORE_TYPE, provider);
  15. keyStore.load(null, "1234".toCharArray());

控制台输出:

  1. SunPKCS11 loading --name = token1
  2. library = "C:\\Development\\pkcs11-logger\\pkcs11-logger-x64.dll"
  3. sunpkcs11: Initializing PKCS#11 library C:\Development\pkcs11-logger\pkcs11-logger-x64.dll
  4. sunpkcs11: Multi-threaded initialization failed: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_GENERAL_ERROR
  5. Exception in thread "main" java.lang.reflect.InvocationTargetException
  6. at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  7. at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  8. at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  9. at java.base/java.lang.reflect.Method.invoke(Method.java:566)
  10. at ar.gob.hcssf.isileg.tokengateway.PKCS11MockTest.start(PKCS11MockTest.java:51)
  11. at ar.gob.hcssf.isileg.tokengateway.PKCS11MockTest.main(PKCS11MockTest.java:29)
  12. Caused by: java.security.ProviderException: Initialization failed
  13. at jdk.crypto.cryptoki/sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:382)
  14. at jdk.crypto.cryptoki/sun.security.pkcs11.SunPKCS11$1.run(SunPKCS11.java:113)
  15. at jdk.crypto.cryptoki/sun.security.pkcs11.SunPKCS11$1.run(SunPKCS11.java:110)
  16. at java.base/java.security.AccessController.doPrivileged(Native Method)
  17. at jdk.crypto.cryptoki/sun.security.pkcs11.SunPKCS11.configure(SunPKCS11.java:110)
  18. ... 6 more
  19. Caused by: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_GENERAL_ERROR
  20. at jdk.crypto.cryptoki/sun.security.pkcs11.wrapper.PKCS11.C_Initialize(Native Method)
  21. at jdk.crypto.cryptoki/sun.security.pkcs11.wrapper.PKCS11$SynchronizedPKCS11.C_Initialize(PKCS11.java:1549)
  22. at jdk.crypto.cryptoki/sun.security.pkcs11.wrapper.PKCS11.getInstance(PKCS11.java:160)
  23. at jdk.crypto.cryptoki/sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:336)
  24. ... 10 more
  25. 0x000085a0 : 0x00007750 :******************************2021-04-25 00:11:33***
  26. 0x000085a0 : 0x00007750 : PKCS11-LOGGER 2.2.0
  27. 0x000085a0 : 0x00007750 : PKCS#11 logging proxy module
  28. 0x000085a0 : 0x00007750 : Developed as a part of the Pkcs11Interop project
  29. 0x000085a0 : 0x00007750 : Please visit www.pkcs11interop.net for more information
  30. 0x000085a0 : 0x00007750 :******************************2021-04-25 00:11:33***
  31. 0x000085a0 : 0x00007750 : Successfuly loaded C:\SoftHSM2\lib\softhsm2-x64.dll
  32. 0x000085a0 : 0x00007750 : Memory contents are dumped without endianness conversion
  33. 0x000085a0 : 0x00007750 :******************************2021-04-25 00:11:33***
  34. 0x000085a0 : 0x00007750 : Calling C_GetFunctionList
  35. 0x000085a0 : 0x00007750 : Input
  36. 0x000085a0 : 0x00007750 : ppFunctionList: 0000024C156047D8
  37. 0x000085a0 : 0x00007750 : Output
  38. 0x000085a0 : 0x00007750 : Note: Returning function list of PKCS11-LOGGER
  39. 0x000085a0 : 0x00007750 : Returning 0 (CKR_OK)
  40. 0x000085a0 : 0x00007750 :******************************2021-04-25 00:11:33***
  41. 0x000085a0 : 0x00007750 : Calling C_Initialize
  42. 0x000085a0 : 0x00007750 : Input
  43. 0x000085a0 : 0x00007750 : pInitArgs: 0000024C152539C0
  44. 0x000085a0 : 0x00007750 : CreateMutex: 0000000000000000
  45. 0x000085a0 : 0x00007750 : DestroyMutex: 0000000000000000
  46. 0x000085a0 : 0x00007750 : LockMutex: 0000000000000000
  47. 0x000085a0 : 0x00007750 : UnlockMutex: 0000000000000000
  48. 0x000085a0 : 0x00007750 : Flags: 2
  49. 0x000085a0 : 0x00007750 : CKF_LIBRARY_CANT_CREATE_OS_THREADS: FALSE
  50. 0x000085a0 : 0x00007750 : CKF_OS_LOCKING_OK: TRUE
  51. 0x000085a0 : 0x00007750 : pReserved: 0000000000000000
  52. 0x000085a0 : 0x00007750 : Returning 5 (CKR_GENERAL_ERROR)
  53. 0x000085a0 : 0x00007750 :******************************2021-04-25 00:11:33***
  54. 0x000085a0 : 0x00007750 : Calling C_GetFunctionList
  55. 0x000085a0 : 0x00007750 : Input
  56. 0x000085a0 : 0x00007750 : ppFunctionList: 0000024C1562A7E8
  57. 0x000085a0 : 0x00007750 : Output
  58. 0x000085a0 : 0x00007750 : Note: Returning function list of PKCS11-LOGGER
  59. 0x000085a0 : 0x00007750 : Returning 0 (CKR_OK)
  60. 0x000085a0 : 0x00007750 :******************************2021-04-25 00:11:33***
  61. 0x000085a0 : 0x00007750 : Calling C_Initialize
  62. 0x000085a0 : 0x00007750 : Input
  63. 0x000085a0 : 0x00007750 : pInitArgs: 0000000000000000
  64. 0x000085a0 : 0x00007750 : Returning 5 (CKR_GENERAL_ERROR)

softhsm2-util.exe:

  1. C:\SoftHSM2\bin>softhsm2-util.exe --show-slots
  2. Available slots:
  3. Slot 1309549255
  4. Slot info:
  5. Description: SoftHSM slot ID 0x4e0e22c7
  6. Manufacturer ID: SoftHSM project
  7. Hardware version: 2.5
  8. Firmware version: 2.5
  9. Token present: yes
  10. Token info:
  11. Manufacturer ID: SoftHSM project
  12. Model: SoftHSM v2
  13. Hardware version: 2.5
  14. Firmware version: 2.5
  15. Serial number: 48ed68114e0e22c7
  16. Initialized: yes
  17. User PIN init.: yes
  18. Label: My token 2
  19. Slot 2134878761
  20. Slot info:
  21. Description: SoftHSM slot ID 0x7f3faa29
  22. Manufacturer ID: SoftHSM project
  23. Hardware version: 2.5
  24. Firmware version: 2.5
  25. Token present: yes
  26. Token info:
  27. Manufacturer ID: SoftHSM project
  28. Model: SoftHSM v2
  29. Hardware version: 2.5
  30. Firmware version: 2.5
  31. Serial number: 169a27c97f3faa29
  32. Initialized: yes
  33. User PIN init.: yes
  34. Label: My token 1
  35. Slot 2
  36. Slot info:
  37. Description: SoftHSM slot ID 0x2
  38. Manufacturer ID: SoftHSM project
  39. Hardware version: 2.5
  40. Firmware version: 2.5
  41. Token present: yes
  42. Token info:
  43. Manufacturer ID: SoftHSM project
  44. Model: SoftHSM v2
  45. Hardware version: 2.5
  46. Firmware version: 2.5
  47. Serial number:
  48. Initialized: no
  49. User PIN init.: no
  50. Label:
  51. C:\SoftHSM2\bin>

在此之前,我尝试过使用pkcs11 mock。已成功配置提供程序,但在执行keystore.load()时,它从未结束。
提前谢谢!

kt06eoxx

kt06eoxx1#

只需在launcher中设置softhsm2_conf环境变量,就可以成功配置提供程序,并且可以立即加载密钥库。
似乎没有得到系统环境变量。

相关问题