From 6605ab86e9f8d33ed1cb83955b2674bd07f23e6b Mon Sep 17 00:00:00 2001 From: Raul Metsma Date: Thu, 9 Jan 2025 12:24:47 +0200 Subject: [PATCH] NCryptEnumKeys returns ERROR_NO_MORE_ITEMS and is positive error code IB-8341 Signed-off-by: Raul Metsma --- client/QCNG.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/client/QCNG.cpp b/client/QCNG.cpp index a99d511d..a1a774e2 100644 --- a/client/QCNG.cpp +++ b/client/QCNG.cpp @@ -30,13 +30,13 @@ using namespace Qt::Literals::StringLiterals; Q_LOGGING_CATEGORY(CNG, "qdigidoc4.QCNG") -template +template struct SCOPE { T d {}; - ~SCOPE() { if(d) D(d); } - constexpr operator T() const { return d; } - constexpr T* operator&() { return &d; } + ~SCOPE() noexcept { if(d) D(d); } + constexpr operator T() const noexcept { return d; } + constexpr T* operator&() noexcept { return &d; } }; class QCNG::Private @@ -206,9 +206,9 @@ QList QCNG::tokens() const PVOID pos {}; BCRYPT_PSS_PADDING_INFO rsaPSS { NCRYPT_SHA256_ALGORITHM, 32 }; DWORD size {}; - while(SUCCEEDED(NCryptEnumKeys(h, reader.isEmpty() ? nullptr : LPCWSTR(scope.utf16()), &keyname, &pos, NCRYPT_SILENT_FLAG))) + while(NCryptEnumKeys(h, reader.isEmpty() ? nullptr : LPCWSTR(scope.utf16()), &keyname, &pos, NCRYPT_SILENT_FLAG) == ERROR_SUCCESS) { - SCOPE keyname_scope{keyname}; + SCOPE keyname_scope{keyname}; SCOPE key; err = NCryptOpenKey(h, &key, keyname->pszName, keyname->dwLegacyKeySpec, NCRYPT_SILENT_FLAG); SslCertificate cert(prop(key, NCRYPT_CERTIFICATE_PROPERTY), QSsl::Der); @@ -248,7 +248,7 @@ QList QCNG::tokens() const qCWarning(CNG) << "Start enumerationg providers"; DWORD count {}; - SCOPE providers {}; + SCOPE providers {}; NCryptEnumStorageProviders(&count, &providers, NCRYPT_SILENT_FLAG); for(DWORD i {}; i < count; ++i) {