From 79b1b57045e86d9845e352c3f2aa0efbab6111a9 Mon Sep 17 00:00:00 2001 From: gcontini <1121667+gcontini@users.noreply.github.com> Date: 周六, 14 3月 2020 10:19:09 +0800 Subject: [PATCH] tests and improvements --- src/library/os/windows/signature_verifier.cpp | 18 +++++++++--------- 1 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/library/os/windows/signature_verifier.cpp b/src/library/os/windows/signature_verifier.cpp index 05849b4..5e12727 100644 --- a/src/library/os/windows/signature_verifier.cpp +++ b/src/library/os/windows/signature_verifier.cpp @@ -136,13 +136,12 @@ DWORD status; FUNCTION_RETURN result = FUNC_RET_ERROR; PBYTE pbSignature = nullptr; - DWORD dwSigLen; - BYTE* sigBlob = nullptr; BCRYPT_ALG_HANDLE hSignAlg = nullptr; - // FIXME!! - sigBlob = unbase64(signatureBuffer.c_str(), (int)signatureBuffer.size(), (int*)&dwSigLen); - + vector<uint8_t> signatureBlob = unbase64(signatureBuffer); + DWORD dwSigLen = (DWORD) signatureBlob.size(); + BYTE* sigBlob = &signatureBlob[0]; + if (NT_SUCCESS(status = BCryptOpenAlgorithmProvider(&hSignAlg, BCRYPT_RSA_ALGORITHM, NULL, 0))) { if ((result = readPublicKey(hSignAlg, &phKey)) == FUNC_RET_OK) { BCRYPT_PKCS1_PADDING_INFO paddingInfo; @@ -160,7 +159,8 @@ } else { LOG_DEBUG("Error reading public key"); } - } else { + } + else { result = FUNC_RET_NOT_AVAIL; #ifdef _DEBUG formatError(status, "error opening RSA provider"); @@ -173,9 +173,9 @@ if (hSignAlg != nullptr) { BCryptCloseAlgorithmProvider(hSignAlg, 0); } - if (sigBlob) { - free(sigBlob); - } + //if (sigBlob) { + // free(sigBlob); + //} return result; } -- Gitblit v1.9.1