From b49fa9658a436c31ffc40100d5a55bee5a3f861e Mon Sep 17 00:00:00 2001 From: Shauren Date: Fri, 29 Dec 2017 12:50:12 +0100 Subject: Tools/Patcher: Properly sign certificate bundle --- src/common/Cryptography/RSA.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/common/Cryptography/RSA.cpp') diff --git a/src/common/Cryptography/RSA.cpp b/src/common/Cryptography/RSA.cpp index 11bbbe1dac5..96199d34bb0 100644 --- a/src/common/Cryptography/RSA.cpp +++ b/src/common/Cryptography/RSA.cpp @@ -16,6 +16,8 @@ */ #include "RSA.h" +#include "BigNumber.h" +#include #include #include #include @@ -88,6 +90,13 @@ bool Trinity::Crypto::RSA::LoadFromString(std::string const& keyPem, KeyTag) return true; } +BigNumber Trinity::Crypto::RSA::GetModulus() const +{ + BigNumber bn; + BN_copy(bn.BN(), _rsa->n); + return bn; +} + template bool Trinity::Crypto::RSA::Encrypt(uint8 const* data, std::size_t dataLength, uint8* output, int32 paddingType) { @@ -97,6 +106,14 @@ bool Trinity::Crypto::RSA::Encrypt(uint8 const* data, std::size_t dataLength, ui return result != -1; } +bool Trinity::Crypto::RSA::Sign(int32 hashType, uint8 const* dataHash, std::size_t dataHashLength, uint8* output) +{ + uint32 signatureLength = 0; + int result = RSA_sign(hashType, dataHash, dataHashLength, output, &signatureLength, _rsa); + std::reverse(output, output + GetOutputSize()); + return result != -1; +} + namespace Trinity { namespace Crypto -- cgit v1.2.3