diff -U2 -r /var/lib/copr-rpmbuild/results/i2pd-git/upstream-unpacked/Source0/i2pd-openssl/libi2pd/IdentMetrics.cpp /var/lib/copr-rpmbuild/results/i2pd-git/srpm-unpacked/i2pd-openssl.tar.gz-extract/i2pd-openssl/libi2pd/IdentMetrics.cpp --- /var/lib/copr-rpmbuild/results/i2pd-git/upstream-unpacked/Source0/i2pd-openssl/libi2pd/IdentMetrics.cpp 2026-05-27 12:57:37.000000000 +0000 +++ /var/lib/copr-rpmbuild/results/i2pd-git/srpm-unpacked/i2pd-openssl.tar.gz-extract/i2pd-openssl/libi2pd/IdentMetrics.cpp 2026-05-27 12:25:28.000000000 +0000 @@ -47,17 +47,4 @@ { RAND_bytes (m_PeerOrderingKey, 16); -#if OPENSSL_SIPHASH - EVP_PKEY * sipKey = EVP_PKEY_new_raw_private_key (EVP_PKEY_SIPHASH, nullptr, m_PeerOrderingKey, 16); - m_MDCtx = EVP_MD_CTX_create (); - EVP_DigestSignInit (m_MDCtx, nullptr, nullptr, nullptr, sipKey); - EVP_PKEY_free (sipKey); -#endif - } - - PeerOrdering::~PeerOrdering () - { -#if OPENSSL_SIPHASH - if (m_MDCtx) EVP_MD_CTX_destroy (m_MDCtx); -#endif } @@ -66,8 +53,11 @@ uint8_t hash[16]; #if OPENSSL_SIPHASH - EVP_DigestSignInit (m_MDCtx, nullptr, nullptr, nullptr, nullptr); - EVP_DigestSignUpdate (m_MDCtx, routerIdent, 32); + EVP_PKEY * sipKey = EVP_PKEY_new_raw_private_key (EVP_PKEY_SIPHASH, nullptr, m_PeerOrderingKey, 16); + EVP_MD_CTX * ctx = EVP_MD_CTX_create (); + EVP_DigestSignInit (ctx, nullptr, nullptr, nullptr, sipKey); size_t l = 16; - EVP_DigestSignFinal (m_MDCtx, hash, &l); + EVP_DigestSign (ctx, hash, &l, routerIdent, 32); + EVP_MD_CTX_destroy (ctx); + EVP_PKEY_free (sipKey); #else i2p::crypto::Siphash<16> (hash, routerIdent, 32, m_PeerOrderingKey); diff -U2 -r /var/lib/copr-rpmbuild/results/i2pd-git/upstream-unpacked/Source0/i2pd-openssl/libi2pd/IdentMetrics.h /var/lib/copr-rpmbuild/results/i2pd-git/srpm-unpacked/i2pd-openssl.tar.gz-extract/i2pd-openssl/libi2pd/IdentMetrics.h --- /var/lib/copr-rpmbuild/results/i2pd-git/upstream-unpacked/Source0/i2pd-openssl/libi2pd/IdentMetrics.h 2026-05-27 12:57:37.000000000 +0000 +++ /var/lib/copr-rpmbuild/results/i2pd-git/srpm-unpacked/i2pd-openssl.tar.gz-extract/i2pd-openssl/libi2pd/IdentMetrics.h 2026-05-27 12:25:28.000000000 +0000 @@ -45,6 +45,4 @@ PeerOrdering (); - ~PeerOrdering (); - int GetPeerOrderingGroup (const IdentHash& routerIdent); void CleanUp (uint64_t ts); @@ -58,7 +56,4 @@ Tag<16> m_PeerOrderingKey; std::unordered_map > m_OrderingGroups; // router ident hash -> (group, last request time) -#if OPENSSL_SIPHASH - EVP_MD_CTX * m_MDCtx = nullptr; -#endif }; }