Loading ccsrc/Protocols/Security/security_cache.cc +2 −1 Original line number Original line Diff line number Diff line Loading @@ -189,7 +189,8 @@ int security_cache::store_certificate(const CHARSTRING& p_cert_id, const OCTETST std::vector<unsigned char> private_enc_key; std::vector<unsigned char> private_enc_key; std::vector<unsigned char> public_enc_key_x; std::vector<unsigned char> public_enc_key_x; std::vector<unsigned char> public_enc_key_y; std::vector<unsigned char> public_enc_key_y; if (p_private_enc_key.lengthof() != 0) { loggers::get_instance().log_to_hexa("security_cache::store_certificate: public_comp_key: ", public_comp_key.data(), public_comp_key.size()); if ((p_private_enc_key.is_bound() != 0) && (p_private_enc_key.lengthof() != 0)) { private_enc_key.assign(static_cast<const unsigned char*>(p_private_enc_key), static_cast<const unsigned char*>(p_private_enc_key) + p_private_enc_key.lengthof()); private_enc_key.assign(static_cast<const unsigned char*>(p_private_enc_key), static_cast<const unsigned char*>(p_private_enc_key) + p_private_enc_key.lengthof()); public_enc_key_x.assign(static_cast<const unsigned char*>(p_public_enc_key_x), static_cast<const unsigned char*>(p_public_enc_key_x) + p_public_enc_key_x.lengthof()); public_enc_key_x.assign(static_cast<const unsigned char*>(p_public_enc_key_x), static_cast<const unsigned char*>(p_public_enc_key_x) + p_public_enc_key_x.lengthof()); public_enc_key_y.assign(static_cast<const unsigned char*>(p_public_enc_key_y), static_cast<const unsigned char*>(p_public_enc_key_y) + p_public_enc_key_y.lengthof()); public_enc_key_y.assign(static_cast<const unsigned char*>(p_public_enc_key_y), static_cast<const unsigned char*>(p_public_enc_key_y) + p_public_enc_key_y.lengthof()); Loading ccsrc/Protocols/Security/security_ecc.cc +15 −7 Original line number Original line Diff line number Diff line Loading @@ -89,7 +89,7 @@ security_ecc::security_ecc(const ec_elliptic_curves p_elliptic_curve, const std: loggers::get_instance().log_to_hexa("security_ecc::security_ecc (1): _pub_key_x=", _pub_key_x.data(), _pub_key_x.size()); loggers::get_instance().log_to_hexa("security_ecc::security_ecc (1): _pub_key_x=", _pub_key_x.data(), _pub_key_x.size()); loggers::get_instance().log_to_hexa("security_ecc::security_ecc (1): _pub_key_y=", _pub_key_y.data(), _pub_key_y.size()); loggers::get_instance().log_to_hexa("security_ecc::security_ecc (1): _pub_key_y=", _pub_key_y.data(), _pub_key_y.size()); loggers::get_instance().log_to_hexa("security_ecc::security_ecc (1): _pub_key_compressed=", _pub_key_compressed.data(), _pub_key_compressed.size()); loggers::get_instance().log_to_hexa("security_ecc::security_ecc (1): _pub_key_compressed=", _pub_key_compressed.data(), _pub_key_compressed.size()); loggers::get_instance().log("security_ecc::security_ecc (1): _pub_key_compressed_mode=", _pub_key_compressed_mode); loggers::get_instance().log("security_ecc::security_ecc (1): _pub_key_compressed_mode=%d", _pub_key_compressed_mode); } // End of constructor } // End of constructor security_ecc::security_ecc(const ec_elliptic_curves p_elliptic_curve, const std::vector<unsigned char>& p_public_key_x, const std::vector<unsigned char>& p_public_key_y): _elliptic_curve(p_elliptic_curve), _encryption_algotithm(encryption_algotithm::aes_128_ccm), _ec_key(nullptr), _ec_group(nullptr), _bn_ctx(nullptr), _pri_key(), _pub_key_x(p_public_key_x), _pub_key_y(p_public_key_y), _pub_key_compressed(), _pub_key_compressed_mode{ecc_compressed_mode::compressed_y_0}, _secret_key(), _enc_key_x(), _enc_key_y(), _sym_key(), _nonce(), _tag() { security_ecc::security_ecc(const ec_elliptic_curves p_elliptic_curve, const std::vector<unsigned char>& p_public_key_x, const std::vector<unsigned char>& p_public_key_y): _elliptic_curve(p_elliptic_curve), _encryption_algotithm(encryption_algotithm::aes_128_ccm), _ec_key(nullptr), _ec_group(nullptr), _bn_ctx(nullptr), _pri_key(), _pub_key_x(p_public_key_x), _pub_key_y(p_public_key_y), _pub_key_compressed(), _pub_key_compressed_mode{ecc_compressed_mode::compressed_y_0}, _secret_key(), _enc_key_x(), _enc_key_y(), _sym_key(), _nonce(), _tag() { Loading Loading @@ -228,7 +228,7 @@ security_ecc::security_ecc(const ec_elliptic_curves p_elliptic_curve, const std: loggers::get_instance().log_to_hexa("security_ecc::security_ecc (3): _pub_key_x=", _pub_key_x.data(), _pub_key_x.size()); loggers::get_instance().log_to_hexa("security_ecc::security_ecc (3): _pub_key_x=", _pub_key_x.data(), _pub_key_x.size()); loggers::get_instance().log_to_hexa("security_ecc::security_ecc (3): _pub_key_y=", _pub_key_y.data(), _pub_key_y.size()); loggers::get_instance().log_to_hexa("security_ecc::security_ecc (3): _pub_key_y=", _pub_key_y.data(), _pub_key_y.size()); loggers::get_instance().log_to_hexa("security_ecc::security_ecc (3): _pub_key_compressed=", _pub_key_compressed.data(), _pub_key_compressed.size()); loggers::get_instance().log_to_hexa("security_ecc::security_ecc (3): _pub_key_compressed=", _pub_key_compressed.data(), _pub_key_compressed.size()); loggers::get_instance().log("security_ecc::security_ecc (3): _pub_key_compressed_mode=", _pub_key_compressed_mode); loggers::get_instance().log("security_ecc::security_ecc (3): _pub_key_compressed_mode=%d", _pub_key_compressed_mode); } // End of constructor } // End of constructor security_ecc::~security_ecc() { security_ecc::~security_ecc() { Loading Loading @@ -274,8 +274,11 @@ int security_ecc::generate() { loggers::get_instance().error("security_ecc::generate: Failed to get coordinates"); loggers::get_instance().error("security_ecc::generate: Failed to get coordinates"); return -1; return -1; } } const BIGNUM* p = ::EC_KEY_get0_private_key(_ec_key); const BIGNUM* p; do { p = ::EC_KEY_get0_private_key(_ec_key); } while (BN_num_bytes(p) == 0); _pri_key.resize(BN_num_bytes(p)); _pri_key.resize(BN_num_bytes(p)); ::BN_bn2bin(p, _pri_key.data()); ::BN_bn2bin(p, _pri_key.data()); _pub_key_x.resize(BN_num_bytes(&x)); _pub_key_x.resize(BN_num_bytes(&x)); Loading @@ -297,10 +300,11 @@ int security_ecc::generate() { _pub_key_compressed_mode = ((_pub_key_compressed[0] & 0x01) == 0x00) ? ecc_compressed_mode::compressed_y_0 : ecc_compressed_mode::compressed_y_1; _pub_key_compressed_mode = ((_pub_key_compressed[0] & 0x01) == 0x00) ? ecc_compressed_mode::compressed_y_0 : ecc_compressed_mode::compressed_y_1; _pub_key_compressed.erase(_pub_key_compressed.begin()); _pub_key_compressed.erase(_pub_key_compressed.begin()); } } loggers::get_instance().log_to_hexa("security_ecc::generate: _pri_key=", _pri_key.data(), _pri_key.size()); loggers::get_instance().log_to_hexa("security_ecc::generate: _pub_key_x=", _pub_key_x.data(), _pub_key_x.size()); loggers::get_instance().log_to_hexa("security_ecc::generate: _pub_key_x=", _pub_key_x.data(), _pub_key_x.size()); loggers::get_instance().log_to_hexa("security_ecc::generate: _pub_key_y=", _pub_key_y.data(), _pub_key_y.size()); loggers::get_instance().log_to_hexa("security_ecc::generate: _pub_key_y=", _pub_key_y.data(), _pub_key_y.size()); loggers::get_instance().log_to_hexa("security_ecc::generate: _pub_key_compressed=", _pub_key_compressed.data(), _pub_key_compressed.size()); loggers::get_instance().log_to_hexa("security_ecc::generate: _pub_key_compressed=", _pub_key_compressed.data(), _pub_key_compressed.size()); loggers::get_instance().log("security_ecc::generate: _pub_key_compressed_mode=", _pub_key_compressed_mode); loggers::get_instance().log("security_ecc::generate: _pub_key_compressed_mode=%d", _pub_key_compressed_mode); return 0; return 0; } } Loading Loading @@ -697,6 +701,7 @@ int security_ecc::decrypt(const std::vector<unsigned char>& p_tag, const std::ve int security_ecc::sign(const std::vector<unsigned char>& p_data, std::vector<unsigned char>& p_r_sig, std::vector<unsigned char>& p_s_sig) { int security_ecc::sign(const std::vector<unsigned char>& p_data, std::vector<unsigned char>& p_r_sig, std::vector<unsigned char>& p_s_sig) { loggers::get_instance().log(">>> security_ecc::sign"); loggers::get_instance().log(">>> security_ecc::sign"); loggers::get_instance().log_to_hexa(">>> security_ecc::sign: p_data: ", p_data.data(), p_data.size()); // Sanity checks // Sanity checks if(_pri_key.size() == 0) { // No private key if(_pri_key.size() == 0) { // No private key Loading @@ -720,10 +725,10 @@ int security_ecc::sign(const std::vector<unsigned char>& p_data, std::vector<uns p_r_sig.resize(BN_num_bytes(signature->r)); p_r_sig.resize(BN_num_bytes(signature->r)); ::BN_bn2bin(signature->r, p_r_sig.data()); ::BN_bn2bin(signature->r, p_r_sig.data()); //loggers::get_instance().log_to_hexa("security_ecc::sign: r=", p_r_sig.data(), p_r_sig.size()); loggers::get_instance().log_to_hexa("security_ecc::sign: r=", p_r_sig.data(), p_r_sig.size()); p_s_sig.resize(BN_num_bytes(signature->r)); p_s_sig.resize(BN_num_bytes(signature->r)); ::BN_bn2bin(signature->s, p_s_sig.data()); ::BN_bn2bin(signature->s, p_s_sig.data()); //loggers::get_instance().log_to_hexa("security_ecc::sign: s=", p_s_sig.data(), p_s_sig.size()); loggers::get_instance().log_to_hexa("security_ecc::sign: s=", p_s_sig.data(), p_s_sig.size()); ::ECDSA_SIG_free(signature); ::ECDSA_SIG_free(signature); Loading @@ -732,6 +737,7 @@ int security_ecc::sign(const std::vector<unsigned char>& p_data, std::vector<uns int security_ecc::sign_verif(const std::vector<unsigned char>& p_data, const std::vector<unsigned char>& p_signature) { int security_ecc::sign_verif(const std::vector<unsigned char>& p_data, const std::vector<unsigned char>& p_signature) { loggers::get_instance().log(">>> security_ecc::sign_verif"); loggers::get_instance().log(">>> security_ecc::sign_verif"); loggers::get_instance().log_to_hexa(">>> security_ecc::sign_verify: p_data: ", p_data.data(), p_data.size()); // Sanity checks // Sanity checks if (p_data.size() == 0) { if (p_data.size() == 0) { Loading @@ -743,7 +749,9 @@ int security_ecc::sign_verif(const std::vector<unsigned char>& p_data, const std ::BN_init(&r); ::BN_init(&r); ::BN_init(&s); ::BN_init(&s); ::BN_bin2bn(p_signature.data(), p_signature.size() / 2, &r); ::BN_bin2bn(p_signature.data(), p_signature.size() / 2, &r); loggers::get_instance().log_to_hexa("security_ecc::sign_verify: r=", p_signature.data(), p_signature.size() / 2); ::BN_bin2bn(p_signature.data() + p_signature.size() / 2, p_signature.size() / 2, &s); ::BN_bin2bn(p_signature.data() + p_signature.size() / 2, p_signature.size() / 2, &s); loggers::get_instance().log_to_hexa("security_ecc::sign_verify: r=", p_signature.data() + p_signature.size() / 2, p_signature.size() / 2); ECDSA_SIG *signature = ECDSA_SIG_new(); ECDSA_SIG *signature = ECDSA_SIG_new(); signature->r = &r; signature->r = &r; signature->s = &s; signature->s = &s; Loading Loading
ccsrc/Protocols/Security/security_cache.cc +2 −1 Original line number Original line Diff line number Diff line Loading @@ -189,7 +189,8 @@ int security_cache::store_certificate(const CHARSTRING& p_cert_id, const OCTETST std::vector<unsigned char> private_enc_key; std::vector<unsigned char> private_enc_key; std::vector<unsigned char> public_enc_key_x; std::vector<unsigned char> public_enc_key_x; std::vector<unsigned char> public_enc_key_y; std::vector<unsigned char> public_enc_key_y; if (p_private_enc_key.lengthof() != 0) { loggers::get_instance().log_to_hexa("security_cache::store_certificate: public_comp_key: ", public_comp_key.data(), public_comp_key.size()); if ((p_private_enc_key.is_bound() != 0) && (p_private_enc_key.lengthof() != 0)) { private_enc_key.assign(static_cast<const unsigned char*>(p_private_enc_key), static_cast<const unsigned char*>(p_private_enc_key) + p_private_enc_key.lengthof()); private_enc_key.assign(static_cast<const unsigned char*>(p_private_enc_key), static_cast<const unsigned char*>(p_private_enc_key) + p_private_enc_key.lengthof()); public_enc_key_x.assign(static_cast<const unsigned char*>(p_public_enc_key_x), static_cast<const unsigned char*>(p_public_enc_key_x) + p_public_enc_key_x.lengthof()); public_enc_key_x.assign(static_cast<const unsigned char*>(p_public_enc_key_x), static_cast<const unsigned char*>(p_public_enc_key_x) + p_public_enc_key_x.lengthof()); public_enc_key_y.assign(static_cast<const unsigned char*>(p_public_enc_key_y), static_cast<const unsigned char*>(p_public_enc_key_y) + p_public_enc_key_y.lengthof()); public_enc_key_y.assign(static_cast<const unsigned char*>(p_public_enc_key_y), static_cast<const unsigned char*>(p_public_enc_key_y) + p_public_enc_key_y.lengthof()); Loading
ccsrc/Protocols/Security/security_ecc.cc +15 −7 Original line number Original line Diff line number Diff line Loading @@ -89,7 +89,7 @@ security_ecc::security_ecc(const ec_elliptic_curves p_elliptic_curve, const std: loggers::get_instance().log_to_hexa("security_ecc::security_ecc (1): _pub_key_x=", _pub_key_x.data(), _pub_key_x.size()); loggers::get_instance().log_to_hexa("security_ecc::security_ecc (1): _pub_key_x=", _pub_key_x.data(), _pub_key_x.size()); loggers::get_instance().log_to_hexa("security_ecc::security_ecc (1): _pub_key_y=", _pub_key_y.data(), _pub_key_y.size()); loggers::get_instance().log_to_hexa("security_ecc::security_ecc (1): _pub_key_y=", _pub_key_y.data(), _pub_key_y.size()); loggers::get_instance().log_to_hexa("security_ecc::security_ecc (1): _pub_key_compressed=", _pub_key_compressed.data(), _pub_key_compressed.size()); loggers::get_instance().log_to_hexa("security_ecc::security_ecc (1): _pub_key_compressed=", _pub_key_compressed.data(), _pub_key_compressed.size()); loggers::get_instance().log("security_ecc::security_ecc (1): _pub_key_compressed_mode=", _pub_key_compressed_mode); loggers::get_instance().log("security_ecc::security_ecc (1): _pub_key_compressed_mode=%d", _pub_key_compressed_mode); } // End of constructor } // End of constructor security_ecc::security_ecc(const ec_elliptic_curves p_elliptic_curve, const std::vector<unsigned char>& p_public_key_x, const std::vector<unsigned char>& p_public_key_y): _elliptic_curve(p_elliptic_curve), _encryption_algotithm(encryption_algotithm::aes_128_ccm), _ec_key(nullptr), _ec_group(nullptr), _bn_ctx(nullptr), _pri_key(), _pub_key_x(p_public_key_x), _pub_key_y(p_public_key_y), _pub_key_compressed(), _pub_key_compressed_mode{ecc_compressed_mode::compressed_y_0}, _secret_key(), _enc_key_x(), _enc_key_y(), _sym_key(), _nonce(), _tag() { security_ecc::security_ecc(const ec_elliptic_curves p_elliptic_curve, const std::vector<unsigned char>& p_public_key_x, const std::vector<unsigned char>& p_public_key_y): _elliptic_curve(p_elliptic_curve), _encryption_algotithm(encryption_algotithm::aes_128_ccm), _ec_key(nullptr), _ec_group(nullptr), _bn_ctx(nullptr), _pri_key(), _pub_key_x(p_public_key_x), _pub_key_y(p_public_key_y), _pub_key_compressed(), _pub_key_compressed_mode{ecc_compressed_mode::compressed_y_0}, _secret_key(), _enc_key_x(), _enc_key_y(), _sym_key(), _nonce(), _tag() { Loading Loading @@ -228,7 +228,7 @@ security_ecc::security_ecc(const ec_elliptic_curves p_elliptic_curve, const std: loggers::get_instance().log_to_hexa("security_ecc::security_ecc (3): _pub_key_x=", _pub_key_x.data(), _pub_key_x.size()); loggers::get_instance().log_to_hexa("security_ecc::security_ecc (3): _pub_key_x=", _pub_key_x.data(), _pub_key_x.size()); loggers::get_instance().log_to_hexa("security_ecc::security_ecc (3): _pub_key_y=", _pub_key_y.data(), _pub_key_y.size()); loggers::get_instance().log_to_hexa("security_ecc::security_ecc (3): _pub_key_y=", _pub_key_y.data(), _pub_key_y.size()); loggers::get_instance().log_to_hexa("security_ecc::security_ecc (3): _pub_key_compressed=", _pub_key_compressed.data(), _pub_key_compressed.size()); loggers::get_instance().log_to_hexa("security_ecc::security_ecc (3): _pub_key_compressed=", _pub_key_compressed.data(), _pub_key_compressed.size()); loggers::get_instance().log("security_ecc::security_ecc (3): _pub_key_compressed_mode=", _pub_key_compressed_mode); loggers::get_instance().log("security_ecc::security_ecc (3): _pub_key_compressed_mode=%d", _pub_key_compressed_mode); } // End of constructor } // End of constructor security_ecc::~security_ecc() { security_ecc::~security_ecc() { Loading Loading @@ -274,8 +274,11 @@ int security_ecc::generate() { loggers::get_instance().error("security_ecc::generate: Failed to get coordinates"); loggers::get_instance().error("security_ecc::generate: Failed to get coordinates"); return -1; return -1; } } const BIGNUM* p = ::EC_KEY_get0_private_key(_ec_key); const BIGNUM* p; do { p = ::EC_KEY_get0_private_key(_ec_key); } while (BN_num_bytes(p) == 0); _pri_key.resize(BN_num_bytes(p)); _pri_key.resize(BN_num_bytes(p)); ::BN_bn2bin(p, _pri_key.data()); ::BN_bn2bin(p, _pri_key.data()); _pub_key_x.resize(BN_num_bytes(&x)); _pub_key_x.resize(BN_num_bytes(&x)); Loading @@ -297,10 +300,11 @@ int security_ecc::generate() { _pub_key_compressed_mode = ((_pub_key_compressed[0] & 0x01) == 0x00) ? ecc_compressed_mode::compressed_y_0 : ecc_compressed_mode::compressed_y_1; _pub_key_compressed_mode = ((_pub_key_compressed[0] & 0x01) == 0x00) ? ecc_compressed_mode::compressed_y_0 : ecc_compressed_mode::compressed_y_1; _pub_key_compressed.erase(_pub_key_compressed.begin()); _pub_key_compressed.erase(_pub_key_compressed.begin()); } } loggers::get_instance().log_to_hexa("security_ecc::generate: _pri_key=", _pri_key.data(), _pri_key.size()); loggers::get_instance().log_to_hexa("security_ecc::generate: _pub_key_x=", _pub_key_x.data(), _pub_key_x.size()); loggers::get_instance().log_to_hexa("security_ecc::generate: _pub_key_x=", _pub_key_x.data(), _pub_key_x.size()); loggers::get_instance().log_to_hexa("security_ecc::generate: _pub_key_y=", _pub_key_y.data(), _pub_key_y.size()); loggers::get_instance().log_to_hexa("security_ecc::generate: _pub_key_y=", _pub_key_y.data(), _pub_key_y.size()); loggers::get_instance().log_to_hexa("security_ecc::generate: _pub_key_compressed=", _pub_key_compressed.data(), _pub_key_compressed.size()); loggers::get_instance().log_to_hexa("security_ecc::generate: _pub_key_compressed=", _pub_key_compressed.data(), _pub_key_compressed.size()); loggers::get_instance().log("security_ecc::generate: _pub_key_compressed_mode=", _pub_key_compressed_mode); loggers::get_instance().log("security_ecc::generate: _pub_key_compressed_mode=%d", _pub_key_compressed_mode); return 0; return 0; } } Loading Loading @@ -697,6 +701,7 @@ int security_ecc::decrypt(const std::vector<unsigned char>& p_tag, const std::ve int security_ecc::sign(const std::vector<unsigned char>& p_data, std::vector<unsigned char>& p_r_sig, std::vector<unsigned char>& p_s_sig) { int security_ecc::sign(const std::vector<unsigned char>& p_data, std::vector<unsigned char>& p_r_sig, std::vector<unsigned char>& p_s_sig) { loggers::get_instance().log(">>> security_ecc::sign"); loggers::get_instance().log(">>> security_ecc::sign"); loggers::get_instance().log_to_hexa(">>> security_ecc::sign: p_data: ", p_data.data(), p_data.size()); // Sanity checks // Sanity checks if(_pri_key.size() == 0) { // No private key if(_pri_key.size() == 0) { // No private key Loading @@ -720,10 +725,10 @@ int security_ecc::sign(const std::vector<unsigned char>& p_data, std::vector<uns p_r_sig.resize(BN_num_bytes(signature->r)); p_r_sig.resize(BN_num_bytes(signature->r)); ::BN_bn2bin(signature->r, p_r_sig.data()); ::BN_bn2bin(signature->r, p_r_sig.data()); //loggers::get_instance().log_to_hexa("security_ecc::sign: r=", p_r_sig.data(), p_r_sig.size()); loggers::get_instance().log_to_hexa("security_ecc::sign: r=", p_r_sig.data(), p_r_sig.size()); p_s_sig.resize(BN_num_bytes(signature->r)); p_s_sig.resize(BN_num_bytes(signature->r)); ::BN_bn2bin(signature->s, p_s_sig.data()); ::BN_bn2bin(signature->s, p_s_sig.data()); //loggers::get_instance().log_to_hexa("security_ecc::sign: s=", p_s_sig.data(), p_s_sig.size()); loggers::get_instance().log_to_hexa("security_ecc::sign: s=", p_s_sig.data(), p_s_sig.size()); ::ECDSA_SIG_free(signature); ::ECDSA_SIG_free(signature); Loading @@ -732,6 +737,7 @@ int security_ecc::sign(const std::vector<unsigned char>& p_data, std::vector<uns int security_ecc::sign_verif(const std::vector<unsigned char>& p_data, const std::vector<unsigned char>& p_signature) { int security_ecc::sign_verif(const std::vector<unsigned char>& p_data, const std::vector<unsigned char>& p_signature) { loggers::get_instance().log(">>> security_ecc::sign_verif"); loggers::get_instance().log(">>> security_ecc::sign_verif"); loggers::get_instance().log_to_hexa(">>> security_ecc::sign_verify: p_data: ", p_data.data(), p_data.size()); // Sanity checks // Sanity checks if (p_data.size() == 0) { if (p_data.size() == 0) { Loading @@ -743,7 +749,9 @@ int security_ecc::sign_verif(const std::vector<unsigned char>& p_data, const std ::BN_init(&r); ::BN_init(&r); ::BN_init(&s); ::BN_init(&s); ::BN_bin2bn(p_signature.data(), p_signature.size() / 2, &r); ::BN_bin2bn(p_signature.data(), p_signature.size() / 2, &r); loggers::get_instance().log_to_hexa("security_ecc::sign_verify: r=", p_signature.data(), p_signature.size() / 2); ::BN_bin2bn(p_signature.data() + p_signature.size() / 2, p_signature.size() / 2, &s); ::BN_bin2bn(p_signature.data() + p_signature.size() / 2, p_signature.size() / 2, &s); loggers::get_instance().log_to_hexa("security_ecc::sign_verify: r=", p_signature.data() + p_signature.size() / 2, p_signature.size() / 2); ECDSA_SIG *signature = ECDSA_SIG_new(); ECDSA_SIG *signature = ECDSA_SIG_new(); signature->r = &r; signature->r = &r; signature->s = &s; signature->s = &s; Loading