MCPcopy Create free account
hub / github.com/OpenRCT2/OpenRCT2 / VerifyData

Method VerifyData

src/openrct2/core/Crypt.CNG.cpp:652–662  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

650 }
651
652 bool VerifyData(const RsaKey& key, const void* data, size_t dataLen, const void* sig, size_t sigLen) override
653 {
654 auto hKey = static_cast<const CngRsaKey&>(key).GetKeyHandle();
655 auto [cbHash, pbHash] = HashData(data, dataLen);
656 auto [cbSignature, pbSignature] = ToHeap(sig, sigLen);
657
658 BCRYPT_PKCS1_PADDING_INFO paddingInfo{ BCRYPT_SHA256_ALGORITHM };
659 auto status = BCryptVerifySignature(hKey, &paddingInfo, pbHash, cbHash, pbSignature, cbSignature, BCRYPT_PAD_PKCS1);
660 HeapFree(GetProcessHeap(), 0, pbSignature);
661 return status == ERROR_SUCCESS;
662 }
663
664private:
665 static std::tuple<DWORD, PBYTE> HashData(const void* data, size_t dataLen)

Callers 2

TEST_FFunction · 0.45
VerifyMethod · 0.45

Calls 1

GetKeyHandleMethod · 0.80

Tested by 1

TEST_FFunction · 0.36