Я установил закрытый ключ в хранилище ключей 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();
Ошибка, которую я получаю, когда он выполняет строку в keyAgreement.generateSecret () из JBOSS, но работает из автономного приложения.
Вот ошибка, которую я получаю при извлечении секретного ключа из 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.j)
[2019-01-16 05:21:16 21916 @ USSY-6XLJ9N2-D задание по умолчанию для ввода-вывода задачи 2 по умолчанию] в com.safenetinc.luna.provider.keyagree.LunaKeyAgreementEcDh.engineGenerateSecret (LunaKeyAgreementEcDh.java:39)
[2019-01-16 05:21:16 21916 @ USSY-6XLJ9N2-D стандартная информация о вводе-выводе задания 2 по умолчанию] по адресу javax.crypto.KeyAgreement.generateSecret (KeyAgreement.java:586)
[2019-01-16 05:21:16 21916 @ USSY-6XLJ9N2-D задание по умолчанию для ввода-вывода задачи 2 по умолчанию на com.sjm.patientPortal.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 $$ 1b568ke0 (в)
Вызывается: com.safenetinc.luna.exception.LunaCryptokiException: функция 'CA_DeriveKeyAndWrap' возвращает 0x6a для ключа = 2305
[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.LunaKeyAgreementEcDh.engineGenerateSecretWantBytes (LunaKeyAgreementE0Dh.jj) 101
Я испробовал все варианты. и нужна ваша помощь, чтобы решить эту проблему.
спасибо