私はsofthsm
pkcs11 プロバイダーとして使用しており、私のプラットフォームは ubuntu 64 です
を使用して暗号化したいsofthsm
ので、キーをスロット 0 にインポートしました。キーがインポートされたことが示され、その ID で別のキーをインポートしようとすると、ID が使用されていると表示されるため、プロバイダーがキーをインポートしました。しかし、コードでキーを見つけようとすると、ラッパーはキーを見つけることができません。私のコードに問題はありますか? または何??
Module pkcs11Module = Module.getInstance("libsofthsm.so");
pkcs11Module.initialize(null );
Info info = pkcs11Module.getInfo();
System.out.println(info);
Slot[] slotsWithToken = pkcs11Module.getSlotList(Module.SlotRequirement.TOKEN_PRESENT);
Token token = slotsWithToken[0].getToken();
Session session = token.openSession(Token.SessionType.SERIAL_SESSION,
Token.SessionReadWriteBehavior.RO_SESSION,
null,
null);
RSAPrivateKey searchTemplate = new RSAPrivateKey();
searchTemplate.getSign().setBooleanValue(Boolean.TRUE);
session.findObjectsInit(searchTemplate);
Object[] matchingKeys;
RSAPrivateKey signatureKey;
if ((matchingKeys = session.findObjects(1)).length > 0) {
signatureKey = (RSAPrivateKey) matchingKeys[0];
} else {
signatureKey = null; //It goes here so no key was found.
}