private void analyseSingleKey(Session session, PrivateKey privKey, P11SlotRefreshResult refreshResult) throws P11TokenException, XiSecurityException { byte[] id = privKey.getId().getByteArrayValue(); char[] label = privKey.getLabel().getCharArrayValue(); if (id == null || label == null) { return; } String pubKeyLabel = null; PublicKey p11PublicKey = getPublicKeyObject(session, id, null); if (p11PublicKey != null) { pubKeyLabel = new String(p11PublicKey.getLabel().getCharArrayValue()); } String certLabel = null; java.security.PublicKey pubKey = null; X509Cert cert = refreshResult.getCertForId(id); if (cert != null) { certLabel = refreshResult.getCertLabelForId(id); pubKey = cert.getCert().getPublicKey(); } else if (p11PublicKey != null) { pubKey = generatePublicKey(p11PublicKey); } else { LOG.info("neither certificate nor public key for the key (" + hex(id) + " is available"); return; } P11ObjectIdentifier objectId = new P11ObjectIdentifier(id, new String(label)); X509Certificate[] certs = (cert == null) ? null : new X509Certificate[]{cert.getCert()}; IaikP11Identity identity = new IaikP11Identity(this, new P11IdentityId(slotId, objectId, pubKeyLabel, certLabel), privKey, pubKey, certs); refreshResult.addIdentity(identity); }
private void analyseSingleKey(final PrivateKey privKey, final P11SlotRefreshResult refreshResult) throws P11TokenException, XiSecurityException { byte[] id = privKey.getId().getByteArrayValue(); java.security.PublicKey pubKey = null; X509Cert cert = refreshResult.getCertForId(id); if (cert != null) { pubKey = cert.cert().getPublicKey(); } else { PublicKey p11PublicKey = getPublicKeyObject(id, null); if (p11PublicKey == null) { LOG.info("neither certificate nor public key for the key (" + Hex.toHexString(id) + " is available"); return; } pubKey = generatePublicKey(p11PublicKey); } P11ObjectIdentifier objectId = new P11ObjectIdentifier(id, toString(privKey.getLabel())); X509Certificate[] certs = (cert == null) ? null : new X509Certificate[]{cert.cert()}; IaikP11Identity identity = new IaikP11Identity(this, new P11EntityIdentifier(slotId, objectId), privKey, pubKey, certs); refreshResult.addIdentity(identity); }
privateKeyTemplate.getId().setByteArrayValue(id); publicKeyTemplate.getId().setByteArrayValue(id);
privateKey.getId().setByteArrayValue(id); publicKey.getId().setByteArrayValue(id); try {
byte[] keyId = privKey.getId().getByteArrayValue();
byte[] keyId = privKey.getId().getByteArrayValue(); if (keyId == null || keyId.length == 0) { break;