diff options
author | Shauren <shauren.trinity@gmail.com> | 2017-12-29 12:50:12 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2017-12-29 12:50:12 +0100 |
commit | b49fa9658a436c31ffc40100d5a55bee5a3f861e (patch) | |
tree | 38e79bad5feff33da73f3901e957bcbf91bc8060 /src/common/Cryptography/RSA.cpp | |
parent | 02022d3cd65f072874e9f5de061e0b158b6eb634 (diff) |
Tools/Patcher: Properly sign certificate bundle7.2.5/24742
Diffstat (limited to 'src/common/Cryptography/RSA.cpp')
-rw-r--r-- | src/common/Cryptography/RSA.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
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 <openssl/bn.h> #include <openssl/pem.h> #include <algorithm> #include <iterator> @@ -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 <typename KeyTag> 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 |