use of iaik.pkcs.pkcs11.objects.Key in project xipki by xipki.
the class IaikP11Slot method singleSign.
private byte[] singleSign(Session session, long mechanism, P11Params parameters, byte[] content, IaikP11Identity identity) throws P11TokenException {
Key signingKey = identity.getSigningKey();
Mechanism mechanismObj = getMechanism(mechanism, parameters);
if (LOG.isTraceEnabled()) {
LOG.debug("sign with signing key:\n{}", signingKey);
}
byte[] signature;
try {
session.signInit(mechanismObj, signingKey);
signature = session.sign(content);
} catch (TokenException ex) {
throw new P11TokenException(ex.getMessage(), ex);
}
if (LOG.isDebugEnabled()) {
LOG.debug("signature:\n{}", hex(signature));
}
return signature;
}
use of iaik.pkcs.pkcs11.objects.Key in project xipki by xipki.
the class IaikP11Slot method removeObjects.
@Override
public int removeObjects(byte[] id, String label) throws P11TokenException {
if ((id == null || id.length == 0) && StringUtil.isBlank(label)) {
throw new IllegalArgumentException("at least one of id and label must not be null");
}
Key keyTemplate = new Key();
if (id != null && id.length > 0) {
keyTemplate.getId().setByteArrayValue(id);
}
if (StringUtil.isNotBlank(label)) {
keyTemplate.getLabel().setCharArrayValue(label.toCharArray());
}
String objIdDesc = getDescription(id, label);
int num = removeObjects(keyTemplate, "keys " + objIdDesc);
X509PublicKeyCertificate certTemplate = new X509PublicKeyCertificate();
if (id != null && id.length > 0) {
certTemplate.getId().setByteArrayValue(id);
}
if (StringUtil.isNotBlank(label)) {
certTemplate.getLabel().setCharArrayValue(label.toCharArray());
}
num += removeObjects(certTemplate, "certificates" + objIdDesc);
return num;
}
use of iaik.pkcs.pkcs11.objects.Key in project xipki by xipki.
the class IaikP11Slot method idExists.
private static boolean idExists(Session session, byte[] keyId) throws P11TokenException {
Key key = new Key();
key.getId().setByteArrayValue(keyId);
Object[] objects;
try {
session.findObjectsInit(key);
objects = session.findObjects(1);
if (objects.length > 0) {
return true;
}
} catch (TokenException ex) {
throw new P11TokenException(ex.getMessage(), ex);
} finally {
try {
session.findObjectsFinal();
} catch (TokenException ex) {
LogUtil.error(LOG, ex, "session.findObjectsFinal() failed");
}
}
X509PublicKeyCertificate cert = new X509PublicKeyCertificate();
cert.getId().setByteArrayValue(keyId);
try {
session.findObjectsInit(cert);
objects = session.findObjects(1);
} catch (TokenException ex) {
throw new P11TokenException(ex.getMessage(), ex);
} finally {
try {
session.findObjectsFinal();
} catch (TokenException ex) {
LogUtil.error(LOG, ex, "session.findObjectsFinal() failed");
}
}
return objects.length > 0;
}
Aggregations