Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
提取密钥不需要';t在Luna Safenet HSM的JBOSS EAP 7.1中工作_Jboss_Hsm - Fatal编程技术网

提取密钥不需要';t在Luna Safenet HSM的JBOSS EAP 7.1中工作

提取密钥不需要';t在Luna Safenet HSM的JBOSS EAP 7.1中工作,jboss,hsm,Jboss,Hsm,我已经在HSM密钥库中设置了私钥,使用ECDH密钥协议,我正在尝试从JBOSS应用服务器中获取密钥。下面的代码在我作为独立应用程序运行时有效,但在JBOSS EAP 7.1中不起作用 这是密码 LunaSlotManager manager = LunaSlotManager.getInstance(); manager.login(0, "pass"); KeyStore lunaStore = KeyStore.getInstance

我已经在HSM密钥库中设置了私钥,使用ECDH密钥协议,我正在尝试从JBOSS应用服务器中获取密钥。下面的代码在我作为独立应用程序运行时有效,但在JBOSS EAP 7.1中不起作用

这是密码

        LunaSlotManager manager = LunaSlotManager.getInstance();  
        manager.login(0, "pass");   
        KeyStore lunaStore = KeyStore.getInstance("Luna", "LunaProvider");        
        ByteArrayInputStream is1 = new ByteArrayInputStream(("slot:" + 0).getBytes());        
        lunaStore.load(is1, "crypto1".toCharArray());
        manager.setSecretKeysExtractable(true);         
        KeyAgreement keyAgreement = KeyAgreement.getInstance("ECDH", lunaStore.getProvider());                      
        keyAgreement.init((PrivateKey)lunaStore.getKey("TestPrivateKey", "crypto1".toCharArray()));

        String publicKey = "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXjx+yO+dCt5HGPlFncNSt3oTM0cBLbgqedBW/3HVraL8qiHmMB2PVDzyLiBHOYYuZNe07vZLpdBcT9RB+dzmiA==";
        X509EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(Base64.decodeBase64(publicKey));  
        KeyFactory factory = KeyFactory.getInstance("EC");             
        keyAgreement.doPhase(factory.generatePublic(publicKeySpec), true);          
        byte[] secretKey = keyAgreement.generateSecret();
当它从JBOSS执行keyAgreement.generateScret()行时出现错误,但它在独立应用程序中工作

这是我从HSM检索机密密钥时遇到的错误

com.safenetinc.luna.exception.LunaException:无法派生密钥 [2019-01-16 05:21:16 21916@USSY-6XLJ9N2-D默认任务-2标准输出写入信息]位于com.safenetinc.luna.provider.keyagree.LunaKeyAgreementEcDh.engineGenerateSecretWantBytes(LunaKeyAgreementEcDh.java:355) [2019-01-16 05:21:16 21916@USSY-6XLJ9N2-D默认任务-2标准输出写入信息]位于com.safenetinc.luna.provider.keyagree.LunaKeyAgreementEcDh.engineGenerateSecret(LunaKeyAgreementEcDh.java:393) [2019-01-16 05:21:16 21916@USSY-6XLJ9N2-D默认任务-2 stdout write INFO]位于javax.crypto.keyagression.generateScret(keyagression.java:586) [2019-01-16 05:21:16 21916@USSY-6XLJ9N2-D默认任务-2标准输出写入信息]位于com.sjm.patienttportal.services.ngq.tool.HSMClinetServiceTool.validateHSM(HSMClinetServiceTool.java:103) [2019-01-16 05:21:16 21916@USSY-6XLJ9N2-D默认任务-2标准输出写入信息]位于com.sjm.patientPortal.services.ngq.tool.HSMClinetServiceTool$$FastClassBySpringCGLIB$$1b5687a0.invoke() 原因:com.safenetinc.luna.exception.lunaCryptokieException:函数“CA_DeriveKeyAndWrap”在key=2305时返回0x6a [2019-01-16 05:21:16 21916@USSY-6XLJ9N2-D默认任务-2标准输出写入信息]位于com.safenetinc.luna.exception.LunaCryptokiException.ThrowNew(LunaCryptokiException.java:91) [2019-01-16 05:21:16 21916@USSY-6XLJ9N2-D默认任务-2标准输出写入信息]位于com.safenetinc.luna.LunaAPI.DeriveKeyAndWrapEcDh(本机方法) [2019-01-16 05:21:16 21916@USSY-6XLJ9N2-D默认任务-2标准输出写入信息]位于com.safenetinc.luna.provider.keyagree.lunakeyagreement ECDH.engineGenerateSecretWantBytes(LunaKeyAgreementEcDh.java:320)

我已经尝试了所有的选择。需要你的帮助来解决这个问题


感谢有两种方法可以解决此问题:-

  • 在java.security中添加
    com.safenetinc.luna.provider.createExtractableSecretKeys=true
    。此选项将所有新生成的密钥标记为可提取密钥

  • 如果您不希望所有键都将CKA_EXTRACTABLE设置为true,那么您需要像这样更改代码。。。
    LunaSlotManager=LunaSlotManager.getInstance()
    
    manager.setSecretKeysExtractable(true)
    
    manager.login(0,“通过”)


  • 解决此问题的两种方法:-

  • 在java.security中添加
    com.safenetinc.luna.provider.createExtractableSecretKeys=true
    。此选项将所有新生成的密钥标记为可提取密钥

  • 如果您不希望所有键都将CKA_EXTRACTABLE设置为true,那么您需要像这样更改代码。。。
    LunaSlotManager=LunaSlotManager.getInstance()
    
    manager.setSecretKeysExtractable(true)
    
    manager.login(0,“通过”)


  • 通过在jre安全策略文件-com.safenetinc.luna.provider.createExtractableSecretKeys=trues上添加此设置修复了此问题。通过在jre安全策略文件-com.safenetinc.luna.provider.createExtractableSecretKeys=trues上添加此设置修复了此问题。Hey Sam,建议您进行此修复,这个问题现在通过选项1解决了。谢谢你的帮助。嘿,山姆,这是你推荐的修复方案,现在使用选项1解决了这个问题。谢谢你的帮助。