private void engineLoad(final String moduleName) throws P11TokenException, XiSecurityException {
P11CryptService p11Service = p11CryptServiceFactory.getP11CryptService(moduleName);
P11Module module = p11Service.module();
List<P11SlotIdentifier> slotIds = module.slotIdentifiers();
for (P11SlotIdentifier slotId: slotIds) {
P11Slot slot = module.getSlot(slotId);
Set<P11ObjectIdentifier> identityIds = slot.identityIdentifiers();
for (P11ObjectIdentifier objId : identityIds) {
P11Identity identity = slot.getIdentity(objId);
X509Certificate[] chain = identity.certificateChain();
if (chain == null || chain.length == 0) {
continue;
}
P11PrivateKey key = new P11PrivateKey(p11Service, identity.identityId());
KeyCertEntry keyCertEntry = new KeyCertEntry(key, chain);
keyCerts.put(moduleName + "#slotid-" + slotId.id() + "#keyid-"
+ objId.idHex(), keyCertEntry);
keyCerts.put(moduleName + "#slotid-" + slotId.id() + "#keylabel-"
+ objId.label(), keyCertEntry);
keyCerts.put(moduleName + "#slotindex-" + slotId.index() + "#keyid-"
+ objId.idHex(), keyCertEntry);
keyCerts.put(moduleName + "#slotindex-" + slotId.index() + "#keylabel-"
+ objId.label(), keyCertEntry);
}
}
}