LibCrypto: Add methods to convert OpenSSL BN <-> UnsignedBigInteger

These methods allow to convert between OpenSSL big numbers and ours.
This commit is contained in:
devgianlu 2024-12-23 18:15:15 +01:00 committed by Ali Mohammad Pur
commit 130f890497
Notes: github-actions[bot] 2025-01-12 00:14:29 +00:00
3 changed files with 46 additions and 0 deletions

View file

@ -8,7 +8,9 @@
#include <AK/Error.h>
#include <AK/Format.h>
#include <LibCrypto/BigInt/UnsignedBigInteger.h>
#include <openssl/bn.h>
#include <openssl/err.h>
#include <openssl/evp.h>
@ -82,6 +84,16 @@ private: \
\
openssl_type* m_ptr { nullptr };
class OpenSSL_BN {
OPENSSL_WRAPPER_CLASS(OpenSSL_BN, BIGNUM, BN);
public:
static ErrorOr<OpenSSL_BN> create()
{
return OpenSSL_BN(OPENSSL_TRY_PTR(BN_new()));
}
};
class OpenSSL_PKEY {
OPENSSL_WRAPPER_CLASS(OpenSSL_PKEY, EVP_PKEY, EVP_PKEY);
@ -104,4 +116,7 @@ public:
#undef OPENSSL_WRAPPER_CLASS
ErrorOr<OpenSSL_BN> unsigned_big_integer_to_openssl_bignum(UnsignedBigInteger const& integer);
ErrorOr<UnsignedBigInteger> openssl_bignum_to_unsigned_big_integer(OpenSSL_BN const& bn);
}