gcontini
2020-10-31 9c33ad84278353286bbb4118cd11ca3fcfec439a
src/library/os/windows/signature_verifier.cpp
@@ -15,7 +15,7 @@
#include <wincrypt.h>
#include <iphlpapi.h>
#include <windows.h>
#pragma comment(lib, "bcrypt.lib")
//#pragma comment(lib, "bcrypt.lib")
#include <public_key.h>
#include "../../base/logger.h"
@@ -29,7 +29,7 @@
using namespace std;
#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)
static const void formatError(DWORD status, const char* description) {
static const void formatError(DWORD status, const char *description) {
   char msgBuffer[256];
   FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, status, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), &msgBuffer[0],
              sizeof(msgBuffer) - 1, nullptr);
@@ -67,7 +67,7 @@
   cout << (len & 0x80) << endl;
   if ((len & 0x80) > 0) {
      size_t blen = len & 0x7F;
      for (int i = 0; i < blen; i++) {
      for (size_t i = 0; i < blen; i++) {
         result += (*(ptr++) << (i * 8));
      }
   } else {
@@ -99,7 +99,7 @@
   if (expected_length < length) {
      return FUNC_RET_ERROR;
   }
   for (int i = 0; i < length; i++) {
   for (size_t i = 0; i < length; i++) {
      location[i] = *(ptr++);
   }
   return FUNC_RET_OK;
@@ -124,7 +124,7 @@
                                    sizeof(pubk), 0))) {
      result = FUNC_RET_OK;
   } else {
#ifdef _DEBUG
#ifndef NDEBUG
      formatError(status, "error importing public key");
#endif
   }
@@ -140,8 +140,8 @@
   vector<uint8_t> signatureBlob = unbase64(signatureBuffer);
   DWORD dwSigLen = (DWORD) signatureBlob.size();
   BYTE* sigBlob = &signatureBlob[0];
   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;
@@ -152,7 +152,7 @@
            result = FUNC_RET_OK;
         } else {
            result = FUNC_RET_ERROR;
#ifdef _DEBUG
#ifndef NDEBUG
            formatError(status, "error verifying signature");
#endif
         }
@@ -162,7 +162,7 @@
   }
   else {
      result = FUNC_RET_NOT_AVAIL;
#ifdef _DEBUG
#ifndef NDEBUG
      formatError(status, "error opening RSA provider");
#endif
   }
@@ -207,13 +207,13 @@
               result = verifyHash(pbHashData, cbHashDataLenght, signatureB64);
            } else {
               result = FUNC_RET_NOT_AVAIL;
#ifdef _DEBUG
#ifndef NDEBUG
               formatError(status, "error hashing data");
#endif
            }
         } else {
            result = FUNC_RET_NOT_AVAIL;
#ifdef _DEBUG
#ifndef NDEBUG
            formatError(status, "error creating hash");
#endif
         }
@@ -223,7 +223,7 @@
      }
   } else {
      result = FUNC_RET_NOT_AVAIL;
#ifdef _DEBUG
#ifndef NDEBUG
      formatError(status, "**** Error returned by BCryptGetProperty");
#endif
   }