* [PR PATCH] vanitygen: remove
@ 2023-01-30 15:29 dkwo
2023-01-30 15:29 ` dkwo
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: dkwo @ 2023-01-30 15:29 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 457 bytes --]
There is a new pull request by dkwo against master on the void-packages repository
https://github.com/dkwo/void-packages O3van
https://github.com/void-linux/void-packages/pull/41968
vanitygen: remove
- I tested the changes in this PR: yes
- I built this PR locally for my native architecture, (x86_64-musl)
does not build with openssl3, no distfiles available
A patch file from https://github.com/void-linux/void-packages/pull/41968.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-O3van-41968.patch --]
[-- Type: text/x-diff, Size: 40843 bytes --]
From f68b82be09e1aa9c932a08682d2337eed1be9561 Mon Sep 17 00:00:00 2001
From: dkwo <nicolopiazzalunga@gmail.com>
Date: Thu, 26 Jan 2023 13:41:27 -0500
Subject: [PATCH] vanitygen: remove
---
srcpkgs/removed-packages/template | 3 +-
...4a646873c8439d3b5ee3a2278e727575521f.patch | 1171 -----------------
...3e6fff7da52c4aecbd898d9df2e60a56f134.patch | 98 --
srcpkgs/vanitygen/template | 21 -
4 files changed, 2 insertions(+), 1291 deletions(-)
delete mode 100644 srcpkgs/vanitygen/patches/4b814a646873c8439d3b5ee3a2278e727575521f.patch
delete mode 100644 srcpkgs/vanitygen/patches/5f163e6fff7da52c4aecbd898d9df2e60a56f134.patch
delete mode 100644 srcpkgs/vanitygen/template
diff --git a/srcpkgs/removed-packages/template b/srcpkgs/removed-packages/template
index 8528ac460a0b..ef781a412eb8 100644
--- a/srcpkgs/removed-packages/template
+++ b/srcpkgs/removed-packages/template
@@ -1,6 +1,6 @@
# Template file for 'removed-packages'
pkgname=removed-packages
-version=0.1.20230129
+version=0.1.20230130
revision=1
build_style=meta
short_desc="Uninstalls packages removed from repository"
@@ -511,6 +511,7 @@ replaces="
urlmatch-git<=20141116_2
uwsgi-python<=2.0.18_3
v8<=3.24.35.33_4
+ vanitygen<=1.53_2
vapoursynth-mvtools<=23_2
vkd3d<=1.3_1
volnoti<=0.1_1
diff --git a/srcpkgs/vanitygen/patches/4b814a646873c8439d3b5ee3a2278e727575521f.patch b/srcpkgs/vanitygen/patches/4b814a646873c8439d3b5ee3a2278e727575521f.patch
deleted file mode 100644
index 74bd54dbf0fb..000000000000
--- a/srcpkgs/vanitygen/patches/4b814a646873c8439d3b5ee3a2278e727575521f.patch
+++ /dev/null
@@ -1,1171 +0,0 @@
-From 4b814a646873c8439d3b5ee3a2278e727575521f Mon Sep 17 00:00:00 2001
-From: Antonio Spadaro <ilovelinux@users.noreply.github.com>
-Date: Sat, 2 Jun 2018 22:27:51 +0000
-Subject: [PATCH] Fix OpenSSL 1.1.0 incompatibilities (#56)
-
-* Fix openssl 1.1.0 incompatibilities
-
-* Replace BN_MASK2 with 0xffffffffL
-
-* Fix other openssl 1.1.0 incompatibilities
-
-* Fix retrocompatibility issue
-
-* Remove BN_bn2lebinpad due to incompatibility
-
-* Fix other incompatibility errors
-
-* Fixed retrocompatibility (maybe). Thanks to @DesWurstes
-
-* Fix OpenSSL 1.1 and backwards compatibility
----
- keyconv.c | 18 ++--
- oclengine.c | 130 ++++++++++++++++++---------
- pattern.c | 252 ++++++++++++++++++++++++++--------------------------
- pattern.h | 8 +-
- util.c | 90 +++++++++----------
- vanitygen.c | 14 +--
- 6 files changed, 277 insertions(+), 235 deletions(-)
-
-diff --git a/keyconv.c b/keyconv.c
-index f7475e5..394c3a0 100644
---- a/keyconv.c
-+++ b/keyconv.c
-@@ -1160,7 +1160,7 @@ main(int argc, char **argv)
-
- if (key2_in) {
- BN_CTX *bnctx;
-- BIGNUM bntmp, bntmp2;
-+ BIGNUM *bntmp, *bntmp2;
- EC_KEY *pkey2;
-
- pkey2 = EC_KEY_new_by_curve_name(NID_secp256k1);
-@@ -1182,19 +1182,19 @@ main(int argc, char **argv)
- compressed = 1;
- }
-
-- BN_init(&bntmp);
-- BN_init(&bntmp2);
-+ bntmp = BN_new();
-+ bntmp2 = BN_new();
- bnctx = BN_CTX_new();
-- EC_GROUP_get_order(EC_KEY_get0_group(pkey), &bntmp2, NULL);
-- BN_mod_add(&bntmp,
-+ EC_GROUP_get_order(EC_KEY_get0_group(pkey), bntmp2, NULL);
-+ BN_mod_add(bntmp,
- EC_KEY_get0_private_key(pkey),
- EC_KEY_get0_private_key(pkey2),
-- &bntmp2,
-+ bntmp2,
- bnctx);
-- vg_set_privkey(&bntmp, pkey);
-+ vg_set_privkey(bntmp, pkey);
- EC_KEY_free(pkey2);
-- BN_clear_free(&bntmp);
-- BN_clear_free(&bntmp2);
-+ BN_clear_free(bntmp);
-+ BN_clear_free(bntmp2);
- BN_CTX_free(bnctx);
- }
-
-diff --git a/oclengine.c b/oclengine.c
-index 4085edd..6f65846 100644
---- a/oclengine.c
-+++ b/oclengine.c
-@@ -43,6 +43,34 @@
- #include "pattern.h"
- #include "util.h"
-
-+// Unfortunately we need this!
-+#if OPENSSL_VERSION_NUMBER >= 0x0010100000
-+#define PPNT_ARROW_X ppnt->X
-+#define PPNT_ARROW_Y ppnt->Y
-+#define PPNT_ARROW_Z ppnt->Z
-+#define PPS_ARROW_X pps->X
-+#define PPS_ARROW_Y pps->Y
-+#define PPS_ARROW_Z pps->Z
-+#define PPT_ARROW_X ppt->X
-+#define PPT_ARROW_Y ppt->Y
-+#define PPR_ARROW_X ppr->X
-+#define PPR_ARROW_Y ppr->Y
-+#define PPC_ARROW_X ppc->X
-+#define PPC_ARROW_Y ppc->Y
-+#else
-+#define PPNT_ARROW_X &ppnt->X
-+#define PPNT_ARROW_Y &ppnt->Y
-+#define PPNT_ARROW_Z &ppnt->Z
-+#define PPS_ARROW_X &pps->X
-+#define PPS_ARROW_Y &pps->Y
-+#define PPS_ARROW_Z &pps->Z
-+#define PPT_ARROW_X &ppt->X
-+#define PPT_ARROW_Y &ppt->Y
-+#define PPR_ARROW_X &ppr->X
-+#define PPR_ARROW_Y &ppr->Y
-+#define PPC_ARROW_X &ppc->X
-+#define PPC_ARROW_Y &ppc->Y
-+#endif
-
- #define MAX_SLOT 2
- #define MAX_ARG 6
-@@ -1307,14 +1335,21 @@ vg_ocl_kernel_wait(vg_ocl_context_t *vocp, int slot)
- static INLINE void
- vg_ocl_get_bignum_raw(BIGNUM *bn, const unsigned char *buf)
- {
-+#if OPENSSL_VERSION_NUMBER >= 0x0010100000
-+ BN_lebin2bn(buf, 32, bn);
-+#else
- bn_expand(bn, 256);
- memcpy(bn->d, buf, 32);
- bn->top = (32 / sizeof(BN_ULONG));
-+#endif
- }
-
- static INLINE void
- vg_ocl_put_bignum_raw(unsigned char *buf, const BIGNUM *bn)
- {
-+#if OPENSSL_VERSION_NUMBER >= 0x0010100000
-+ BN_bn2lebinpad(bn, buf, 32);
-+#else
- int bnlen = (bn->top * sizeof(BN_ULONG));
- if (bnlen >= 32) {
- memcpy(buf, bn->d, 32);
-@@ -1322,6 +1357,7 @@ vg_ocl_put_bignum_raw(unsigned char *buf, const BIGNUM *bn)
- memcpy(buf, bn->d, bnlen);
- memset(buf + bnlen, 0, 32 - bnlen);
- }
-+#endif
- }
-
- #define ACCESS_BUNDLE 1024
-@@ -1351,9 +1387,15 @@ vg_ocl_get_bignum_tpa(BIGNUM *bn, const unsigned char *buf, int cell)
-
- struct ec_point_st {
- const EC_METHOD *meth;
-+#if OPENSSL_VERSION_NUMBER >= 0x0010100000
-+ BIGNUM *X;
-+ BIGNUM *Y;
-+ BIGNUM *Z;
-+#else
- BIGNUM X;
- BIGNUM Y;
- BIGNUM Z;
-+#endif
- int Z_is_one;
- };
-
-@@ -1361,11 +1403,11 @@ static INLINE void
- vg_ocl_get_point(EC_POINT *ppnt, const unsigned char *buf)
- {
- static const unsigned char mont_one[] = { 0x01,0x00,0x00,0x03,0xd1 };
-- vg_ocl_get_bignum_raw(&ppnt->X, buf);
-- vg_ocl_get_bignum_raw(&ppnt->Y, buf + 32);
-+ vg_ocl_get_bignum_raw(PPNT_ARROW_X, buf);
-+ vg_ocl_get_bignum_raw(PPNT_ARROW_Y, buf + 32);
- if (!ppnt->Z_is_one) {
- ppnt->Z_is_one = 1;
-- BN_bin2bn(mont_one, sizeof(mont_one), &ppnt->Z);
-+ BN_bin2bn(mont_one, sizeof(mont_one), PPNT_ARROW_Z);
- }
- }
-
-@@ -1373,8 +1415,8 @@ static INLINE void
- vg_ocl_put_point(unsigned char *buf, const EC_POINT *ppnt)
- {
- assert(ppnt->Z_is_one);
-- vg_ocl_put_bignum_raw(buf, &ppnt->X);
-- vg_ocl_put_bignum_raw(buf + 32, &ppnt->Y);
-+ vg_ocl_put_bignum_raw(buf, PPNT_ARROW_X);
-+ vg_ocl_put_bignum_raw(buf + 32, PPNT_ARROW_Y);
- }
-
- static void
-@@ -1662,7 +1704,7 @@ vg_ocl_verify_temporary(vg_ocl_context_t *vocp, int slot, int z_inverted)
- unsigned char *ocl_points_in = NULL, *ocl_strides_in = NULL;
- const EC_GROUP *pgroup;
- EC_POINT *ppr = NULL, *ppc = NULL, *pps = NULL, *ppt = NULL;
-- BIGNUM bnz, bnez, bnm, *bnzc;
-+ BIGNUM *bnz, *bnez, *bnm, *bnzc;
- BN_CTX *bnctx = NULL;
- BN_MONT_CTX *bnmont;
- int ret = 0;
-@@ -1675,9 +1717,9 @@ vg_ocl_verify_temporary(vg_ocl_context_t *vocp, int slot, int z_inverted)
- 0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFC,0x2F
- };
-
-- BN_init(&bnz);
-- BN_init(&bnez);
-- BN_init(&bnm);
-+ bnz = BN_new();
-+ bnez = BN_new();
-+ bnm = BN_new();
-
- bnctx = BN_CTX_new();
- bnmont = BN_MONT_CTX_new();
-@@ -1692,13 +1734,13 @@ vg_ocl_verify_temporary(vg_ocl_context_t *vocp, int slot, int z_inverted)
- goto out;
- }
-
-- BN_bin2bn(raw_modulus, sizeof(raw_modulus), &bnm);
-- BN_MONT_CTX_set(bnmont, &bnm, bnctx);
-+ BN_bin2bn(raw_modulus, sizeof(raw_modulus), bnm);
-+ BN_MONT_CTX_set(bnmont, bnm, bnctx);
-
- if (z_inverted) {
-- bnzc = &bnez;
-+ bnzc = bnez;
- } else {
-- bnzc = &pps->Z;
-+ bnzc = PPS_ARROW_Z;
- }
-
- z_heap = (unsigned char *)
-@@ -1726,15 +1768,15 @@ vg_ocl_verify_temporary(vg_ocl_context_t *vocp, int slot, int z_inverted)
- EC_POINT_add(pgroup, pps, ppc, ppr, bnctx);
- assert(!pps->Z_is_one);
- vg_ocl_get_point_tpa(ppt, point_tmp, bx + x);
-- vg_ocl_get_bignum_tpa(&bnz, z_heap, bx + x);
-+ vg_ocl_get_bignum_tpa(bnz, z_heap, bx + x);
- if (z_inverted) {
-- BN_mod_inverse(&bnez, &pps->Z, &bnm, bnctx);
-- BN_to_montgomery(&bnez, &bnez, bnmont, bnctx);
-- BN_to_montgomery(&bnez, &bnez, bnmont, bnctx);
-+ BN_mod_inverse(bnez, PPS_ARROW_Z, bnm, bnctx);
-+ BN_to_montgomery(bnez, bnez, bnmont, bnctx);
-+ BN_to_montgomery(bnez, bnez, bnmont, bnctx);
- }
-- if (BN_cmp(&ppt->X, &pps->X) ||
-- BN_cmp(&ppt->Y, &pps->Y) ||
-- BN_cmp(&bnz, bnzc)) {
-+ if (BN_cmp(PPT_ARROW_X, PPS_ARROW_X) ||
-+ BN_cmp(PPT_ARROW_Y, PPS_ARROW_Y) ||
-+ BN_cmp(bnz, bnzc)) {
- if (!mismatches) {
- fprintf(stderr, "Base privkey: ");
- fdumpbn(stderr, EC_KEY_get0_private_key(
-@@ -1747,33 +1789,33 @@ vg_ocl_verify_temporary(vg_ocl_context_t *vocp, int slot, int z_inverted)
- if (!mm_r) {
- mm_r = 1;
- fprintf(stderr, "Row X : ");
-- fdumpbn(stderr, &ppr->X);
-+ fdumpbn(stderr, PPR_ARROW_X);
- fprintf(stderr, "Row Y : ");
-- fdumpbn(stderr, &ppr->Y);
-+ fdumpbn(stderr, PPS_ARROW_Y);
- }
-
- fprintf(stderr, "Column X: ");
-- fdumpbn(stderr, &ppc->X);
-+ fdumpbn(stderr, PPC_ARROW_X);
- fprintf(stderr, "Column Y: ");
-- fdumpbn(stderr, &ppc->Y);
-+ fdumpbn(stderr, PPC_ARROW_Y);
-
-- if (BN_cmp(&ppt->X, &pps->X)) {
-+ if (BN_cmp(PPT_ARROW_X, PPS_ARROW_X)) {
- fprintf(stderr, "Expect X: ");
-- fdumpbn(stderr, &pps->X);
-+ fdumpbn(stderr, PPS_ARROW_X);
- fprintf(stderr, "Device X: ");
-- fdumpbn(stderr, &ppt->X);
-+ fdumpbn(stderr, PPT_ARROW_X);
- }
-- if (BN_cmp(&ppt->Y, &pps->Y)) {
-+ if (BN_cmp(PPT_ARROW_Y, PPS_ARROW_Y)) {
- fprintf(stderr, "Expect Y: ");
-- fdumpbn(stderr, &pps->Y);
-+ fdumpbn(stderr, PPS_ARROW_Y);
- fprintf(stderr, "Device Y: ");
-- fdumpbn(stderr, &ppt->Y);
-+ fdumpbn(stderr, PPT_ARROW_Y);
- }
-- if (BN_cmp(&bnz, bnzc)) {
-+ if (BN_cmp(bnz, bnzc)) {
- fprintf(stderr, "Expect Z: ");
- fdumpbn(stderr, bnzc);
- fprintf(stderr, "Device Z: ");
-- fdumpbn(stderr, &bnz);
-+ fdumpbn(stderr, bnz);
- }
- }
- }
-@@ -1798,9 +1840,9 @@ vg_ocl_verify_temporary(vg_ocl_context_t *vocp, int slot, int z_inverted)
- EC_POINT_free(pps);
- if (ppt)
- EC_POINT_free(ppt);
-- BN_clear_free(&bnz);
-- BN_clear_free(&bnez);
-- BN_clear_free(&bnm);
-+ BN_clear_free(bnz);
-+ BN_clear_free(bnez);
-+ BN_clear_free(bnm);
- if (bnmont)
- BN_MONT_CTX_free(bnmont);
- if (bnctx)
-@@ -1971,13 +2013,13 @@ vg_opencl_loop(vg_exec_context_t *arg)
- if (!pbatchinc || !poffset || !pseek)
- goto enomem;
-
-- BN_set_word(&vxcp->vxc_bntmp, ncols);
-- EC_POINT_mul(pgroup, pbatchinc, &vxcp->vxc_bntmp, NULL, NULL,
-+ BN_set_word(vxcp->vxc_bntmp, ncols);
-+ EC_POINT_mul(pgroup, pbatchinc, vxcp->vxc_bntmp, NULL, NULL,
- vxcp->vxc_bnctx);
- EC_POINT_make_affine(pgroup, pbatchinc, vxcp->vxc_bnctx);
-
-- BN_set_word(&vxcp->vxc_bntmp, round);
-- EC_POINT_mul(pgroup, poffset, &vxcp->vxc_bntmp, NULL, NULL,
-+ BN_set_word(vxcp->vxc_bntmp, round);
-+ EC_POINT_mul(pgroup, poffset, vxcp->vxc_bntmp, NULL, NULL,
- vxcp->vxc_bnctx);
- EC_POINT_make_affine(pgroup, poffset, vxcp->vxc_bnctx);
-
-@@ -2046,12 +2088,12 @@ vg_opencl_loop(vg_exec_context_t *arg)
- }
-
- /* Determine rekey interval */
-- EC_GROUP_get_order(pgroup, &vxcp->vxc_bntmp, vxcp->vxc_bnctx);
-- BN_sub(&vxcp->vxc_bntmp2,
-- &vxcp->vxc_bntmp,
-+ EC_GROUP_get_order(pgroup, vxcp->vxc_bntmp, vxcp->vxc_bnctx);
-+ BN_sub(vxcp->vxc_bntmp2,
-+ vxcp->vxc_bntmp,
- EC_KEY_get0_private_key(pkey));
-- rekey_at = BN_get_word(&vxcp->vxc_bntmp2);
-- if ((rekey_at == BN_MASK2) || (rekey_at > rekey_max))
-+ rekey_at = BN_get_word(vxcp->vxc_bntmp2);
-+ if ((rekey_at == 0xffffffffL) || (rekey_at > rekey_max))
- rekey_at = rekey_max;
- assert(rekey_at > 0);
-
-diff --git a/pattern.c b/pattern.c
-index b84334e..5673a7e 100644
---- a/pattern.c
-+++ b/pattern.c
-@@ -151,12 +151,12 @@ vg_exec_context_init(vg_context_t *vcp, vg_exec_context_t *vxcp)
-
- vxcp->vxc_vc = vcp;
-
-- BN_init(&vxcp->vxc_bntarg);
-- BN_init(&vxcp->vxc_bnbase);
-- BN_init(&vxcp->vxc_bntmp);
-- BN_init(&vxcp->vxc_bntmp2);
-+ vxcp->vxc_bntarg = BN_new();
-+ vxcp->vxc_bnbase = BN_new();
-+ vxcp->vxc_bntmp = BN_new();
-+ vxcp->vxc_bntmp2 = BN_new();
-
-- BN_set_word(&vxcp->vxc_bnbase, 58);
-+ BN_set_word(vxcp->vxc_bnbase, 58);
-
- vxcp->vxc_bnctx = BN_CTX_new();
- assert(vxcp->vxc_bnctx);
-@@ -196,10 +196,10 @@ vg_exec_context_del(vg_exec_context_t *vxcp)
- if (tp->vxc_stop)
- pthread_cond_signal(&vg_thread_upcond);
-
-- BN_clear_free(&vxcp->vxc_bntarg);
-- BN_clear_free(&vxcp->vxc_bnbase);
-- BN_clear_free(&vxcp->vxc_bntmp);
-- BN_clear_free(&vxcp->vxc_bntmp2);
-+ BN_clear_free(vxcp->vxc_bntarg);
-+ BN_clear_free(vxcp->vxc_bnbase);
-+ BN_clear_free(vxcp->vxc_bntmp);
-+ BN_clear_free(vxcp->vxc_bntmp2);
- BN_CTX_free(vxcp->vxc_bnctx);
- vxcp->vxc_bnctx = NULL;
- pthread_mutex_unlock(&vg_thread_lock);
-@@ -225,12 +225,12 @@ void
- vg_exec_context_consolidate_key(vg_exec_context_t *vxcp)
- {
- if (vxcp->vxc_delta) {
-- BN_clear(&vxcp->vxc_bntmp);
-- BN_set_word(&vxcp->vxc_bntmp, vxcp->vxc_delta);
-- BN_add(&vxcp->vxc_bntmp2,
-+ BN_clear(vxcp->vxc_bntmp);
-+ BN_set_word(vxcp->vxc_bntmp, vxcp->vxc_delta);
-+ BN_add(vxcp->vxc_bntmp2,
- EC_KEY_get0_private_key(vxcp->vxc_key),
-- &vxcp->vxc_bntmp);
-- vg_set_privkey(&vxcp->vxc_bntmp2, vxcp->vxc_key);
-+ vxcp->vxc_bntmp);
-+ vg_set_privkey(vxcp->vxc_bntmp2, vxcp->vxc_key);
- vxcp->vxc_delta = 0;
- }
- }
-@@ -751,20 +751,20 @@ get_prefix_ranges(int addrtype, const char *pfx, BIGNUM **result,
- int b58pow, b58ceil, b58top = 0;
- int ret = -1;
-
-- BIGNUM bntarg, bnceil, bnfloor;
-- BIGNUM bnbase;
-+ BIGNUM *bntarg, *bnceil, *bnfloor;
-+ BIGNUM *bnbase;
- BIGNUM *bnap, *bnbp, *bntp;
- BIGNUM *bnhigh = NULL, *bnlow = NULL, *bnhigh2 = NULL, *bnlow2 = NULL;
-- BIGNUM bntmp, bntmp2;
-+ BIGNUM *bntmp, *bntmp2;
-
-- BN_init(&bntarg);
-- BN_init(&bnceil);
-- BN_init(&bnfloor);
-- BN_init(&bnbase);
-- BN_init(&bntmp);
-- BN_init(&bntmp2);
-+ bntarg = BN_new();
-+ bnceil = BN_new();
-+ bnfloor = BN_new();
-+ bnbase = BN_new();
-+ bntmp = BN_new();
-+ bntmp2 = BN_new();
-
-- BN_set_word(&bnbase, 58);
-+ BN_set_word(bnbase, 58);
-
- p = strlen(pfx);
-
-@@ -791,20 +791,20 @@ get_prefix_ranges(int addrtype, const char *pfx, BIGNUM **result,
-
- /* First non-zero character */
- b58top = c;
-- BN_set_word(&bntarg, c);
-+ BN_set_word(bntarg, c);
-
- } else {
-- BN_set_word(&bntmp2, c);
-- BN_mul(&bntmp, &bntarg, &bnbase, bnctx);
-- BN_add(&bntarg, &bntmp, &bntmp2);
-+ BN_set_word(bntmp2, c);
-+ BN_mul(bntmp, bntarg, bnbase, bnctx);
-+ BN_add(bntarg, bntmp, bntmp2);
- }
- }
-
- /* Power-of-two ceiling and floor values based on leading 1s */
-- BN_clear(&bntmp);
-- BN_set_bit(&bntmp, 200 - (zero_prefix * 8));
-- BN_sub(&bnceil, &bntmp, BN_value_one());
-- BN_set_bit(&bnfloor, 192 - (zero_prefix * 8));
-+ BN_clear(bntmp);
-+ BN_set_bit(bntmp, 200 - (zero_prefix * 8));
-+ BN_sub(bnceil, bntmp, BN_value_one());
-+ BN_set_bit(bnfloor, 192 - (zero_prefix * 8));
-
- bnlow = BN_new();
- bnhigh = BN_new();
-@@ -815,13 +815,13 @@ get_prefix_ranges(int addrtype, const char *pfx, BIGNUM **result,
- * numeric boundaries of the prefix.
- */
-
-- BN_copy(&bntmp, &bnceil);
-- bnap = &bntmp;
-- bnbp = &bntmp2;
-+ BN_copy(bntmp, bnceil);
-+ bnap = bntmp;
-+ bnbp = bntmp2;
- b58pow = 0;
-- while (BN_cmp(bnap, &bnbase) > 0) {
-+ while (BN_cmp(bnap, bnbase) > 0) {
- b58pow++;
-- BN_div(bnbp, NULL, bnap, &bnbase, bnctx);
-+ BN_div(bnbp, NULL, bnap, bnbase, bnctx);
- bntp = bnap;
- bnap = bnbp;
- bnbp = bntp;
-@@ -837,11 +837,11 @@ get_prefix_ranges(int addrtype, const char *pfx, BIGNUM **result,
- /* goto out; */
- }
-
-- BN_set_word(&bntmp2, b58pow - (p - zero_prefix));
-- BN_exp(&bntmp, &bnbase, &bntmp2, bnctx);
-- BN_mul(bnlow, &bntmp, &bntarg, bnctx);
-- BN_sub(&bntmp2, &bntmp, BN_value_one());
-- BN_add(bnhigh, bnlow, &bntmp2);
-+ BN_set_word(bntmp2, b58pow - (p - zero_prefix));
-+ BN_exp(bntmp, bnbase, bntmp2, bnctx);
-+ BN_mul(bnlow, bntmp, bntarg, bnctx);
-+ BN_sub(bntmp2, bntmp, BN_value_one());
-+ BN_add(bnhigh, bnlow, bntmp2);
-
- if (b58top <= b58ceil) {
- /* Fill out the upper range too */
-@@ -849,16 +849,16 @@ get_prefix_ranges(int addrtype, const char *pfx, BIGNUM **result,
- bnlow2 = BN_new();
- bnhigh2 = BN_new();
-
-- BN_mul(bnlow2, bnlow, &bnbase, bnctx);
-- BN_mul(&bntmp2, bnhigh, &bnbase, bnctx);
-- BN_set_word(&bntmp, 57);
-- BN_add(bnhigh2, &bntmp2, &bntmp);
-+ BN_mul(bnlow2, bnlow, bnbase, bnctx);
-+ BN_mul(bntmp2, bnhigh, bnbase, bnctx);
-+ BN_set_word(bntmp, 57);
-+ BN_add(bnhigh2, bntmp2, bntmp);
-
- /*
- * Addresses above the ceiling will have one
- * fewer "1" prefix in front than we require.
- */
-- if (BN_cmp(&bnceil, bnlow2) < 0) {
-+ if (BN_cmp(bnceil, bnlow2) < 0) {
- /* High prefix is above the ceiling */
- check_upper = 0;
- BN_free(bnhigh2);
-@@ -866,15 +866,15 @@ get_prefix_ranges(int addrtype, const char *pfx, BIGNUM **result,
- BN_free(bnlow2);
- bnlow2 = NULL;
- }
-- else if (BN_cmp(&bnceil, bnhigh2) < 0)
-+ else if (BN_cmp(bnceil, bnhigh2) < 0)
- /* High prefix is partly above the ceiling */
-- BN_copy(bnhigh2, &bnceil);
-+ BN_copy(bnhigh2, bnceil);
-
- /*
- * Addresses below the floor will have another
- * "1" prefix in front instead of our target.
- */
-- if (BN_cmp(&bnfloor, bnhigh) >= 0) {
-+ if (BN_cmp(bnfloor, bnhigh) >= 0) {
- /* Low prefix is completely below the floor */
- assert(check_upper);
- check_upper = 0;
-@@ -885,35 +885,35 @@ get_prefix_ranges(int addrtype, const char *pfx, BIGNUM **result,
- bnlow = bnlow2;
- bnlow2 = NULL;
- }
-- else if (BN_cmp(&bnfloor, bnlow) > 0) {
-+ else if (BN_cmp(bnfloor, bnlow) > 0) {
- /* Low prefix is partly below the floor */
-- BN_copy(bnlow, &bnfloor);
-+ BN_copy(bnlow, bnfloor);
- }
- }
-
- } else {
-- BN_copy(bnhigh, &bnceil);
-+ BN_copy(bnhigh, bnceil);
- BN_clear(bnlow);
- }
-
- /* Limit the prefix to the address type */
-- BN_clear(&bntmp);
-- BN_set_word(&bntmp, addrtype);
-- BN_lshift(&bntmp2, &bntmp, 192);
-+ BN_clear(bntmp);
-+ BN_set_word(bntmp, addrtype);
-+ BN_lshift(bntmp2, bntmp, 192);
-
- if (check_upper) {
-- if (BN_cmp(&bntmp2, bnhigh2) > 0) {
-+ if (BN_cmp(bntmp2, bnhigh2) > 0) {
- check_upper = 0;
- BN_free(bnhigh2);
- bnhigh2 = NULL;
- BN_free(bnlow2);
- bnlow2 = NULL;
- }
-- else if (BN_cmp(&bntmp2, bnlow2) > 0)
-- BN_copy(bnlow2, &bntmp2);
-+ else if (BN_cmp(bntmp2, bnlow2) > 0)
-+ BN_copy(bnlow2, bntmp2);
- }
-
-- if (BN_cmp(&bntmp2, bnhigh) > 0) {
-+ if (BN_cmp(bntmp2, bnhigh) > 0) {
- if (!check_upper)
- goto not_possible;
- check_upper = 0;
-@@ -924,26 +924,26 @@ get_prefix_ranges(int addrtype, const char *pfx, BIGNUM **result,
- bnlow = bnlow2;
- bnlow2 = NULL;
- }
-- else if (BN_cmp(&bntmp2, bnlow) > 0) {
-- BN_copy(bnlow, &bntmp2);
-+ else if (BN_cmp(bntmp2, bnlow) > 0) {
-+ BN_copy(bnlow, bntmp2);
- }
-
-- BN_set_word(&bntmp, addrtype + 1);
-- BN_lshift(&bntmp2, &bntmp, 192);
-+ BN_set_word(bntmp, addrtype + 1);
-+ BN_lshift(bntmp2, bntmp, 192);
-
- if (check_upper) {
-- if (BN_cmp(&bntmp2, bnlow2) < 0) {
-+ if (BN_cmp(bntmp2, bnlow2) < 0) {
- check_upper = 0;
- BN_free(bnhigh2);
- bnhigh2 = NULL;
- BN_free(bnlow2);
- bnlow2 = NULL;
- }
-- else if (BN_cmp(&bntmp2, bnhigh2) < 0)
-- BN_copy(bnlow2, &bntmp2);
-+ else if (BN_cmp(bntmp2, bnhigh2) < 0)
-+ BN_copy(bnlow2, bntmp2);
- }
-
-- if (BN_cmp(&bntmp2, bnlow) < 0) {
-+ if (BN_cmp(bntmp2, bnlow) < 0) {
- if (!check_upper)
- goto not_possible;
- check_upper = 0;
-@@ -954,8 +954,8 @@ get_prefix_ranges(int addrtype, const char *pfx, BIGNUM **result,
- bnlow = bnlow2;
- bnlow2 = NULL;
- }
-- else if (BN_cmp(&bntmp2, bnhigh) < 0) {
-- BN_copy(bnhigh, &bntmp2);
-+ else if (BN_cmp(bntmp2, bnhigh) < 0) {
-+ BN_copy(bnhigh, bntmp2);
- }
-
- /* Address ranges are complete */
-@@ -976,12 +976,12 @@ get_prefix_ranges(int addrtype, const char *pfx, BIGNUM **result,
- }
-
- out:
-- BN_clear_free(&bntarg);
-- BN_clear_free(&bnceil);
-- BN_clear_free(&bnfloor);
-- BN_clear_free(&bnbase);
-- BN_clear_free(&bntmp);
-- BN_clear_free(&bntmp2);
-+ BN_clear_free(bntarg);
-+ BN_clear_free(bnceil);
-+ BN_clear_free(bnfloor);
-+ BN_clear_free(bnbase);
-+ BN_clear_free(bntmp);
-+ BN_clear_free(bntmp2);
- if (bnhigh)
- BN_free(bnhigh);
- if (bnlow)
-@@ -1266,7 +1266,7 @@ prefix_case_iter_next(prefix_case_iter_t *cip)
- typedef struct _vg_prefix_context_s {
- vg_context_t base;
- avl_root_t vcp_avlroot;
-- BIGNUM vcp_difficulty;
-+ BIGNUM *vcp_difficulty;
- int vcp_caseinsensitive;
- } vg_prefix_context_t;
-
-@@ -1294,7 +1294,7 @@ vg_prefix_context_clear_all_patterns(vg_context_t *vcp)
- vcpp->base.vc_npatterns = 0;
- vcpp->base.vc_npatterns_start = 0;
- vcpp->base.vc_found = 0;
-- BN_clear(&vcpp->vcp_difficulty);
-+ BN_clear(vcpp->vcp_difficulty);
- }
-
- static void
-@@ -1302,7 +1302,7 @@ vg_prefix_context_free(vg_context_t *vcp)
- {
- vg_prefix_context_t *vcpp = (vg_prefix_context_t *) vcp;
- vg_prefix_context_clear_all_patterns(vcp);
-- BN_clear_free(&vcpp->vcp_difficulty);
-+ BN_clear_free(vcpp->vcp_difficulty);
- free(vcpp);
- }
-
-@@ -1314,7 +1314,7 @@ vg_prefix_context_next_difficulty(vg_prefix_context_t *vcpp,
-
- BN_clear(bntmp);
- BN_set_bit(bntmp, 192);
-- BN_div(bntmp2, NULL, bntmp, &vcpp->vcp_difficulty, bnctx);
-+ BN_div(bntmp2, NULL, bntmp, vcpp->vcp_difficulty, bnctx);
-
- dbuf = BN_bn2dec(bntmp2);
- if (vcpp->base.vc_verbose > 0) {
-@@ -1337,7 +1337,7 @@ vg_prefix_context_add_patterns(vg_context_t *vcp,
- prefix_case_iter_t caseiter;
- vg_prefix_t *vp, *vp2;
- BN_CTX *bnctx;
-- BIGNUM bntmp, bntmp2, bntmp3;
-+ BIGNUM *bntmp, *bntmp2, *bntmp3;
- BIGNUM *ranges[4];
- int ret = 0;
- int i, impossible = 0;
-@@ -1346,9 +1346,9 @@ vg_prefix_context_add_patterns(vg_context_t *vcp,
- char *dbuf;
-
- bnctx = BN_CTX_new();
-- BN_init(&bntmp);
-- BN_init(&bntmp2);
-- BN_init(&bntmp3);
-+ bntmp = BN_new();
-+ bntmp2 = BN_new();
-+ bntmp3 = BN_new();
-
- npfx = 0;
- for (i = 0; i < npatterns; i++) {
-@@ -1426,16 +1426,16 @@ vg_prefix_context_add_patterns(vg_context_t *vcp,
- npfx++;
-
- /* Determine the probability of finding a match */
-- vg_prefix_range_sum(vp, &bntmp, &bntmp2);
-- BN_add(&bntmp2, &vcpp->vcp_difficulty, &bntmp);
-- BN_copy(&vcpp->vcp_difficulty, &bntmp2);
-+ vg_prefix_range_sum(vp, bntmp, bntmp2);
-+ BN_add(bntmp2, vcpp->vcp_difficulty, bntmp);
-+ BN_copy(vcpp->vcp_difficulty, bntmp2);
-
- if (vcp->vc_verbose > 1) {
-- BN_clear(&bntmp2);
-- BN_set_bit(&bntmp2, 192);
-- BN_div(&bntmp3, NULL, &bntmp2, &bntmp, bnctx);
-+ BN_clear(bntmp2);
-+ BN_set_bit(bntmp2, 192);
-+ BN_div(bntmp3, NULL, bntmp2, bntmp, bnctx);
-
-- dbuf = BN_bn2dec(&bntmp3);
-+ dbuf = BN_bn2dec(bntmp3);
- fprintf(stderr,
- "Prefix difficulty: %20s %s\n",
- dbuf, patterns[i]);
-@@ -1469,13 +1469,13 @@ vg_prefix_context_add_patterns(vg_context_t *vcp,
- }
-
- if (npfx)
-- vg_prefix_context_next_difficulty(vcpp, &bntmp, &bntmp2, bnctx);
-+ vg_prefix_context_next_difficulty(vcpp, bntmp, bntmp2, bnctx);
-
- ret = (npfx != 0);
-
-- BN_clear_free(&bntmp);
-- BN_clear_free(&bntmp2);
-- BN_clear_free(&bntmp3);
-+ BN_clear_free(bntmp);
-+ BN_clear_free(bntmp2);
-+ BN_clear_free(bntmp3);
- BN_CTX_free(bnctx);
- return ret;
- }
-@@ -1484,39 +1484,39 @@ double
- vg_prefix_get_difficulty(int addrtype, const char *pattern)
- {
- BN_CTX *bnctx;
-- BIGNUM result, bntmp;
-+ BIGNUM *result, *bntmp;
- BIGNUM *ranges[4];
- char *dbuf;
- int ret;
- double diffret = 0.0;
-
- bnctx = BN_CTX_new();
-- BN_init(&result);
-- BN_init(&bntmp);
-+ result = BN_new();
-+ bntmp = BN_new();
-
- ret = get_prefix_ranges(addrtype,
- pattern, ranges, bnctx);
-
- if (ret == 0) {
-- BN_sub(&bntmp, ranges[1], ranges[0]);
-- BN_add(&result, &result, &bntmp);
-+ BN_sub(bntmp, ranges[1], ranges[0]);
-+ BN_add(result, result, bntmp);
- if (ranges[2]) {
-- BN_sub(&bntmp, ranges[3], ranges[2]);
-- BN_add(&result, &result, &bntmp);
-+ BN_sub(bntmp, ranges[3], ranges[2]);
-+ BN_add(result, result, bntmp);
- }
- free_ranges(ranges);
-
-- BN_clear(&bntmp);
-- BN_set_bit(&bntmp, 192);
-- BN_div(&result, NULL, &bntmp, &result, bnctx);
-+ BN_clear(bntmp);
-+ BN_set_bit(bntmp, 192);
-+ BN_div(result, NULL, bntmp, result, bnctx);
-
-- dbuf = BN_bn2dec(&result);
-+ dbuf = BN_bn2dec(result);
- diffret = strtod(dbuf, NULL);
- OPENSSL_free(dbuf);
- }
-
-- BN_clear_free(&result);
-- BN_clear_free(&bntmp);
-+ BN_clear_free(result);
-+ BN_clear_free(bntmp);
- BN_CTX_free(bnctx);
- return diffret;
- }
-@@ -1535,10 +1535,10 @@ vg_prefix_test(vg_exec_context_t *vxcp)
- * check code.
- */
-
-- BN_bin2bn(vxcp->vxc_binres, 25, &vxcp->vxc_bntarg);
-+ BN_bin2bn(vxcp->vxc_binres, 25, vxcp->vxc_bntarg);
-
- research:
-- vp = vg_prefix_avl_search(&vcpp->vcp_avlroot, &vxcp->vxc_bntarg);
-+ vp = vg_prefix_avl_search(&vcpp->vcp_avlroot, vxcp->vxc_bntarg);
- if (vp) {
- if (vg_exec_context_upgrade_lock(vxcp))
- goto research;
-@@ -1558,20 +1558,20 @@ vg_prefix_test(vg_exec_context_t *vxcp)
- if (vcpp->base.vc_remove_on_match) {
- /* Subtract the range from the difficulty */
- vg_prefix_range_sum(vp,
-- &vxcp->vxc_bntarg,
-- &vxcp->vxc_bntmp);
-- BN_sub(&vxcp->vxc_bntmp,
-- &vcpp->vcp_difficulty,
-- &vxcp->vxc_bntarg);
-- BN_copy(&vcpp->vcp_difficulty, &vxcp->vxc_bntmp);
-+ vxcp->vxc_bntarg,
-+ vxcp->vxc_bntmp);
-+ BN_sub(vxcp->vxc_bntmp,
-+ vcpp->vcp_difficulty,
-+ vxcp->vxc_bntarg);
-+ BN_copy(vcpp->vcp_difficulty, vxcp->vxc_bntmp);
-
- vg_prefix_delete(&vcpp->vcp_avlroot,vp);
- vcpp->base.vc_npatterns--;
-
- if (!avl_root_empty(&vcpp->vcp_avlroot))
- vg_prefix_context_next_difficulty(
-- vcpp, &vxcp->vxc_bntmp,
-- &vxcp->vxc_bntmp2,
-+ vcpp, vxcp->vxc_bntmp,
-+ vxcp->vxc_bntmp2,
- vxcp->vxc_bnctx);
- vcpp->base.vc_pattern_generation++;
- }
-@@ -1652,7 +1652,7 @@ vg_prefix_context_new(int addrtype, int privtype, int caseinsensitive)
- vcpp->base.vc_test = vg_prefix_test;
- vcpp->base.vc_hash160_sort = vg_prefix_hash160_sort;
- avl_root_init(&vcpp->vcp_avlroot);
-- BN_init(&vcpp->vcp_difficulty);
-+ vcpp->vcp_difficulty = BN_new();
- vcpp->vcp_caseinsensitive = caseinsensitive;
- }
- return &vcpp->base;
-@@ -1778,21 +1778,21 @@ vg_regex_test(vg_exec_context_t *vxcp)
- unsigned char hash1[32], hash2[32];
- int i, zpfx, p, d, nres, re_vec[9];
- char b58[40];
-- BIGNUM bnrem;
-+ BIGNUM *bnrem;
- BIGNUM *bn, *bndiv, *bnptmp;
- int res = 0;
-
- pcre *re;
-
-- BN_init(&bnrem);
-+ bnrem = BN_new();
-
- /* Hash the hash and write the four byte check code */
- SHA256(vxcp->vxc_binres, 21, hash1);
- SHA256(hash1, sizeof(hash1), hash2);
- memcpy(&vxcp->vxc_binres[21], hash2, 4);
-
-- bn = &vxcp->vxc_bntmp;
-- bndiv = &vxcp->vxc_bntmp2;
-+ bn = vxcp->vxc_bntmp;
-+ bndiv = vxcp->vxc_bntmp2;
-
- BN_bin2bn(vxcp->vxc_binres, 25, bn);
-
-@@ -1801,11 +1801,11 @@ vg_regex_test(vg_exec_context_t *vxcp)
- p = sizeof(b58) - 1;
- b58[p] = '\0';
- while (!BN_is_zero(bn)) {
-- BN_div(bndiv, &bnrem, bn, &vxcp->vxc_bnbase, vxcp->vxc_bnctx);
-+ BN_div(bndiv, bnrem, bn, vxcp->vxc_bnbase, vxcp->vxc_bnctx);
- bnptmp = bn;
- bn = bndiv;
- bndiv = bnptmp;
-- d = BN_get_word(&bnrem);
-+ d = BN_get_word(bnrem);
- b58[--p] = vg_b58_alphabet[d];
- }
- while (zpfx--) {
-@@ -1878,7 +1878,7 @@ vg_regex_test(vg_exec_context_t *vxcp)
- res = 1;
- }
- out:
-- BN_clear_free(&bnrem);
-+ BN_clear_free(bnrem);
- return res;
- }
-
-diff --git a/pattern.h b/pattern.h
-index 3ce2d1f..0b604ea 100644
---- a/pattern.h
-+++ b/pattern.h
-@@ -51,10 +51,10 @@ struct _vg_exec_context_s {
- EC_KEY *vxc_key;
- int vxc_delta;
- unsigned char vxc_binres[28];
-- BIGNUM vxc_bntarg;
-- BIGNUM vxc_bnbase;
-- BIGNUM vxc_bntmp;
-- BIGNUM vxc_bntmp2;
-+ BIGNUM *vxc_bntarg;
-+ BIGNUM *vxc_bnbase;
-+ BIGNUM *vxc_bntmp;
-+ BIGNUM *vxc_bntmp2;
-
- vg_exec_context_threadfunc_t vxc_threadfunc;
- pthread_t vxc_pthread;
-diff --git a/util.c b/util.c
-index 4f3cbb8..35cd592 100644
---- a/util.c
-+++ b/util.c
-@@ -110,19 +110,19 @@ vg_b58_encode_check(void *buf, size_t len, char *result)
-
- BN_CTX *bnctx;
- BIGNUM *bn, *bndiv, *bntmp;
-- BIGNUM bna, bnb, bnbase, bnrem;
-+ BIGNUM *bna, *bnb, *bnbase, *bnrem;
- unsigned char *binres;
- int brlen, zpfx;
-
- bnctx = BN_CTX_new();
-- BN_init(&bna);
-- BN_init(&bnb);
-- BN_init(&bnbase);
-- BN_init(&bnrem);
-- BN_set_word(&bnbase, 58);
-+ bna = BN_new();
-+ bnb = BN_new();
-+ bnbase = BN_new();
-+ bnrem = BN_new();
-+ BN_set_word(bnbase, 58);
-
-- bn = &bna;
-- bndiv = &bnb;
-+ bn = bna;
-+ bndiv = bnb;
-
- brlen = (2 * len) + 4;
- binres = (unsigned char*) malloc(brlen);
-@@ -154,11 +154,11 @@ vg_b58_encode_check(void *buf, size_t len, char *result)
-
- p = brlen;
- while (!BN_is_zero(bn)) {
-- BN_div(bndiv, &bnrem, bn, &bnbase, bnctx);
-+ BN_div(bndiv, bnrem, bn, bnbase, bnctx);
- bntmp = bn;
- bn = bndiv;
- bndiv = bntmp;
-- d = BN_get_word(&bnrem);
-+ d = BN_get_word(bnrem);
- binres[--p] = vg_b58_alphabet[d];
- }
-
-@@ -170,10 +170,10 @@ vg_b58_encode_check(void *buf, size_t len, char *result)
- result[brlen - p] = '\0';
-
- free(binres);
-- BN_clear_free(&bna);
-- BN_clear_free(&bnb);
-- BN_clear_free(&bnbase);
-- BN_clear_free(&bnrem);
-+ BN_clear_free(bna);
-+ BN_clear_free(bnb);
-+ BN_clear_free(bnbase);
-+ BN_clear_free(bnrem);
- BN_CTX_free(bnctx);
- }
-
-@@ -185,7 +185,7 @@ vg_b58_decode_check(const char *input, void *buf, size_t len)
- {
- int i, l, c;
- unsigned char *xbuf = NULL;
-- BIGNUM bn, bnw, bnbase;
-+ BIGNUM *bn, *bnw, *bnbase;
- BN_CTX *bnctx;
- unsigned char hash1[32], hash2[32];
- unsigned char groestlhash1[64];
-@@ -193,10 +193,10 @@ vg_b58_decode_check(const char *input, void *buf, size_t len)
- int zpfx;
- int res = 0;
-
-- BN_init(&bn);
-- BN_init(&bnw);
-- BN_init(&bnbase);
-- BN_set_word(&bnbase, 58);
-+ bn = BN_new();
-+ bnw = BN_new();
-+ bnbase = BN_new();
-+ BN_set_word(bnbase, 58);
- bnctx = BN_CTX_new();
-
- /* Build a bignum from the encoded value */
-@@ -207,10 +207,10 @@ vg_b58_decode_check(const char *input, void *buf, size_t len)
- c = vg_b58_reverse_map[(int)input[i]];
- if (c < 0)
- goto out;
-- BN_clear(&bnw);
-- BN_set_word(&bnw, c);
-- BN_mul(&bn, &bn, &bnbase, bnctx);
-- BN_add(&bn, &bn, &bnw);
-+ BN_clear(bnw);
-+ BN_set_word(bnw, c);
-+ BN_mul(bn, bn, bnbase, bnctx);
-+ BN_add(bn, bn, bnw);
- }
-
- /* Copy the bignum to a byte buffer */
-@@ -221,7 +221,7 @@ vg_b58_decode_check(const char *input, void *buf, size_t len)
- break;
- zpfx++;
- }
-- c = BN_num_bytes(&bn);
-+ c = BN_num_bytes(bn);
- l = zpfx + c;
- if (l < 5)
- goto out;
-@@ -231,7 +231,7 @@ vg_b58_decode_check(const char *input, void *buf, size_t len)
- if (zpfx)
- memset(xbuf, 0, zpfx);
- if (c)
-- BN_bn2bin(&bn, xbuf + zpfx);
-+ BN_bn2bin(bn, xbuf + zpfx);
-
- /* Check the hash code */
- l -= 4;
-@@ -270,9 +270,9 @@ vg_b58_decode_check(const char *input, void *buf, size_t len)
- out:
- if (xbuf)
- free(xbuf);
-- BN_clear_free(&bn);
-- BN_clear_free(&bnw);
-- BN_clear_free(&bnbase);
-+ BN_clear_free(bn);
-+ BN_clear_free(bnw);
-+ BN_clear_free(bnbase);
- BN_CTX_free(bnctx);
- return res;
- }
-@@ -420,7 +420,7 @@ vg_set_privkey(const BIGNUM *bnpriv, EC_KEY *pkey)
- int
- vg_decode_privkey(const char *b58encoded, EC_KEY *pkey, int *addrtype)
- {
-- BIGNUM bnpriv;
-+ BIGNUM *bnpriv;
- unsigned char ecpriv[48];
- int res, ret;
-
-@@ -430,10 +430,10 @@ vg_decode_privkey(const char *b58encoded, EC_KEY *pkey, int *addrtype)
-
- ret = res - 32;
-
-- BN_init(&bnpriv);
-- BN_bin2bn(ecpriv + 1, 32, &bnpriv);
-- res = vg_set_privkey(&bnpriv, pkey);
-- BN_clear_free(&bnpriv);
-+ bnpriv = BN_new();
-+ BN_bin2bn(ecpriv + 1, 32, bnpriv);
-+ res = vg_set_privkey(bnpriv, pkey);
-+ BN_clear_free(bnpriv);
- *addrtype = ecpriv[0];
- return ret;
- }
-@@ -632,15 +632,15 @@ vg_protect_crypt(int parameter_group,
- salt_len = 4;
- hmac_len = 8;
- hmac_keylen = 16;
-- ciphertext_len = ((plaintext_len + cipher->block_size - 1) /
-- cipher->block_size) * cipher->block_size;
-+ ciphertext_len = ((plaintext_len + EVP_CIPHER_block_size(cipher) - 1) /
-+ EVP_CIPHER_block_size(cipher)) * EVP_CIPHER_block_size(cipher);
- pkcs7_padding = 0;
- hmac_digest = EVP_sha256();
- } else {
- /* PKCS-compliant encoding */
- salt_len = 8;
-- ciphertext_len = ((plaintext_len + cipher->block_size) /
-- cipher->block_size) * cipher->block_size;
-+ ciphertext_len = ((plaintext_len + EVP_CIPHER_block_size(cipher)) /
-+ EVP_CIPHER_block_size(cipher)) * EVP_CIPHER_block_size(cipher);
- hmac_digest = NULL;
- }
-
-@@ -666,12 +666,12 @@ vg_protect_crypt(int parameter_group,
- salt, salt_len,
- params->iterations,
- pbkdf_digest,
-- cipher->key_len + cipher->iv_len + hmac_keylen,
-+ EVP_CIPHER_key_length(cipher) + EVP_CIPHER_iv_length(cipher) + hmac_keylen,
- keymaterial);
-
- if (!EVP_CipherInit(ctx, cipher,
- keymaterial,
-- keymaterial + cipher->key_len,
-+ keymaterial + EVP_CIPHER_key_length(cipher),
- enc)) {
- fprintf(stderr, "ERROR: could not configure cipher\n");
- goto out;
-@@ -707,7 +707,7 @@ vg_protect_crypt(int parameter_group,
- if (hmac_len) {
- hlen = sizeof(hmac);
- HMAC(hmac_digest,
-- keymaterial + cipher->key_len + cipher->iv_len,
-+ keymaterial + EVP_CIPHER_key_length(cipher) + EVP_CIPHER_iv_length(cipher),
- hmac_keylen,
- enc ? data_in : data_out, plaintext_len,
- hmac, &hlen);
-@@ -786,7 +786,7 @@ vg_protect_decode_privkey(EC_KEY *pkey, int *keytype,
- {
- unsigned char ecpriv[64];
- unsigned char ecenc[128];
-- BIGNUM bn;
-+ BIGNUM *bn;
- int restype;
- int res;
-
-@@ -810,10 +810,10 @@ vg_protect_decode_privkey(EC_KEY *pkey, int *keytype,
-
- res = 1;
- if (pkey) {
-- BN_init(&bn);
-- BN_bin2bn(ecpriv, 32, &bn);
-- res = vg_set_privkey(&bn, pkey);
-- BN_clear_free(&bn);
-+ bn = BN_new();
-+ BN_bin2bn(ecpriv, 32, bn);
-+ res = vg_set_privkey(bn, pkey);
-+ BN_clear_free(bn);
- OPENSSL_cleanse(ecpriv, sizeof(ecpriv));
- }
-
-diff --git a/vanitygen.c b/vanitygen.c
-index fb7925a..992e5d7 100644
---- a/vanitygen.c
-+++ b/vanitygen.c
-@@ -94,8 +94,8 @@ vg_thread_loop(void *arg)
- exit(1);
- }
-
-- BN_set_word(&vxcp->vxc_bntmp, ptarraysize);
-- EC_POINT_mul(pgroup, pbatchinc, &vxcp->vxc_bntmp, NULL, NULL,
-+ BN_set_word(vxcp->vxc_bntmp, ptarraysize);
-+ EC_POINT_mul(pgroup, pbatchinc, vxcp->vxc_bntmp, NULL, NULL,
- vxcp->vxc_bnctx);
- EC_POINT_make_affine(pgroup, pbatchinc, vxcp->vxc_bnctx);
-
-@@ -139,13 +139,13 @@ vg_thread_loop(void *arg)
- npoints = 0;
-
- /* Determine rekey interval */
-- EC_GROUP_get_order(pgroup, &vxcp->vxc_bntmp,
-+ EC_GROUP_get_order(pgroup, vxcp->vxc_bntmp,
- vxcp->vxc_bnctx);
-- BN_sub(&vxcp->vxc_bntmp2,
-- &vxcp->vxc_bntmp,
-+ BN_sub(vxcp->vxc_bntmp2,
-+ vxcp->vxc_bntmp,
- EC_KEY_get0_private_key(pkey));
-- rekey_at = BN_get_word(&vxcp->vxc_bntmp2);
-- if ((rekey_at == BN_MASK2) || (rekey_at > rekey_max))
-+ rekey_at = BN_get_word(vxcp->vxc_bntmp2);
-+ if ((rekey_at == 0xffffffffL) || (rekey_at > rekey_max))
- rekey_at = rekey_max;
- assert(rekey_at > 0);
-
diff --git a/srcpkgs/vanitygen/patches/5f163e6fff7da52c4aecbd898d9df2e60a56f134.patch b/srcpkgs/vanitygen/patches/5f163e6fff7da52c4aecbd898d9df2e60a56f134.patch
deleted file mode 100644
index 5ee30ae08cdf..000000000000
--- a/srcpkgs/vanitygen/patches/5f163e6fff7da52c4aecbd898d9df2e60a56f134.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 5f163e6fff7da52c4aecbd898d9df2e60a56f134 Mon Sep 17 00:00:00 2001
-From: DesWurstes <DesWurstes@users.noreply.github.com>
-Date: Sun, 3 Jun 2018 17:46:16 +0300
-Subject: [PATCH] Privkey prefix OpenSSL 1.1 compatibility (#116)
-
-Fixes #114
----
- oclengine.c | 18 +++++++++++++-----
- vanitygen.c | 12 ++++++++++--
- 2 files changed, 23 insertions(+), 7 deletions(-)
-
-diff --git a/oclengine.c b/oclengine.c
-index 6585fc6..c69bd4b 100644
---- a/oclengine.c
-+++ b/oclengine.c
-@@ -5,7 +5,7 @@
- * Vanitygen is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
-- * any later version.
-+ * any later version.
- *
- * Vanitygen is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-@@ -1058,7 +1058,7 @@ vg_ocl_kernel_arg_alloc(vg_ocl_context_t *vocp, int slot,
- karg,
- sizeof(clbuf),
- &clbuf);
--
-+
- if (ret) {
- fprintf(stderr,
- "clSetKernelArg(%d,%d): ", knum, karg);
-@@ -1090,7 +1090,7 @@ vg_ocl_copyout_arg(vg_ocl_context_t *vocp, int wslot, int arg,
- buffer,
- 0, NULL,
- NULL);
--
-+
- if (ret) {
- fprintf(stderr, "clEnqueueWriteBuffer(%d): ", arg);
- vg_ocl_error(vocp, ret, NULL);
-@@ -2079,7 +2079,15 @@ vg_opencl_loop(vg_exec_context_t *arg)
- npoints = 0;
- if (vcp->vc_privkey_prefix_length > 0) {
- BIGNUM *pkbn = BN_dup(EC_KEY_get0_private_key(pkey));
-- memcpy((char *)pkbn->d + 32 - vcp->vc_privkey_prefix_length, vcp->vc_privkey_prefix, vcp->vc_privkey_prefix_length);
-+ unsigned char pkey_arr[32];
-+ assert(BN_bn2bin(pkbn, pkey_arr) < 33);
-+ memcpy((char *) pkey_arr, vcp->vc_privkey_prefix, vcp->vc_privkey_prefix_length);
-+ for (int i = 0; i < vcp->vc_privkey_prefix_length / 2; i++) {
-+ int k = pkey_arr[i];
-+ pkey_arr[i] = pkey_arr[vcp->vc_privkey_prefix_length - 1 - i];
-+ pkey_arr[vcp->vc_privkey_prefix_length - 1 - i] = k;
-+ }
-+ BN_bin2bn(pkey_arr, 32, pkbn);
- EC_KEY_set_private_key(pkey, pkbn);
-
- EC_POINT *origin = EC_POINT_new(pgroup);
-@@ -2240,7 +2248,7 @@ vg_opencl_loop(vg_exec_context_t *arg)
- slot_busy = 1;
- slot = (slot + 1) % nslots;
-
-- } else {
-+ } else {
- if (slot_busy) {
- pthread_mutex_lock(&vocp->voc_lock);
- while (vocp->voc_ocl_slot != -1) {
-diff --git a/vanitygen.c b/vanitygen.c
-index 992e5d7..5e49df7 100644
---- a/vanitygen.c
-+++ b/vanitygen.c
-@@ -129,7 +129,15 @@ vg_thread_loop(void *arg)
- EC_KEY_generate_key(pkey);
- if (vcp->vc_privkey_prefix_length > 0) {
- BIGNUM *pkbn = BN_dup(EC_KEY_get0_private_key(pkey));
-- memcpy((char *)pkbn->d + 32 - vcp->vc_privkey_prefix_length, vcp->vc_privkey_prefix, vcp->vc_privkey_prefix_length);
-+ unsigned char pkey_arr[32];
-+ assert(BN_bn2bin(pkbn, pkey_arr) < 33);
-+ memcpy((char *) pkey_arr, vcp->vc_privkey_prefix, vcp->vc_privkey_prefix_length);
-+ for (int i = 0; i < vcp->vc_privkey_prefix_length / 2; i++) {
-+ int k = pkey_arr[i];
-+ pkey_arr[i] = pkey_arr[vcp->vc_privkey_prefix_length - 1 - i];
-+ pkey_arr[vcp->vc_privkey_prefix_length - 1 - i] = k;
-+ }
-+ BN_bin2bn(pkey_arr, 32, pkbn);
- EC_KEY_set_private_key(pkey, pkbn);
-
- EC_POINT *origin = EC_POINT_new(pgroup);
-@@ -1395,7 +1403,7 @@ main(int argc, char **argv)
- addrtype = 60;
- privtype = 128;
- break;
-- }
-+ }
- break;
-
- /*END ALTCOIN GENERATOR*/
diff --git a/srcpkgs/vanitygen/template b/srcpkgs/vanitygen/template
deleted file mode 100644
index 624ac859d5d2..000000000000
--- a/srcpkgs/vanitygen/template
+++ /dev/null
@@ -1,21 +0,0 @@
-# Template file for 'vanitygen'
-pkgname=vanitygen
-version=1.53
-revision=2
-makedepends="pcre-devel openssl-devel"
-short_desc="Bitcoin vanity address generator"
-maintainer="Orphaned <orphan@voidlinux.org>"
-license="AGPL-3.0-or-later"
-homepage="https://github.com/exploitagency/vanitygen-plus"
-changelog="https://raw.githubusercontent.com/exploitagency/vanitygen-plus/master/CHANGELOG"
-distfiles="https://github.com/exploitagency/vanitygen-plus/archive/PLUS${version}.tar.gz"
-checksum=976a9afe2a4470551a8b6b0da97101a3a2e6c54c5a26dc870ae755bb2d8c7041
-
-do_build() {
- make CC=$CC CFLAGS="$CFLAGS $LDFLAGS" ${makejobs}
-}
-do_install() {
- vbin vanitygen
- vbin keyconv
- vlicense LICENSE
-}
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: vanitygen: remove
2023-01-30 15:29 [PR PATCH] vanitygen: remove dkwo
@ 2023-01-30 15:29 ` dkwo
2023-01-30 16:24 ` liarimu
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: dkwo @ 2023-01-30 15:29 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 146 bytes --]
New comment by dkwo on void-packages repository
https://github.com/void-linux/void-packages/pull/41968#issuecomment-1408831577
Comment:
#37681
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: vanitygen: remove
2023-01-30 15:29 [PR PATCH] vanitygen: remove dkwo
2023-01-30 15:29 ` dkwo
@ 2023-01-30 16:24 ` liarimu
2023-01-30 17:09 ` [PR PATCH] [Updated] " dkwo
2023-02-05 10:46 ` [PR PATCH] [Merged]: " paper42
3 siblings, 0 replies; 5+ messages in thread
From: liarimu @ 2023-01-30 16:24 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 398 bytes --]
New comment by liarimu on void-packages repository
https://github.com/void-linux/void-packages/pull/41968#issuecomment-1408934819
Comment:
From `CONTRIBUTING.md`:
```markdown
* for package removals, use `<pkgname>: remove package` and include the removal reason in the commit body ([example](https://github.com/void-linux/void-packages/commit/4322f923bdf5d4e0eb36738d4f4717d72d0a0ca4)).
```
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PR PATCH] [Updated] vanitygen: remove
2023-01-30 15:29 [PR PATCH] vanitygen: remove dkwo
2023-01-30 15:29 ` dkwo
2023-01-30 16:24 ` liarimu
@ 2023-01-30 17:09 ` dkwo
2023-02-05 10:46 ` [PR PATCH] [Merged]: " paper42
3 siblings, 0 replies; 5+ messages in thread
From: dkwo @ 2023-01-30 17:09 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 462 bytes --]
There is an updated pull request by dkwo against master on the void-packages repository
https://github.com/dkwo/void-packages O3van
https://github.com/void-linux/void-packages/pull/41968
vanitygen: remove
- I tested the changes in this PR: yes
- I built this PR locally for my native architecture, (x86_64-musl)
does not build with openssl3, no distfiles available
A patch file from https://github.com/void-linux/void-packages/pull/41968.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-O3van-41968.patch --]
[-- Type: text/x-diff, Size: 40874 bytes --]
From 7543e7021645f3dca1084dbfe8cb04351f6ffddd Mon Sep 17 00:00:00 2001
From: dkwo <nicolopiazzalunga@gmail.com>
Date: Thu, 26 Jan 2023 13:41:27 -0500
Subject: [PATCH] vanitygen: remove package
no distfiles available
---
srcpkgs/removed-packages/template | 3 +-
...4a646873c8439d3b5ee3a2278e727575521f.patch | 1171 -----------------
...3e6fff7da52c4aecbd898d9df2e60a56f134.patch | 98 --
srcpkgs/vanitygen/template | 21 -
4 files changed, 2 insertions(+), 1291 deletions(-)
delete mode 100644 srcpkgs/vanitygen/patches/4b814a646873c8439d3b5ee3a2278e727575521f.patch
delete mode 100644 srcpkgs/vanitygen/patches/5f163e6fff7da52c4aecbd898d9df2e60a56f134.patch
delete mode 100644 srcpkgs/vanitygen/template
diff --git a/srcpkgs/removed-packages/template b/srcpkgs/removed-packages/template
index 8528ac460a0b..ef781a412eb8 100644
--- a/srcpkgs/removed-packages/template
+++ b/srcpkgs/removed-packages/template
@@ -1,6 +1,6 @@
# Template file for 'removed-packages'
pkgname=removed-packages
-version=0.1.20230129
+version=0.1.20230130
revision=1
build_style=meta
short_desc="Uninstalls packages removed from repository"
@@ -511,6 +511,7 @@ replaces="
urlmatch-git<=20141116_2
uwsgi-python<=2.0.18_3
v8<=3.24.35.33_4
+ vanitygen<=1.53_2
vapoursynth-mvtools<=23_2
vkd3d<=1.3_1
volnoti<=0.1_1
diff --git a/srcpkgs/vanitygen/patches/4b814a646873c8439d3b5ee3a2278e727575521f.patch b/srcpkgs/vanitygen/patches/4b814a646873c8439d3b5ee3a2278e727575521f.patch
deleted file mode 100644
index 74bd54dbf0fb..000000000000
--- a/srcpkgs/vanitygen/patches/4b814a646873c8439d3b5ee3a2278e727575521f.patch
+++ /dev/null
@@ -1,1171 +0,0 @@
-From 4b814a646873c8439d3b5ee3a2278e727575521f Mon Sep 17 00:00:00 2001
-From: Antonio Spadaro <ilovelinux@users.noreply.github.com>
-Date: Sat, 2 Jun 2018 22:27:51 +0000
-Subject: [PATCH] Fix OpenSSL 1.1.0 incompatibilities (#56)
-
-* Fix openssl 1.1.0 incompatibilities
-
-* Replace BN_MASK2 with 0xffffffffL
-
-* Fix other openssl 1.1.0 incompatibilities
-
-* Fix retrocompatibility issue
-
-* Remove BN_bn2lebinpad due to incompatibility
-
-* Fix other incompatibility errors
-
-* Fixed retrocompatibility (maybe). Thanks to @DesWurstes
-
-* Fix OpenSSL 1.1 and backwards compatibility
----
- keyconv.c | 18 ++--
- oclengine.c | 130 ++++++++++++++++++---------
- pattern.c | 252 ++++++++++++++++++++++++++--------------------------
- pattern.h | 8 +-
- util.c | 90 +++++++++----------
- vanitygen.c | 14 +--
- 6 files changed, 277 insertions(+), 235 deletions(-)
-
-diff --git a/keyconv.c b/keyconv.c
-index f7475e5..394c3a0 100644
---- a/keyconv.c
-+++ b/keyconv.c
-@@ -1160,7 +1160,7 @@ main(int argc, char **argv)
-
- if (key2_in) {
- BN_CTX *bnctx;
-- BIGNUM bntmp, bntmp2;
-+ BIGNUM *bntmp, *bntmp2;
- EC_KEY *pkey2;
-
- pkey2 = EC_KEY_new_by_curve_name(NID_secp256k1);
-@@ -1182,19 +1182,19 @@ main(int argc, char **argv)
- compressed = 1;
- }
-
-- BN_init(&bntmp);
-- BN_init(&bntmp2);
-+ bntmp = BN_new();
-+ bntmp2 = BN_new();
- bnctx = BN_CTX_new();
-- EC_GROUP_get_order(EC_KEY_get0_group(pkey), &bntmp2, NULL);
-- BN_mod_add(&bntmp,
-+ EC_GROUP_get_order(EC_KEY_get0_group(pkey), bntmp2, NULL);
-+ BN_mod_add(bntmp,
- EC_KEY_get0_private_key(pkey),
- EC_KEY_get0_private_key(pkey2),
-- &bntmp2,
-+ bntmp2,
- bnctx);
-- vg_set_privkey(&bntmp, pkey);
-+ vg_set_privkey(bntmp, pkey);
- EC_KEY_free(pkey2);
-- BN_clear_free(&bntmp);
-- BN_clear_free(&bntmp2);
-+ BN_clear_free(bntmp);
-+ BN_clear_free(bntmp2);
- BN_CTX_free(bnctx);
- }
-
-diff --git a/oclengine.c b/oclengine.c
-index 4085edd..6f65846 100644
---- a/oclengine.c
-+++ b/oclengine.c
-@@ -43,6 +43,34 @@
- #include "pattern.h"
- #include "util.h"
-
-+// Unfortunately we need this!
-+#if OPENSSL_VERSION_NUMBER >= 0x0010100000
-+#define PPNT_ARROW_X ppnt->X
-+#define PPNT_ARROW_Y ppnt->Y
-+#define PPNT_ARROW_Z ppnt->Z
-+#define PPS_ARROW_X pps->X
-+#define PPS_ARROW_Y pps->Y
-+#define PPS_ARROW_Z pps->Z
-+#define PPT_ARROW_X ppt->X
-+#define PPT_ARROW_Y ppt->Y
-+#define PPR_ARROW_X ppr->X
-+#define PPR_ARROW_Y ppr->Y
-+#define PPC_ARROW_X ppc->X
-+#define PPC_ARROW_Y ppc->Y
-+#else
-+#define PPNT_ARROW_X &ppnt->X
-+#define PPNT_ARROW_Y &ppnt->Y
-+#define PPNT_ARROW_Z &ppnt->Z
-+#define PPS_ARROW_X &pps->X
-+#define PPS_ARROW_Y &pps->Y
-+#define PPS_ARROW_Z &pps->Z
-+#define PPT_ARROW_X &ppt->X
-+#define PPT_ARROW_Y &ppt->Y
-+#define PPR_ARROW_X &ppr->X
-+#define PPR_ARROW_Y &ppr->Y
-+#define PPC_ARROW_X &ppc->X
-+#define PPC_ARROW_Y &ppc->Y
-+#endif
-
- #define MAX_SLOT 2
- #define MAX_ARG 6
-@@ -1307,14 +1335,21 @@ vg_ocl_kernel_wait(vg_ocl_context_t *vocp, int slot)
- static INLINE void
- vg_ocl_get_bignum_raw(BIGNUM *bn, const unsigned char *buf)
- {
-+#if OPENSSL_VERSION_NUMBER >= 0x0010100000
-+ BN_lebin2bn(buf, 32, bn);
-+#else
- bn_expand(bn, 256);
- memcpy(bn->d, buf, 32);
- bn->top = (32 / sizeof(BN_ULONG));
-+#endif
- }
-
- static INLINE void
- vg_ocl_put_bignum_raw(unsigned char *buf, const BIGNUM *bn)
- {
-+#if OPENSSL_VERSION_NUMBER >= 0x0010100000
-+ BN_bn2lebinpad(bn, buf, 32);
-+#else
- int bnlen = (bn->top * sizeof(BN_ULONG));
- if (bnlen >= 32) {
- memcpy(buf, bn->d, 32);
-@@ -1322,6 +1357,7 @@ vg_ocl_put_bignum_raw(unsigned char *buf, const BIGNUM *bn)
- memcpy(buf, bn->d, bnlen);
- memset(buf + bnlen, 0, 32 - bnlen);
- }
-+#endif
- }
-
- #define ACCESS_BUNDLE 1024
-@@ -1351,9 +1387,15 @@ vg_ocl_get_bignum_tpa(BIGNUM *bn, const unsigned char *buf, int cell)
-
- struct ec_point_st {
- const EC_METHOD *meth;
-+#if OPENSSL_VERSION_NUMBER >= 0x0010100000
-+ BIGNUM *X;
-+ BIGNUM *Y;
-+ BIGNUM *Z;
-+#else
- BIGNUM X;
- BIGNUM Y;
- BIGNUM Z;
-+#endif
- int Z_is_one;
- };
-
-@@ -1361,11 +1403,11 @@ static INLINE void
- vg_ocl_get_point(EC_POINT *ppnt, const unsigned char *buf)
- {
- static const unsigned char mont_one[] = { 0x01,0x00,0x00,0x03,0xd1 };
-- vg_ocl_get_bignum_raw(&ppnt->X, buf);
-- vg_ocl_get_bignum_raw(&ppnt->Y, buf + 32);
-+ vg_ocl_get_bignum_raw(PPNT_ARROW_X, buf);
-+ vg_ocl_get_bignum_raw(PPNT_ARROW_Y, buf + 32);
- if (!ppnt->Z_is_one) {
- ppnt->Z_is_one = 1;
-- BN_bin2bn(mont_one, sizeof(mont_one), &ppnt->Z);
-+ BN_bin2bn(mont_one, sizeof(mont_one), PPNT_ARROW_Z);
- }
- }
-
-@@ -1373,8 +1415,8 @@ static INLINE void
- vg_ocl_put_point(unsigned char *buf, const EC_POINT *ppnt)
- {
- assert(ppnt->Z_is_one);
-- vg_ocl_put_bignum_raw(buf, &ppnt->X);
-- vg_ocl_put_bignum_raw(buf + 32, &ppnt->Y);
-+ vg_ocl_put_bignum_raw(buf, PPNT_ARROW_X);
-+ vg_ocl_put_bignum_raw(buf + 32, PPNT_ARROW_Y);
- }
-
- static void
-@@ -1662,7 +1704,7 @@ vg_ocl_verify_temporary(vg_ocl_context_t *vocp, int slot, int z_inverted)
- unsigned char *ocl_points_in = NULL, *ocl_strides_in = NULL;
- const EC_GROUP *pgroup;
- EC_POINT *ppr = NULL, *ppc = NULL, *pps = NULL, *ppt = NULL;
-- BIGNUM bnz, bnez, bnm, *bnzc;
-+ BIGNUM *bnz, *bnez, *bnm, *bnzc;
- BN_CTX *bnctx = NULL;
- BN_MONT_CTX *bnmont;
- int ret = 0;
-@@ -1675,9 +1717,9 @@ vg_ocl_verify_temporary(vg_ocl_context_t *vocp, int slot, int z_inverted)
- 0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFC,0x2F
- };
-
-- BN_init(&bnz);
-- BN_init(&bnez);
-- BN_init(&bnm);
-+ bnz = BN_new();
-+ bnez = BN_new();
-+ bnm = BN_new();
-
- bnctx = BN_CTX_new();
- bnmont = BN_MONT_CTX_new();
-@@ -1692,13 +1734,13 @@ vg_ocl_verify_temporary(vg_ocl_context_t *vocp, int slot, int z_inverted)
- goto out;
- }
-
-- BN_bin2bn(raw_modulus, sizeof(raw_modulus), &bnm);
-- BN_MONT_CTX_set(bnmont, &bnm, bnctx);
-+ BN_bin2bn(raw_modulus, sizeof(raw_modulus), bnm);
-+ BN_MONT_CTX_set(bnmont, bnm, bnctx);
-
- if (z_inverted) {
-- bnzc = &bnez;
-+ bnzc = bnez;
- } else {
-- bnzc = &pps->Z;
-+ bnzc = PPS_ARROW_Z;
- }
-
- z_heap = (unsigned char *)
-@@ -1726,15 +1768,15 @@ vg_ocl_verify_temporary(vg_ocl_context_t *vocp, int slot, int z_inverted)
- EC_POINT_add(pgroup, pps, ppc, ppr, bnctx);
- assert(!pps->Z_is_one);
- vg_ocl_get_point_tpa(ppt, point_tmp, bx + x);
-- vg_ocl_get_bignum_tpa(&bnz, z_heap, bx + x);
-+ vg_ocl_get_bignum_tpa(bnz, z_heap, bx + x);
- if (z_inverted) {
-- BN_mod_inverse(&bnez, &pps->Z, &bnm, bnctx);
-- BN_to_montgomery(&bnez, &bnez, bnmont, bnctx);
-- BN_to_montgomery(&bnez, &bnez, bnmont, bnctx);
-+ BN_mod_inverse(bnez, PPS_ARROW_Z, bnm, bnctx);
-+ BN_to_montgomery(bnez, bnez, bnmont, bnctx);
-+ BN_to_montgomery(bnez, bnez, bnmont, bnctx);
- }
-- if (BN_cmp(&ppt->X, &pps->X) ||
-- BN_cmp(&ppt->Y, &pps->Y) ||
-- BN_cmp(&bnz, bnzc)) {
-+ if (BN_cmp(PPT_ARROW_X, PPS_ARROW_X) ||
-+ BN_cmp(PPT_ARROW_Y, PPS_ARROW_Y) ||
-+ BN_cmp(bnz, bnzc)) {
- if (!mismatches) {
- fprintf(stderr, "Base privkey: ");
- fdumpbn(stderr, EC_KEY_get0_private_key(
-@@ -1747,33 +1789,33 @@ vg_ocl_verify_temporary(vg_ocl_context_t *vocp, int slot, int z_inverted)
- if (!mm_r) {
- mm_r = 1;
- fprintf(stderr, "Row X : ");
-- fdumpbn(stderr, &ppr->X);
-+ fdumpbn(stderr, PPR_ARROW_X);
- fprintf(stderr, "Row Y : ");
-- fdumpbn(stderr, &ppr->Y);
-+ fdumpbn(stderr, PPS_ARROW_Y);
- }
-
- fprintf(stderr, "Column X: ");
-- fdumpbn(stderr, &ppc->X);
-+ fdumpbn(stderr, PPC_ARROW_X);
- fprintf(stderr, "Column Y: ");
-- fdumpbn(stderr, &ppc->Y);
-+ fdumpbn(stderr, PPC_ARROW_Y);
-
-- if (BN_cmp(&ppt->X, &pps->X)) {
-+ if (BN_cmp(PPT_ARROW_X, PPS_ARROW_X)) {
- fprintf(stderr, "Expect X: ");
-- fdumpbn(stderr, &pps->X);
-+ fdumpbn(stderr, PPS_ARROW_X);
- fprintf(stderr, "Device X: ");
-- fdumpbn(stderr, &ppt->X);
-+ fdumpbn(stderr, PPT_ARROW_X);
- }
-- if (BN_cmp(&ppt->Y, &pps->Y)) {
-+ if (BN_cmp(PPT_ARROW_Y, PPS_ARROW_Y)) {
- fprintf(stderr, "Expect Y: ");
-- fdumpbn(stderr, &pps->Y);
-+ fdumpbn(stderr, PPS_ARROW_Y);
- fprintf(stderr, "Device Y: ");
-- fdumpbn(stderr, &ppt->Y);
-+ fdumpbn(stderr, PPT_ARROW_Y);
- }
-- if (BN_cmp(&bnz, bnzc)) {
-+ if (BN_cmp(bnz, bnzc)) {
- fprintf(stderr, "Expect Z: ");
- fdumpbn(stderr, bnzc);
- fprintf(stderr, "Device Z: ");
-- fdumpbn(stderr, &bnz);
-+ fdumpbn(stderr, bnz);
- }
- }
- }
-@@ -1798,9 +1840,9 @@ vg_ocl_verify_temporary(vg_ocl_context_t *vocp, int slot, int z_inverted)
- EC_POINT_free(pps);
- if (ppt)
- EC_POINT_free(ppt);
-- BN_clear_free(&bnz);
-- BN_clear_free(&bnez);
-- BN_clear_free(&bnm);
-+ BN_clear_free(bnz);
-+ BN_clear_free(bnez);
-+ BN_clear_free(bnm);
- if (bnmont)
- BN_MONT_CTX_free(bnmont);
- if (bnctx)
-@@ -1971,13 +2013,13 @@ vg_opencl_loop(vg_exec_context_t *arg)
- if (!pbatchinc || !poffset || !pseek)
- goto enomem;
-
-- BN_set_word(&vxcp->vxc_bntmp, ncols);
-- EC_POINT_mul(pgroup, pbatchinc, &vxcp->vxc_bntmp, NULL, NULL,
-+ BN_set_word(vxcp->vxc_bntmp, ncols);
-+ EC_POINT_mul(pgroup, pbatchinc, vxcp->vxc_bntmp, NULL, NULL,
- vxcp->vxc_bnctx);
- EC_POINT_make_affine(pgroup, pbatchinc, vxcp->vxc_bnctx);
-
-- BN_set_word(&vxcp->vxc_bntmp, round);
-- EC_POINT_mul(pgroup, poffset, &vxcp->vxc_bntmp, NULL, NULL,
-+ BN_set_word(vxcp->vxc_bntmp, round);
-+ EC_POINT_mul(pgroup, poffset, vxcp->vxc_bntmp, NULL, NULL,
- vxcp->vxc_bnctx);
- EC_POINT_make_affine(pgroup, poffset, vxcp->vxc_bnctx);
-
-@@ -2046,12 +2088,12 @@ vg_opencl_loop(vg_exec_context_t *arg)
- }
-
- /* Determine rekey interval */
-- EC_GROUP_get_order(pgroup, &vxcp->vxc_bntmp, vxcp->vxc_bnctx);
-- BN_sub(&vxcp->vxc_bntmp2,
-- &vxcp->vxc_bntmp,
-+ EC_GROUP_get_order(pgroup, vxcp->vxc_bntmp, vxcp->vxc_bnctx);
-+ BN_sub(vxcp->vxc_bntmp2,
-+ vxcp->vxc_bntmp,
- EC_KEY_get0_private_key(pkey));
-- rekey_at = BN_get_word(&vxcp->vxc_bntmp2);
-- if ((rekey_at == BN_MASK2) || (rekey_at > rekey_max))
-+ rekey_at = BN_get_word(vxcp->vxc_bntmp2);
-+ if ((rekey_at == 0xffffffffL) || (rekey_at > rekey_max))
- rekey_at = rekey_max;
- assert(rekey_at > 0);
-
-diff --git a/pattern.c b/pattern.c
-index b84334e..5673a7e 100644
---- a/pattern.c
-+++ b/pattern.c
-@@ -151,12 +151,12 @@ vg_exec_context_init(vg_context_t *vcp, vg_exec_context_t *vxcp)
-
- vxcp->vxc_vc = vcp;
-
-- BN_init(&vxcp->vxc_bntarg);
-- BN_init(&vxcp->vxc_bnbase);
-- BN_init(&vxcp->vxc_bntmp);
-- BN_init(&vxcp->vxc_bntmp2);
-+ vxcp->vxc_bntarg = BN_new();
-+ vxcp->vxc_bnbase = BN_new();
-+ vxcp->vxc_bntmp = BN_new();
-+ vxcp->vxc_bntmp2 = BN_new();
-
-- BN_set_word(&vxcp->vxc_bnbase, 58);
-+ BN_set_word(vxcp->vxc_bnbase, 58);
-
- vxcp->vxc_bnctx = BN_CTX_new();
- assert(vxcp->vxc_bnctx);
-@@ -196,10 +196,10 @@ vg_exec_context_del(vg_exec_context_t *vxcp)
- if (tp->vxc_stop)
- pthread_cond_signal(&vg_thread_upcond);
-
-- BN_clear_free(&vxcp->vxc_bntarg);
-- BN_clear_free(&vxcp->vxc_bnbase);
-- BN_clear_free(&vxcp->vxc_bntmp);
-- BN_clear_free(&vxcp->vxc_bntmp2);
-+ BN_clear_free(vxcp->vxc_bntarg);
-+ BN_clear_free(vxcp->vxc_bnbase);
-+ BN_clear_free(vxcp->vxc_bntmp);
-+ BN_clear_free(vxcp->vxc_bntmp2);
- BN_CTX_free(vxcp->vxc_bnctx);
- vxcp->vxc_bnctx = NULL;
- pthread_mutex_unlock(&vg_thread_lock);
-@@ -225,12 +225,12 @@ void
- vg_exec_context_consolidate_key(vg_exec_context_t *vxcp)
- {
- if (vxcp->vxc_delta) {
-- BN_clear(&vxcp->vxc_bntmp);
-- BN_set_word(&vxcp->vxc_bntmp, vxcp->vxc_delta);
-- BN_add(&vxcp->vxc_bntmp2,
-+ BN_clear(vxcp->vxc_bntmp);
-+ BN_set_word(vxcp->vxc_bntmp, vxcp->vxc_delta);
-+ BN_add(vxcp->vxc_bntmp2,
- EC_KEY_get0_private_key(vxcp->vxc_key),
-- &vxcp->vxc_bntmp);
-- vg_set_privkey(&vxcp->vxc_bntmp2, vxcp->vxc_key);
-+ vxcp->vxc_bntmp);
-+ vg_set_privkey(vxcp->vxc_bntmp2, vxcp->vxc_key);
- vxcp->vxc_delta = 0;
- }
- }
-@@ -751,20 +751,20 @@ get_prefix_ranges(int addrtype, const char *pfx, BIGNUM **result,
- int b58pow, b58ceil, b58top = 0;
- int ret = -1;
-
-- BIGNUM bntarg, bnceil, bnfloor;
-- BIGNUM bnbase;
-+ BIGNUM *bntarg, *bnceil, *bnfloor;
-+ BIGNUM *bnbase;
- BIGNUM *bnap, *bnbp, *bntp;
- BIGNUM *bnhigh = NULL, *bnlow = NULL, *bnhigh2 = NULL, *bnlow2 = NULL;
-- BIGNUM bntmp, bntmp2;
-+ BIGNUM *bntmp, *bntmp2;
-
-- BN_init(&bntarg);
-- BN_init(&bnceil);
-- BN_init(&bnfloor);
-- BN_init(&bnbase);
-- BN_init(&bntmp);
-- BN_init(&bntmp2);
-+ bntarg = BN_new();
-+ bnceil = BN_new();
-+ bnfloor = BN_new();
-+ bnbase = BN_new();
-+ bntmp = BN_new();
-+ bntmp2 = BN_new();
-
-- BN_set_word(&bnbase, 58);
-+ BN_set_word(bnbase, 58);
-
- p = strlen(pfx);
-
-@@ -791,20 +791,20 @@ get_prefix_ranges(int addrtype, const char *pfx, BIGNUM **result,
-
- /* First non-zero character */
- b58top = c;
-- BN_set_word(&bntarg, c);
-+ BN_set_word(bntarg, c);
-
- } else {
-- BN_set_word(&bntmp2, c);
-- BN_mul(&bntmp, &bntarg, &bnbase, bnctx);
-- BN_add(&bntarg, &bntmp, &bntmp2);
-+ BN_set_word(bntmp2, c);
-+ BN_mul(bntmp, bntarg, bnbase, bnctx);
-+ BN_add(bntarg, bntmp, bntmp2);
- }
- }
-
- /* Power-of-two ceiling and floor values based on leading 1s */
-- BN_clear(&bntmp);
-- BN_set_bit(&bntmp, 200 - (zero_prefix * 8));
-- BN_sub(&bnceil, &bntmp, BN_value_one());
-- BN_set_bit(&bnfloor, 192 - (zero_prefix * 8));
-+ BN_clear(bntmp);
-+ BN_set_bit(bntmp, 200 - (zero_prefix * 8));
-+ BN_sub(bnceil, bntmp, BN_value_one());
-+ BN_set_bit(bnfloor, 192 - (zero_prefix * 8));
-
- bnlow = BN_new();
- bnhigh = BN_new();
-@@ -815,13 +815,13 @@ get_prefix_ranges(int addrtype, const char *pfx, BIGNUM **result,
- * numeric boundaries of the prefix.
- */
-
-- BN_copy(&bntmp, &bnceil);
-- bnap = &bntmp;
-- bnbp = &bntmp2;
-+ BN_copy(bntmp, bnceil);
-+ bnap = bntmp;
-+ bnbp = bntmp2;
- b58pow = 0;
-- while (BN_cmp(bnap, &bnbase) > 0) {
-+ while (BN_cmp(bnap, bnbase) > 0) {
- b58pow++;
-- BN_div(bnbp, NULL, bnap, &bnbase, bnctx);
-+ BN_div(bnbp, NULL, bnap, bnbase, bnctx);
- bntp = bnap;
- bnap = bnbp;
- bnbp = bntp;
-@@ -837,11 +837,11 @@ get_prefix_ranges(int addrtype, const char *pfx, BIGNUM **result,
- /* goto out; */
- }
-
-- BN_set_word(&bntmp2, b58pow - (p - zero_prefix));
-- BN_exp(&bntmp, &bnbase, &bntmp2, bnctx);
-- BN_mul(bnlow, &bntmp, &bntarg, bnctx);
-- BN_sub(&bntmp2, &bntmp, BN_value_one());
-- BN_add(bnhigh, bnlow, &bntmp2);
-+ BN_set_word(bntmp2, b58pow - (p - zero_prefix));
-+ BN_exp(bntmp, bnbase, bntmp2, bnctx);
-+ BN_mul(bnlow, bntmp, bntarg, bnctx);
-+ BN_sub(bntmp2, bntmp, BN_value_one());
-+ BN_add(bnhigh, bnlow, bntmp2);
-
- if (b58top <= b58ceil) {
- /* Fill out the upper range too */
-@@ -849,16 +849,16 @@ get_prefix_ranges(int addrtype, const char *pfx, BIGNUM **result,
- bnlow2 = BN_new();
- bnhigh2 = BN_new();
-
-- BN_mul(bnlow2, bnlow, &bnbase, bnctx);
-- BN_mul(&bntmp2, bnhigh, &bnbase, bnctx);
-- BN_set_word(&bntmp, 57);
-- BN_add(bnhigh2, &bntmp2, &bntmp);
-+ BN_mul(bnlow2, bnlow, bnbase, bnctx);
-+ BN_mul(bntmp2, bnhigh, bnbase, bnctx);
-+ BN_set_word(bntmp, 57);
-+ BN_add(bnhigh2, bntmp2, bntmp);
-
- /*
- * Addresses above the ceiling will have one
- * fewer "1" prefix in front than we require.
- */
-- if (BN_cmp(&bnceil, bnlow2) < 0) {
-+ if (BN_cmp(bnceil, bnlow2) < 0) {
- /* High prefix is above the ceiling */
- check_upper = 0;
- BN_free(bnhigh2);
-@@ -866,15 +866,15 @@ get_prefix_ranges(int addrtype, const char *pfx, BIGNUM **result,
- BN_free(bnlow2);
- bnlow2 = NULL;
- }
-- else if (BN_cmp(&bnceil, bnhigh2) < 0)
-+ else if (BN_cmp(bnceil, bnhigh2) < 0)
- /* High prefix is partly above the ceiling */
-- BN_copy(bnhigh2, &bnceil);
-+ BN_copy(bnhigh2, bnceil);
-
- /*
- * Addresses below the floor will have another
- * "1" prefix in front instead of our target.
- */
-- if (BN_cmp(&bnfloor, bnhigh) >= 0) {
-+ if (BN_cmp(bnfloor, bnhigh) >= 0) {
- /* Low prefix is completely below the floor */
- assert(check_upper);
- check_upper = 0;
-@@ -885,35 +885,35 @@ get_prefix_ranges(int addrtype, const char *pfx, BIGNUM **result,
- bnlow = bnlow2;
- bnlow2 = NULL;
- }
-- else if (BN_cmp(&bnfloor, bnlow) > 0) {
-+ else if (BN_cmp(bnfloor, bnlow) > 0) {
- /* Low prefix is partly below the floor */
-- BN_copy(bnlow, &bnfloor);
-+ BN_copy(bnlow, bnfloor);
- }
- }
-
- } else {
-- BN_copy(bnhigh, &bnceil);
-+ BN_copy(bnhigh, bnceil);
- BN_clear(bnlow);
- }
-
- /* Limit the prefix to the address type */
-- BN_clear(&bntmp);
-- BN_set_word(&bntmp, addrtype);
-- BN_lshift(&bntmp2, &bntmp, 192);
-+ BN_clear(bntmp);
-+ BN_set_word(bntmp, addrtype);
-+ BN_lshift(bntmp2, bntmp, 192);
-
- if (check_upper) {
-- if (BN_cmp(&bntmp2, bnhigh2) > 0) {
-+ if (BN_cmp(bntmp2, bnhigh2) > 0) {
- check_upper = 0;
- BN_free(bnhigh2);
- bnhigh2 = NULL;
- BN_free(bnlow2);
- bnlow2 = NULL;
- }
-- else if (BN_cmp(&bntmp2, bnlow2) > 0)
-- BN_copy(bnlow2, &bntmp2);
-+ else if (BN_cmp(bntmp2, bnlow2) > 0)
-+ BN_copy(bnlow2, bntmp2);
- }
-
-- if (BN_cmp(&bntmp2, bnhigh) > 0) {
-+ if (BN_cmp(bntmp2, bnhigh) > 0) {
- if (!check_upper)
- goto not_possible;
- check_upper = 0;
-@@ -924,26 +924,26 @@ get_prefix_ranges(int addrtype, const char *pfx, BIGNUM **result,
- bnlow = bnlow2;
- bnlow2 = NULL;
- }
-- else if (BN_cmp(&bntmp2, bnlow) > 0) {
-- BN_copy(bnlow, &bntmp2);
-+ else if (BN_cmp(bntmp2, bnlow) > 0) {
-+ BN_copy(bnlow, bntmp2);
- }
-
-- BN_set_word(&bntmp, addrtype + 1);
-- BN_lshift(&bntmp2, &bntmp, 192);
-+ BN_set_word(bntmp, addrtype + 1);
-+ BN_lshift(bntmp2, bntmp, 192);
-
- if (check_upper) {
-- if (BN_cmp(&bntmp2, bnlow2) < 0) {
-+ if (BN_cmp(bntmp2, bnlow2) < 0) {
- check_upper = 0;
- BN_free(bnhigh2);
- bnhigh2 = NULL;
- BN_free(bnlow2);
- bnlow2 = NULL;
- }
-- else if (BN_cmp(&bntmp2, bnhigh2) < 0)
-- BN_copy(bnlow2, &bntmp2);
-+ else if (BN_cmp(bntmp2, bnhigh2) < 0)
-+ BN_copy(bnlow2, bntmp2);
- }
-
-- if (BN_cmp(&bntmp2, bnlow) < 0) {
-+ if (BN_cmp(bntmp2, bnlow) < 0) {
- if (!check_upper)
- goto not_possible;
- check_upper = 0;
-@@ -954,8 +954,8 @@ get_prefix_ranges(int addrtype, const char *pfx, BIGNUM **result,
- bnlow = bnlow2;
- bnlow2 = NULL;
- }
-- else if (BN_cmp(&bntmp2, bnhigh) < 0) {
-- BN_copy(bnhigh, &bntmp2);
-+ else if (BN_cmp(bntmp2, bnhigh) < 0) {
-+ BN_copy(bnhigh, bntmp2);
- }
-
- /* Address ranges are complete */
-@@ -976,12 +976,12 @@ get_prefix_ranges(int addrtype, const char *pfx, BIGNUM **result,
- }
-
- out:
-- BN_clear_free(&bntarg);
-- BN_clear_free(&bnceil);
-- BN_clear_free(&bnfloor);
-- BN_clear_free(&bnbase);
-- BN_clear_free(&bntmp);
-- BN_clear_free(&bntmp2);
-+ BN_clear_free(bntarg);
-+ BN_clear_free(bnceil);
-+ BN_clear_free(bnfloor);
-+ BN_clear_free(bnbase);
-+ BN_clear_free(bntmp);
-+ BN_clear_free(bntmp2);
- if (bnhigh)
- BN_free(bnhigh);
- if (bnlow)
-@@ -1266,7 +1266,7 @@ prefix_case_iter_next(prefix_case_iter_t *cip)
- typedef struct _vg_prefix_context_s {
- vg_context_t base;
- avl_root_t vcp_avlroot;
-- BIGNUM vcp_difficulty;
-+ BIGNUM *vcp_difficulty;
- int vcp_caseinsensitive;
- } vg_prefix_context_t;
-
-@@ -1294,7 +1294,7 @@ vg_prefix_context_clear_all_patterns(vg_context_t *vcp)
- vcpp->base.vc_npatterns = 0;
- vcpp->base.vc_npatterns_start = 0;
- vcpp->base.vc_found = 0;
-- BN_clear(&vcpp->vcp_difficulty);
-+ BN_clear(vcpp->vcp_difficulty);
- }
-
- static void
-@@ -1302,7 +1302,7 @@ vg_prefix_context_free(vg_context_t *vcp)
- {
- vg_prefix_context_t *vcpp = (vg_prefix_context_t *) vcp;
- vg_prefix_context_clear_all_patterns(vcp);
-- BN_clear_free(&vcpp->vcp_difficulty);
-+ BN_clear_free(vcpp->vcp_difficulty);
- free(vcpp);
- }
-
-@@ -1314,7 +1314,7 @@ vg_prefix_context_next_difficulty(vg_prefix_context_t *vcpp,
-
- BN_clear(bntmp);
- BN_set_bit(bntmp, 192);
-- BN_div(bntmp2, NULL, bntmp, &vcpp->vcp_difficulty, bnctx);
-+ BN_div(bntmp2, NULL, bntmp, vcpp->vcp_difficulty, bnctx);
-
- dbuf = BN_bn2dec(bntmp2);
- if (vcpp->base.vc_verbose > 0) {
-@@ -1337,7 +1337,7 @@ vg_prefix_context_add_patterns(vg_context_t *vcp,
- prefix_case_iter_t caseiter;
- vg_prefix_t *vp, *vp2;
- BN_CTX *bnctx;
-- BIGNUM bntmp, bntmp2, bntmp3;
-+ BIGNUM *bntmp, *bntmp2, *bntmp3;
- BIGNUM *ranges[4];
- int ret = 0;
- int i, impossible = 0;
-@@ -1346,9 +1346,9 @@ vg_prefix_context_add_patterns(vg_context_t *vcp,
- char *dbuf;
-
- bnctx = BN_CTX_new();
-- BN_init(&bntmp);
-- BN_init(&bntmp2);
-- BN_init(&bntmp3);
-+ bntmp = BN_new();
-+ bntmp2 = BN_new();
-+ bntmp3 = BN_new();
-
- npfx = 0;
- for (i = 0; i < npatterns; i++) {
-@@ -1426,16 +1426,16 @@ vg_prefix_context_add_patterns(vg_context_t *vcp,
- npfx++;
-
- /* Determine the probability of finding a match */
-- vg_prefix_range_sum(vp, &bntmp, &bntmp2);
-- BN_add(&bntmp2, &vcpp->vcp_difficulty, &bntmp);
-- BN_copy(&vcpp->vcp_difficulty, &bntmp2);
-+ vg_prefix_range_sum(vp, bntmp, bntmp2);
-+ BN_add(bntmp2, vcpp->vcp_difficulty, bntmp);
-+ BN_copy(vcpp->vcp_difficulty, bntmp2);
-
- if (vcp->vc_verbose > 1) {
-- BN_clear(&bntmp2);
-- BN_set_bit(&bntmp2, 192);
-- BN_div(&bntmp3, NULL, &bntmp2, &bntmp, bnctx);
-+ BN_clear(bntmp2);
-+ BN_set_bit(bntmp2, 192);
-+ BN_div(bntmp3, NULL, bntmp2, bntmp, bnctx);
-
-- dbuf = BN_bn2dec(&bntmp3);
-+ dbuf = BN_bn2dec(bntmp3);
- fprintf(stderr,
- "Prefix difficulty: %20s %s\n",
- dbuf, patterns[i]);
-@@ -1469,13 +1469,13 @@ vg_prefix_context_add_patterns(vg_context_t *vcp,
- }
-
- if (npfx)
-- vg_prefix_context_next_difficulty(vcpp, &bntmp, &bntmp2, bnctx);
-+ vg_prefix_context_next_difficulty(vcpp, bntmp, bntmp2, bnctx);
-
- ret = (npfx != 0);
-
-- BN_clear_free(&bntmp);
-- BN_clear_free(&bntmp2);
-- BN_clear_free(&bntmp3);
-+ BN_clear_free(bntmp);
-+ BN_clear_free(bntmp2);
-+ BN_clear_free(bntmp3);
- BN_CTX_free(bnctx);
- return ret;
- }
-@@ -1484,39 +1484,39 @@ double
- vg_prefix_get_difficulty(int addrtype, const char *pattern)
- {
- BN_CTX *bnctx;
-- BIGNUM result, bntmp;
-+ BIGNUM *result, *bntmp;
- BIGNUM *ranges[4];
- char *dbuf;
- int ret;
- double diffret = 0.0;
-
- bnctx = BN_CTX_new();
-- BN_init(&result);
-- BN_init(&bntmp);
-+ result = BN_new();
-+ bntmp = BN_new();
-
- ret = get_prefix_ranges(addrtype,
- pattern, ranges, bnctx);
-
- if (ret == 0) {
-- BN_sub(&bntmp, ranges[1], ranges[0]);
-- BN_add(&result, &result, &bntmp);
-+ BN_sub(bntmp, ranges[1], ranges[0]);
-+ BN_add(result, result, bntmp);
- if (ranges[2]) {
-- BN_sub(&bntmp, ranges[3], ranges[2]);
-- BN_add(&result, &result, &bntmp);
-+ BN_sub(bntmp, ranges[3], ranges[2]);
-+ BN_add(result, result, bntmp);
- }
- free_ranges(ranges);
-
-- BN_clear(&bntmp);
-- BN_set_bit(&bntmp, 192);
-- BN_div(&result, NULL, &bntmp, &result, bnctx);
-+ BN_clear(bntmp);
-+ BN_set_bit(bntmp, 192);
-+ BN_div(result, NULL, bntmp, result, bnctx);
-
-- dbuf = BN_bn2dec(&result);
-+ dbuf = BN_bn2dec(result);
- diffret = strtod(dbuf, NULL);
- OPENSSL_free(dbuf);
- }
-
-- BN_clear_free(&result);
-- BN_clear_free(&bntmp);
-+ BN_clear_free(result);
-+ BN_clear_free(bntmp);
- BN_CTX_free(bnctx);
- return diffret;
- }
-@@ -1535,10 +1535,10 @@ vg_prefix_test(vg_exec_context_t *vxcp)
- * check code.
- */
-
-- BN_bin2bn(vxcp->vxc_binres, 25, &vxcp->vxc_bntarg);
-+ BN_bin2bn(vxcp->vxc_binres, 25, vxcp->vxc_bntarg);
-
- research:
-- vp = vg_prefix_avl_search(&vcpp->vcp_avlroot, &vxcp->vxc_bntarg);
-+ vp = vg_prefix_avl_search(&vcpp->vcp_avlroot, vxcp->vxc_bntarg);
- if (vp) {
- if (vg_exec_context_upgrade_lock(vxcp))
- goto research;
-@@ -1558,20 +1558,20 @@ vg_prefix_test(vg_exec_context_t *vxcp)
- if (vcpp->base.vc_remove_on_match) {
- /* Subtract the range from the difficulty */
- vg_prefix_range_sum(vp,
-- &vxcp->vxc_bntarg,
-- &vxcp->vxc_bntmp);
-- BN_sub(&vxcp->vxc_bntmp,
-- &vcpp->vcp_difficulty,
-- &vxcp->vxc_bntarg);
-- BN_copy(&vcpp->vcp_difficulty, &vxcp->vxc_bntmp);
-+ vxcp->vxc_bntarg,
-+ vxcp->vxc_bntmp);
-+ BN_sub(vxcp->vxc_bntmp,
-+ vcpp->vcp_difficulty,
-+ vxcp->vxc_bntarg);
-+ BN_copy(vcpp->vcp_difficulty, vxcp->vxc_bntmp);
-
- vg_prefix_delete(&vcpp->vcp_avlroot,vp);
- vcpp->base.vc_npatterns--;
-
- if (!avl_root_empty(&vcpp->vcp_avlroot))
- vg_prefix_context_next_difficulty(
-- vcpp, &vxcp->vxc_bntmp,
-- &vxcp->vxc_bntmp2,
-+ vcpp, vxcp->vxc_bntmp,
-+ vxcp->vxc_bntmp2,
- vxcp->vxc_bnctx);
- vcpp->base.vc_pattern_generation++;
- }
-@@ -1652,7 +1652,7 @@ vg_prefix_context_new(int addrtype, int privtype, int caseinsensitive)
- vcpp->base.vc_test = vg_prefix_test;
- vcpp->base.vc_hash160_sort = vg_prefix_hash160_sort;
- avl_root_init(&vcpp->vcp_avlroot);
-- BN_init(&vcpp->vcp_difficulty);
-+ vcpp->vcp_difficulty = BN_new();
- vcpp->vcp_caseinsensitive = caseinsensitive;
- }
- return &vcpp->base;
-@@ -1778,21 +1778,21 @@ vg_regex_test(vg_exec_context_t *vxcp)
- unsigned char hash1[32], hash2[32];
- int i, zpfx, p, d, nres, re_vec[9];
- char b58[40];
-- BIGNUM bnrem;
-+ BIGNUM *bnrem;
- BIGNUM *bn, *bndiv, *bnptmp;
- int res = 0;
-
- pcre *re;
-
-- BN_init(&bnrem);
-+ bnrem = BN_new();
-
- /* Hash the hash and write the four byte check code */
- SHA256(vxcp->vxc_binres, 21, hash1);
- SHA256(hash1, sizeof(hash1), hash2);
- memcpy(&vxcp->vxc_binres[21], hash2, 4);
-
-- bn = &vxcp->vxc_bntmp;
-- bndiv = &vxcp->vxc_bntmp2;
-+ bn = vxcp->vxc_bntmp;
-+ bndiv = vxcp->vxc_bntmp2;
-
- BN_bin2bn(vxcp->vxc_binres, 25, bn);
-
-@@ -1801,11 +1801,11 @@ vg_regex_test(vg_exec_context_t *vxcp)
- p = sizeof(b58) - 1;
- b58[p] = '\0';
- while (!BN_is_zero(bn)) {
-- BN_div(bndiv, &bnrem, bn, &vxcp->vxc_bnbase, vxcp->vxc_bnctx);
-+ BN_div(bndiv, bnrem, bn, vxcp->vxc_bnbase, vxcp->vxc_bnctx);
- bnptmp = bn;
- bn = bndiv;
- bndiv = bnptmp;
-- d = BN_get_word(&bnrem);
-+ d = BN_get_word(bnrem);
- b58[--p] = vg_b58_alphabet[d];
- }
- while (zpfx--) {
-@@ -1878,7 +1878,7 @@ vg_regex_test(vg_exec_context_t *vxcp)
- res = 1;
- }
- out:
-- BN_clear_free(&bnrem);
-+ BN_clear_free(bnrem);
- return res;
- }
-
-diff --git a/pattern.h b/pattern.h
-index 3ce2d1f..0b604ea 100644
---- a/pattern.h
-+++ b/pattern.h
-@@ -51,10 +51,10 @@ struct _vg_exec_context_s {
- EC_KEY *vxc_key;
- int vxc_delta;
- unsigned char vxc_binres[28];
-- BIGNUM vxc_bntarg;
-- BIGNUM vxc_bnbase;
-- BIGNUM vxc_bntmp;
-- BIGNUM vxc_bntmp2;
-+ BIGNUM *vxc_bntarg;
-+ BIGNUM *vxc_bnbase;
-+ BIGNUM *vxc_bntmp;
-+ BIGNUM *vxc_bntmp2;
-
- vg_exec_context_threadfunc_t vxc_threadfunc;
- pthread_t vxc_pthread;
-diff --git a/util.c b/util.c
-index 4f3cbb8..35cd592 100644
---- a/util.c
-+++ b/util.c
-@@ -110,19 +110,19 @@ vg_b58_encode_check(void *buf, size_t len, char *result)
-
- BN_CTX *bnctx;
- BIGNUM *bn, *bndiv, *bntmp;
-- BIGNUM bna, bnb, bnbase, bnrem;
-+ BIGNUM *bna, *bnb, *bnbase, *bnrem;
- unsigned char *binres;
- int brlen, zpfx;
-
- bnctx = BN_CTX_new();
-- BN_init(&bna);
-- BN_init(&bnb);
-- BN_init(&bnbase);
-- BN_init(&bnrem);
-- BN_set_word(&bnbase, 58);
-+ bna = BN_new();
-+ bnb = BN_new();
-+ bnbase = BN_new();
-+ bnrem = BN_new();
-+ BN_set_word(bnbase, 58);
-
-- bn = &bna;
-- bndiv = &bnb;
-+ bn = bna;
-+ bndiv = bnb;
-
- brlen = (2 * len) + 4;
- binres = (unsigned char*) malloc(brlen);
-@@ -154,11 +154,11 @@ vg_b58_encode_check(void *buf, size_t len, char *result)
-
- p = brlen;
- while (!BN_is_zero(bn)) {
-- BN_div(bndiv, &bnrem, bn, &bnbase, bnctx);
-+ BN_div(bndiv, bnrem, bn, bnbase, bnctx);
- bntmp = bn;
- bn = bndiv;
- bndiv = bntmp;
-- d = BN_get_word(&bnrem);
-+ d = BN_get_word(bnrem);
- binres[--p] = vg_b58_alphabet[d];
- }
-
-@@ -170,10 +170,10 @@ vg_b58_encode_check(void *buf, size_t len, char *result)
- result[brlen - p] = '\0';
-
- free(binres);
-- BN_clear_free(&bna);
-- BN_clear_free(&bnb);
-- BN_clear_free(&bnbase);
-- BN_clear_free(&bnrem);
-+ BN_clear_free(bna);
-+ BN_clear_free(bnb);
-+ BN_clear_free(bnbase);
-+ BN_clear_free(bnrem);
- BN_CTX_free(bnctx);
- }
-
-@@ -185,7 +185,7 @@ vg_b58_decode_check(const char *input, void *buf, size_t len)
- {
- int i, l, c;
- unsigned char *xbuf = NULL;
-- BIGNUM bn, bnw, bnbase;
-+ BIGNUM *bn, *bnw, *bnbase;
- BN_CTX *bnctx;
- unsigned char hash1[32], hash2[32];
- unsigned char groestlhash1[64];
-@@ -193,10 +193,10 @@ vg_b58_decode_check(const char *input, void *buf, size_t len)
- int zpfx;
- int res = 0;
-
-- BN_init(&bn);
-- BN_init(&bnw);
-- BN_init(&bnbase);
-- BN_set_word(&bnbase, 58);
-+ bn = BN_new();
-+ bnw = BN_new();
-+ bnbase = BN_new();
-+ BN_set_word(bnbase, 58);
- bnctx = BN_CTX_new();
-
- /* Build a bignum from the encoded value */
-@@ -207,10 +207,10 @@ vg_b58_decode_check(const char *input, void *buf, size_t len)
- c = vg_b58_reverse_map[(int)input[i]];
- if (c < 0)
- goto out;
-- BN_clear(&bnw);
-- BN_set_word(&bnw, c);
-- BN_mul(&bn, &bn, &bnbase, bnctx);
-- BN_add(&bn, &bn, &bnw);
-+ BN_clear(bnw);
-+ BN_set_word(bnw, c);
-+ BN_mul(bn, bn, bnbase, bnctx);
-+ BN_add(bn, bn, bnw);
- }
-
- /* Copy the bignum to a byte buffer */
-@@ -221,7 +221,7 @@ vg_b58_decode_check(const char *input, void *buf, size_t len)
- break;
- zpfx++;
- }
-- c = BN_num_bytes(&bn);
-+ c = BN_num_bytes(bn);
- l = zpfx + c;
- if (l < 5)
- goto out;
-@@ -231,7 +231,7 @@ vg_b58_decode_check(const char *input, void *buf, size_t len)
- if (zpfx)
- memset(xbuf, 0, zpfx);
- if (c)
-- BN_bn2bin(&bn, xbuf + zpfx);
-+ BN_bn2bin(bn, xbuf + zpfx);
-
- /* Check the hash code */
- l -= 4;
-@@ -270,9 +270,9 @@ vg_b58_decode_check(const char *input, void *buf, size_t len)
- out:
- if (xbuf)
- free(xbuf);
-- BN_clear_free(&bn);
-- BN_clear_free(&bnw);
-- BN_clear_free(&bnbase);
-+ BN_clear_free(bn);
-+ BN_clear_free(bnw);
-+ BN_clear_free(bnbase);
- BN_CTX_free(bnctx);
- return res;
- }
-@@ -420,7 +420,7 @@ vg_set_privkey(const BIGNUM *bnpriv, EC_KEY *pkey)
- int
- vg_decode_privkey(const char *b58encoded, EC_KEY *pkey, int *addrtype)
- {
-- BIGNUM bnpriv;
-+ BIGNUM *bnpriv;
- unsigned char ecpriv[48];
- int res, ret;
-
-@@ -430,10 +430,10 @@ vg_decode_privkey(const char *b58encoded, EC_KEY *pkey, int *addrtype)
-
- ret = res - 32;
-
-- BN_init(&bnpriv);
-- BN_bin2bn(ecpriv + 1, 32, &bnpriv);
-- res = vg_set_privkey(&bnpriv, pkey);
-- BN_clear_free(&bnpriv);
-+ bnpriv = BN_new();
-+ BN_bin2bn(ecpriv + 1, 32, bnpriv);
-+ res = vg_set_privkey(bnpriv, pkey);
-+ BN_clear_free(bnpriv);
- *addrtype = ecpriv[0];
- return ret;
- }
-@@ -632,15 +632,15 @@ vg_protect_crypt(int parameter_group,
- salt_len = 4;
- hmac_len = 8;
- hmac_keylen = 16;
-- ciphertext_len = ((plaintext_len + cipher->block_size - 1) /
-- cipher->block_size) * cipher->block_size;
-+ ciphertext_len = ((plaintext_len + EVP_CIPHER_block_size(cipher) - 1) /
-+ EVP_CIPHER_block_size(cipher)) * EVP_CIPHER_block_size(cipher);
- pkcs7_padding = 0;
- hmac_digest = EVP_sha256();
- } else {
- /* PKCS-compliant encoding */
- salt_len = 8;
-- ciphertext_len = ((plaintext_len + cipher->block_size) /
-- cipher->block_size) * cipher->block_size;
-+ ciphertext_len = ((plaintext_len + EVP_CIPHER_block_size(cipher)) /
-+ EVP_CIPHER_block_size(cipher)) * EVP_CIPHER_block_size(cipher);
- hmac_digest = NULL;
- }
-
-@@ -666,12 +666,12 @@ vg_protect_crypt(int parameter_group,
- salt, salt_len,
- params->iterations,
- pbkdf_digest,
-- cipher->key_len + cipher->iv_len + hmac_keylen,
-+ EVP_CIPHER_key_length(cipher) + EVP_CIPHER_iv_length(cipher) + hmac_keylen,
- keymaterial);
-
- if (!EVP_CipherInit(ctx, cipher,
- keymaterial,
-- keymaterial + cipher->key_len,
-+ keymaterial + EVP_CIPHER_key_length(cipher),
- enc)) {
- fprintf(stderr, "ERROR: could not configure cipher\n");
- goto out;
-@@ -707,7 +707,7 @@ vg_protect_crypt(int parameter_group,
- if (hmac_len) {
- hlen = sizeof(hmac);
- HMAC(hmac_digest,
-- keymaterial + cipher->key_len + cipher->iv_len,
-+ keymaterial + EVP_CIPHER_key_length(cipher) + EVP_CIPHER_iv_length(cipher),
- hmac_keylen,
- enc ? data_in : data_out, plaintext_len,
- hmac, &hlen);
-@@ -786,7 +786,7 @@ vg_protect_decode_privkey(EC_KEY *pkey, int *keytype,
- {
- unsigned char ecpriv[64];
- unsigned char ecenc[128];
-- BIGNUM bn;
-+ BIGNUM *bn;
- int restype;
- int res;
-
-@@ -810,10 +810,10 @@ vg_protect_decode_privkey(EC_KEY *pkey, int *keytype,
-
- res = 1;
- if (pkey) {
-- BN_init(&bn);
-- BN_bin2bn(ecpriv, 32, &bn);
-- res = vg_set_privkey(&bn, pkey);
-- BN_clear_free(&bn);
-+ bn = BN_new();
-+ BN_bin2bn(ecpriv, 32, bn);
-+ res = vg_set_privkey(bn, pkey);
-+ BN_clear_free(bn);
- OPENSSL_cleanse(ecpriv, sizeof(ecpriv));
- }
-
-diff --git a/vanitygen.c b/vanitygen.c
-index fb7925a..992e5d7 100644
---- a/vanitygen.c
-+++ b/vanitygen.c
-@@ -94,8 +94,8 @@ vg_thread_loop(void *arg)
- exit(1);
- }
-
-- BN_set_word(&vxcp->vxc_bntmp, ptarraysize);
-- EC_POINT_mul(pgroup, pbatchinc, &vxcp->vxc_bntmp, NULL, NULL,
-+ BN_set_word(vxcp->vxc_bntmp, ptarraysize);
-+ EC_POINT_mul(pgroup, pbatchinc, vxcp->vxc_bntmp, NULL, NULL,
- vxcp->vxc_bnctx);
- EC_POINT_make_affine(pgroup, pbatchinc, vxcp->vxc_bnctx);
-
-@@ -139,13 +139,13 @@ vg_thread_loop(void *arg)
- npoints = 0;
-
- /* Determine rekey interval */
-- EC_GROUP_get_order(pgroup, &vxcp->vxc_bntmp,
-+ EC_GROUP_get_order(pgroup, vxcp->vxc_bntmp,
- vxcp->vxc_bnctx);
-- BN_sub(&vxcp->vxc_bntmp2,
-- &vxcp->vxc_bntmp,
-+ BN_sub(vxcp->vxc_bntmp2,
-+ vxcp->vxc_bntmp,
- EC_KEY_get0_private_key(pkey));
-- rekey_at = BN_get_word(&vxcp->vxc_bntmp2);
-- if ((rekey_at == BN_MASK2) || (rekey_at > rekey_max))
-+ rekey_at = BN_get_word(vxcp->vxc_bntmp2);
-+ if ((rekey_at == 0xffffffffL) || (rekey_at > rekey_max))
- rekey_at = rekey_max;
- assert(rekey_at > 0);
-
diff --git a/srcpkgs/vanitygen/patches/5f163e6fff7da52c4aecbd898d9df2e60a56f134.patch b/srcpkgs/vanitygen/patches/5f163e6fff7da52c4aecbd898d9df2e60a56f134.patch
deleted file mode 100644
index 5ee30ae08cdf..000000000000
--- a/srcpkgs/vanitygen/patches/5f163e6fff7da52c4aecbd898d9df2e60a56f134.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 5f163e6fff7da52c4aecbd898d9df2e60a56f134 Mon Sep 17 00:00:00 2001
-From: DesWurstes <DesWurstes@users.noreply.github.com>
-Date: Sun, 3 Jun 2018 17:46:16 +0300
-Subject: [PATCH] Privkey prefix OpenSSL 1.1 compatibility (#116)
-
-Fixes #114
----
- oclengine.c | 18 +++++++++++++-----
- vanitygen.c | 12 ++++++++++--
- 2 files changed, 23 insertions(+), 7 deletions(-)
-
-diff --git a/oclengine.c b/oclengine.c
-index 6585fc6..c69bd4b 100644
---- a/oclengine.c
-+++ b/oclengine.c
-@@ -5,7 +5,7 @@
- * Vanitygen is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
-- * any later version.
-+ * any later version.
- *
- * Vanitygen is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-@@ -1058,7 +1058,7 @@ vg_ocl_kernel_arg_alloc(vg_ocl_context_t *vocp, int slot,
- karg,
- sizeof(clbuf),
- &clbuf);
--
-+
- if (ret) {
- fprintf(stderr,
- "clSetKernelArg(%d,%d): ", knum, karg);
-@@ -1090,7 +1090,7 @@ vg_ocl_copyout_arg(vg_ocl_context_t *vocp, int wslot, int arg,
- buffer,
- 0, NULL,
- NULL);
--
-+
- if (ret) {
- fprintf(stderr, "clEnqueueWriteBuffer(%d): ", arg);
- vg_ocl_error(vocp, ret, NULL);
-@@ -2079,7 +2079,15 @@ vg_opencl_loop(vg_exec_context_t *arg)
- npoints = 0;
- if (vcp->vc_privkey_prefix_length > 0) {
- BIGNUM *pkbn = BN_dup(EC_KEY_get0_private_key(pkey));
-- memcpy((char *)pkbn->d + 32 - vcp->vc_privkey_prefix_length, vcp->vc_privkey_prefix, vcp->vc_privkey_prefix_length);
-+ unsigned char pkey_arr[32];
-+ assert(BN_bn2bin(pkbn, pkey_arr) < 33);
-+ memcpy((char *) pkey_arr, vcp->vc_privkey_prefix, vcp->vc_privkey_prefix_length);
-+ for (int i = 0; i < vcp->vc_privkey_prefix_length / 2; i++) {
-+ int k = pkey_arr[i];
-+ pkey_arr[i] = pkey_arr[vcp->vc_privkey_prefix_length - 1 - i];
-+ pkey_arr[vcp->vc_privkey_prefix_length - 1 - i] = k;
-+ }
-+ BN_bin2bn(pkey_arr, 32, pkbn);
- EC_KEY_set_private_key(pkey, pkbn);
-
- EC_POINT *origin = EC_POINT_new(pgroup);
-@@ -2240,7 +2248,7 @@ vg_opencl_loop(vg_exec_context_t *arg)
- slot_busy = 1;
- slot = (slot + 1) % nslots;
-
-- } else {
-+ } else {
- if (slot_busy) {
- pthread_mutex_lock(&vocp->voc_lock);
- while (vocp->voc_ocl_slot != -1) {
-diff --git a/vanitygen.c b/vanitygen.c
-index 992e5d7..5e49df7 100644
---- a/vanitygen.c
-+++ b/vanitygen.c
-@@ -129,7 +129,15 @@ vg_thread_loop(void *arg)
- EC_KEY_generate_key(pkey);
- if (vcp->vc_privkey_prefix_length > 0) {
- BIGNUM *pkbn = BN_dup(EC_KEY_get0_private_key(pkey));
-- memcpy((char *)pkbn->d + 32 - vcp->vc_privkey_prefix_length, vcp->vc_privkey_prefix, vcp->vc_privkey_prefix_length);
-+ unsigned char pkey_arr[32];
-+ assert(BN_bn2bin(pkbn, pkey_arr) < 33);
-+ memcpy((char *) pkey_arr, vcp->vc_privkey_prefix, vcp->vc_privkey_prefix_length);
-+ for (int i = 0; i < vcp->vc_privkey_prefix_length / 2; i++) {
-+ int k = pkey_arr[i];
-+ pkey_arr[i] = pkey_arr[vcp->vc_privkey_prefix_length - 1 - i];
-+ pkey_arr[vcp->vc_privkey_prefix_length - 1 - i] = k;
-+ }
-+ BN_bin2bn(pkey_arr, 32, pkbn);
- EC_KEY_set_private_key(pkey, pkbn);
-
- EC_POINT *origin = EC_POINT_new(pgroup);
-@@ -1395,7 +1403,7 @@ main(int argc, char **argv)
- addrtype = 60;
- privtype = 128;
- break;
-- }
-+ }
- break;
-
- /*END ALTCOIN GENERATOR*/
diff --git a/srcpkgs/vanitygen/template b/srcpkgs/vanitygen/template
deleted file mode 100644
index 624ac859d5d2..000000000000
--- a/srcpkgs/vanitygen/template
+++ /dev/null
@@ -1,21 +0,0 @@
-# Template file for 'vanitygen'
-pkgname=vanitygen
-version=1.53
-revision=2
-makedepends="pcre-devel openssl-devel"
-short_desc="Bitcoin vanity address generator"
-maintainer="Orphaned <orphan@voidlinux.org>"
-license="AGPL-3.0-or-later"
-homepage="https://github.com/exploitagency/vanitygen-plus"
-changelog="https://raw.githubusercontent.com/exploitagency/vanitygen-plus/master/CHANGELOG"
-distfiles="https://github.com/exploitagency/vanitygen-plus/archive/PLUS${version}.tar.gz"
-checksum=976a9afe2a4470551a8b6b0da97101a3a2e6c54c5a26dc870ae755bb2d8c7041
-
-do_build() {
- make CC=$CC CFLAGS="$CFLAGS $LDFLAGS" ${makejobs}
-}
-do_install() {
- vbin vanitygen
- vbin keyconv
- vlicense LICENSE
-}
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PR PATCH] [Merged]: vanitygen: remove
2023-01-30 15:29 [PR PATCH] vanitygen: remove dkwo
` (2 preceding siblings ...)
2023-01-30 17:09 ` [PR PATCH] [Updated] " dkwo
@ 2023-02-05 10:46 ` paper42
3 siblings, 0 replies; 5+ messages in thread
From: paper42 @ 2023-02-05 10:46 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 314 bytes --]
There's a merged pull request on the void-packages repository
vanitygen: remove
https://github.com/void-linux/void-packages/pull/41968
Description:
- I tested the changes in this PR: yes
- I built this PR locally for my native architecture, (x86_64-musl)
does not build with openssl3, no distfiles available
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-02-05 10:46 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-30 15:29 [PR PATCH] vanitygen: remove dkwo
2023-01-30 15:29 ` dkwo
2023-01-30 16:24 ` liarimu
2023-01-30 17:09 ` [PR PATCH] [Updated] " dkwo
2023-02-05 10:46 ` [PR PATCH] [Merged]: " paper42
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).