From 68324ee855d3dd1428682855f8b2f2d138b034db Mon Sep 17 00:00:00 2001 From: CryptoManiac Date: Sat, 27 Nov 2021 15:26:54 +0300 Subject: [PATCH] Use BN_dup --- src/bignum.h | 17 +++++++++-------- 1 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/bignum.h b/src/bignum.h index 1c9d7fb..d5927d3 100644 --- a/src/bignum.h +++ b/src/bignum.h @@ -59,21 +59,22 @@ public: CBigNum(const CBigNum& b) { - bn = BN_new(); - if (!BN_copy(bn, b.bn)) + BIGNUM *dup = BN_dup(b.bn); + if (!dup) { - BN_clear_free(bn); - throw bignum_error("CBigNum::CBigNum(const CBigNum&) : BN_copy failed"); + throw bignum_error("CBigNum::CBigNum(const CBigNum&) : BN_dup failed"); } + bn = dup; } CBigNum& operator=(const CBigNum& b) { - bn = BN_new(); - if (!BN_copy(bn, b.bn)) { - BN_clear_free(bn); - throw bignum_error("CBigNum::operator= : BN_copy failed"); + BIGNUM *dup = BN_dup(b.bn); + if (!dup) + { + throw bignum_error("CBigNum::operator= : BN_dup failed"); } + bn = dup; return (*this); } -- 1.7.1