< prev index next >
src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Digest.java
Print this page
*** 141,151 ****
// see JCA spec
protected void engineReset() {
token.ensureValid();
if (session != null) {
! if (state == S_INIT && token.explicitCancel == true) {
session = token.killSession(session);
} else {
session = token.releaseSession(session);
}
}
--- 141,152 ----
// see JCA spec
protected void engineReset() {
token.ensureValid();
if (session != null) {
! if (state == S_INIT && token.explicitCancel == true
! && session.hasObjects() == false) {
session = token.killSession(session);
} else {
session = token.releaseSession(session);
}
}
*** 262,272 ****
--- 263,278 ----
if (bufOfs != 0) {
token.p11.C_DigestUpdate(session.id(), 0, buffer, 0, bufOfs);
bufOfs = 0;
}
+ p11Key.incNativeKeyRef();
+ try {
token.p11.C_DigestKey(session.id(), p11Key.keyID);
+ } finally {
+ p11Key.decNativeKeyRef();
+ }
} catch (PKCS11Exception e) {
engineReset();
throw new ProviderException("update(SecretKey) failed", e);
}
}
< prev index next >