diff --git a/src/libopensc/card-myeid.c b/src/libopensc/card-myeid.c index e14d5409..ca45890d 100644 --- a/src/libopensc/card-myeid.c +++ b/src/libopensc/card-myeid.c @@ -1261,7 +1261,7 @@ static int myeid_wrap_key(struct sc_card *card, u8 *out, size_t outlen) u8 rbuf[SC_MAX_APDU_BUFFER_SIZE]; int r; - assert(card != NULL && out != NULL); + assert(card != NULL); ctx = card->ctx; LOG_FUNC_CALLED(ctx); @@ -1279,7 +1279,7 @@ static int myeid_wrap_key(struct sc_card *card, u8 *out, size_t outlen) r = sc_check_sw(card, apdu.sw1, apdu.sw2); LOG_TEST_RET(ctx, r, "wrap key failed"); - if (apdu.resplen <= outlen) + if (apdu.resplen <= outlen && out != NULL) memcpy(out, apdu.resp, apdu.resplen); LOG_FUNC_RETURN(ctx, apdu.resplen); diff --git a/src/pkcs11/mechanism.c b/src/pkcs11/mechanism.c index 1ff2a961..76268a9d 100644 --- a/src/pkcs11/mechanism.c +++ b/src/pkcs11/mechanism.c @@ -868,7 +868,7 @@ sc_pkcs11_wrap(struct sc_pkcs11_session *session, targetKey, wrappedData, wrappedDataLen); - session_stop_operation(session, SC_PKCS11_OPERATION_UNWRAP); + session_stop_operation(session, SC_PKCS11_OPERATION_WRAP); return rv; }