diff --git a/plugins/qca-pkcs11/qca-pkcs11.cpp b/plugins/qca-pkcs11/qca-pkcs11.cpp index 97451a73..103a34c8 100644 --- a/plugins/qca-pkcs11/qca-pkcs11.cpp +++ b/plugins/qca-pkcs11/qca-pkcs11.cpp @@ -2264,7 +2264,7 @@ pkcs11KeyStoreListContext::serializeCertificateId ( buf.resize ((int)len); serialized = QString ().sprintf ( - "qca-pkcs11/%s/%d/", + "qca-pkcs11/0/%s/%d/", myPrintable(escapeString (QString::fromUtf8 (buf))), has_private ? 1 : 0 ); @@ -2328,6 +2328,10 @@ pkcs11KeyStoreListContext::deserializeCertificateId ( throw pkcs11Exception (CKR_FUNCTION_FAILED, "Invalid serialization"); } + if (list[n++].toInt () != 0) { + throw pkcs11Exception (CKR_FUNCTION_FAILED, "Invalid serialization version"); + } + if ( (rv = pkcs11h_certificate_deserializeCertificateId ( &certificate_id,