From 9119e2b9bbb11b4ae21618fbaacfe6edaeb2a62b Mon Sep 17 00:00:00 2001 From: Gabriele Contini <contini.mailing@gmail.com> Date: 周六, 15 2月 2020 23:49:50 +0800 Subject: [PATCH] pc identifiers work --- src/library/os/windows/signature_verifier.cpp | 17 +++++++++-------- 1 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/library/os/windows/signature_verifier.cpp b/src/library/os/windows/signature_verifier.cpp index 677e698..6e9b62d 100644 --- a/src/library/os/windows/signature_verifier.cpp +++ b/src/library/os/windows/signature_verifier.cpp @@ -20,11 +20,12 @@ #include <public_key.h> #include "../../base/logger.h" #include "../../base/base64.h" -#include "../signature_verifier.h" +#include "../signature_verifier.hpp" #define RSA_KEY_BITLEN 1024 namespace license { +namespace os { using namespace std; #define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0) @@ -54,7 +55,6 @@ static DWORD hashData(BCRYPT_HASH_HANDLE& hHash, const string& data, PBYTE pbHash, DWORD hashDataLenght) { DWORD status; - bool success = false; if (NT_SUCCESS(status = BCryptHashData(hHash, (BYTE*)data.c_str(), (ULONG)data.length(), 0))) { status = BCryptFinishHash(hHash, pbHash, hashDataLenght, 0); } @@ -136,13 +136,13 @@ 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 = signatureBlob.size(); + 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 +160,8 @@ } else { LOG_DEBUG("Error reading public key"); } - } else { + } + else { result = FUNC_RET_NOT_AVAIL; #ifdef _DEBUG formatError(status, "error opening RSA provider"); @@ -242,5 +243,5 @@ } return result; } - +} // namespace os } /* namespace license */ -- Gitblit v1.9.1