diff --git a/lib/hx509/ks_p11.c b/lib/hx509/ks_p11.c index d36e21ef8..8332fbcc2 100644 --- a/lib/hx509/ks_p11.c +++ b/lib/hx509/ks_p11.c @@ -155,11 +155,10 @@ p11_rsa_private_encrypt(int flen, ret = P11FUNC(p11rsa->p, Sign, (session, (CK_BYTE *)from, flen, to, &ck_sigsize)); + p11_put_session(p11rsa->p, p11rsa->slot, session); if (ret != CKR_OK) return -1; - p11_put_session(p11rsa->p, p11rsa->slot, session); - return ck_sigsize; } @@ -194,11 +193,10 @@ p11_rsa_private_decrypt(int flen, const unsigned char *from, unsigned char *to, ret = P11FUNC(p11rsa->p, Decrypt, (session, (CK_BYTE *)from, flen, to, &ck_sigsize)); + p11_put_session(p11rsa->p, p11rsa->slot, session); if (ret != CKR_OK) return -1; - p11_put_session(p11rsa->p, p11rsa->slot, session); - return ck_sigsize; }