| | |
| | | #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) |
| | | |
| | |
| | | } PUBKEY_BLOB, *P_PUBKEY_BLOB; |
| | | #pragma pack(pop) |
| | | |
| | | static BCRYPT_ALG_HANDLE openSignatureProvider() { |
| | | DWORD status; |
| | | BCRYPT_ALG_HANDLE hSignAlg = nullptr; |
| | | |
| | | return hSignAlg; |
| | | } |
| | | |
| | | static BCRYPT_ALG_HANDLE openHashProvider() { |
| | | DWORD status; |
| | | BCRYPT_ALG_HANDLE hHashAlg = nullptr; |
| | |
| | | |
| | | 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); |
| | | } |
| | |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | } // namespace os |
| | | } /* namespace license */ |