diff options
Diffstat (limited to 'patches/wownero')
| -rw-r--r-- | patches/wownero/0010-build-wownero-seed.patch | 327 |
1 files changed, 327 insertions, 0 deletions
diff --git a/patches/wownero/0010-build-wownero-seed.patch b/patches/wownero/0010-build-wownero-seed.patch new file mode 100644 index 0000000..9bdd18d --- /dev/null +++ b/patches/wownero/0010-build-wownero-seed.patch @@ -0,0 +1,327 @@ +From 918eaf1bdabb003ba1d2857ecd564c76cf440c19 Mon Sep 17 00:00:00 2001 +From: Czarek Nakamoto <cyjan@mrcyjanek.net> +Date: Thu, 25 Apr 2024 10:06:04 +0200 +Subject: [PATCH] build wownero-seed + +--- + contrib/depends/packages/wownero_seed.mk | 27 ++ + .../0001-fix-duplicate-symbol-error.patch | 273 ++++++++++++++++++ + 2 files changed, 300 insertions(+) + create mode 100644 contrib/depends/packages/wownero_seed.mk + create mode 100644 contrib/depends/patches/wownero_seed/0001-fix-duplicate-symbol-error.patch + +diff --git a/contrib/depends/packages/wownero_seed.mk b/contrib/depends/packages/wownero_seed.mk +new file mode 100644 +index 000000000..2747b8c65 +--- /dev/null ++++ b/contrib/depends/packages/wownero_seed.mk +@@ -0,0 +1,27 @@ ++package=wownero_seed ++$(package)_version=0.3.0 ++$(package)_download_path=https://github.com/MrCyjaneK/wownero-seed/archive/ ++$(package)_download_file=d3f68be347facfeebbd8f68fd74982c705cb917b.tar.gz ++$(package)_file_name=$(package)-$($(package)_version).tar.gz ++$(package)_sha256_hash=3b59ccde08e0fee204680240af4b270a18a677aa0e6036a3504570193d232406 ++# $(package)_patches= ++ ++define $(package)_preprocess_cmds ++ patch -p1 < $($(package)_patch_dir)/0001-fix-duplicate-symbol-error.patch ++endef ++ ++define $(package)_config_cmds ++ CC="$($(package)_cc)" cmake -DCMAKE_INSTALL_PREFIX="$(host_prefix)" . ++endef ++ ++define $(package)_set_vars ++ $(package)_build_opts=CC="$($(package)_cc)" ++endef ++ ++define $(package)_build_cmds ++ CC="$($(package)_cc)" $(MAKE) ++endef ++ ++define $(package)_stage_cmds ++ $(MAKE) DESTDIR=$($(package)_staging_dir) install ++endef +diff --git a/contrib/depends/patches/wownero_seed/0001-fix-duplicate-symbol-error.patch b/contrib/depends/patches/wownero_seed/0001-fix-duplicate-symbol-error.patch +new file mode 100644 +index 000000000..810a65f38 +--- /dev/null ++++ b/contrib/depends/patches/wownero_seed/0001-fix-duplicate-symbol-error.patch +@@ -0,0 +1,273 @@ ++From b95535acbb18895a9d9894e64815cfca460ab95c Mon Sep 17 00:00:00 2001 ++From: Czarek Nakamoto <cyjan@mrcyjanek.net> ++Date: Thu, 25 Apr 2024 09:37:37 +0200 ++Subject: [PATCH] fix duplicate symbol error ++ ++--- ++ src/argon2/blake2/blake2.h | 12 +++++----- ++ src/argon2/blake2/blake2b.c | 46 ++++++++++++++++++------------------- ++ src/argon2/core.c | 32 +++++++++++++------------- ++ 3 files changed, 45 insertions(+), 45 deletions(-) ++ ++diff --git a/src/argon2/blake2/blake2.h b/src/argon2/blake2/blake2.h ++index 9f97e1c..25b445d 100644 ++--- a/src/argon2/blake2/blake2.h +++++ b/src/argon2/blake2/blake2.h ++@@ -67,15 +67,15 @@ enum { ++ }; ++ ++ /* Streaming API */ ++-ARGON2_LOCAL int blake2b_init(blake2b_state *S, size_t outlen); ++-ARGON2_LOCAL int blake2b_init_key(blake2b_state *S, size_t outlen, const void *key, +++ARGON2_LOCAL int blake2b_init_wowseed(blake2b_state *S, size_t outlen); +++ARGON2_LOCAL int blake2b_init_key_wowseed(blake2b_state *S, size_t outlen, const void *key, ++ size_t keylen); ++-ARGON2_LOCAL int blake2b_init_param(blake2b_state *S, const blake2b_param *P); ++-ARGON2_LOCAL int blake2b_update(blake2b_state *S, const void *in, size_t inlen); ++-ARGON2_LOCAL int blake2b_final(blake2b_state *S, void *out, size_t outlen); +++ARGON2_LOCAL int blake2b_init_param_wowseed(blake2b_state *S, const blake2b_param *P); +++ARGON2_LOCAL int blake2b_update_wowseed(blake2b_state *S, const void *in, size_t inlen); +++ARGON2_LOCAL int blake2b_final_wowseed(blake2b_state *S, void *out, size_t outlen); ++ ++ /* Simple API */ ++-ARGON2_LOCAL int blake2b(void *out, size_t outlen, const void *in, size_t inlen, +++ARGON2_LOCAL int blake2b_wowseed(void *out, size_t outlen, const void *in, size_t inlen, ++ const void *key, size_t keylen); ++ ++ /* Argon2 Team - Begin Code */ ++diff --git a/src/argon2/blake2/blake2b.c b/src/argon2/blake2/blake2b.c ++index ca05df5..8138b86 100644 ++--- a/src/argon2/blake2/blake2b.c +++++ b/src/argon2/blake2/blake2b.c ++@@ -70,7 +70,7 @@ static BLAKE2_INLINE void blake2b_init0(blake2b_state *S) { ++ memcpy(S->h, blake2b_IV, sizeof(S->h)); ++ } ++ ++-int blake2b_init_param(blake2b_state *S, const blake2b_param *P) { +++int blake2b_init_param_wowseed(blake2b_state *S, const blake2b_param *P) { ++ const unsigned char *p = (const unsigned char *)P; ++ unsigned int i; ++ ++@@ -88,7 +88,7 @@ int blake2b_init_param(blake2b_state *S, const blake2b_param *P) { ++ } ++ ++ /* Sequential blake2b initialization */ ++-int blake2b_init(blake2b_state *S, size_t outlen) { +++int blake2b_init_wowseed(blake2b_state *S, size_t outlen) { ++ blake2b_param P; ++ ++ if (S == NULL) { ++@@ -113,10 +113,10 @@ int blake2b_init(blake2b_state *S, size_t outlen) { ++ memset(P.salt, 0, sizeof(P.salt)); ++ memset(P.personal, 0, sizeof(P.personal)); ++ ++- return blake2b_init_param(S, &P); +++ return blake2b_init_param_wowseed(S, &P); ++ } ++ ++-int blake2b_init_key(blake2b_state *S, size_t outlen, const void *key, +++int blake2b_init_key_wowseed(blake2b_state *S, size_t outlen, const void *key, ++ size_t keylen) { ++ blake2b_param P; ++ ++@@ -147,7 +147,7 @@ int blake2b_init_key(blake2b_state *S, size_t outlen, const void *key, ++ memset(P.salt, 0, sizeof(P.salt)); ++ memset(P.personal, 0, sizeof(P.personal)); ++ ++- if (blake2b_init_param(S, &P) < 0) { +++ if (blake2b_init_param_wowseed(S, &P) < 0) { ++ blake2b_invalidate_state(S); ++ return -1; ++ } ++@@ -156,7 +156,7 @@ int blake2b_init_key(blake2b_state *S, size_t outlen, const void *key, ++ uint8_t block[BLAKE2B_BLOCKBYTES]; ++ memset(block, 0, BLAKE2B_BLOCKBYTES); ++ memcpy(block, key, keylen); ++- blake2b_update(S, block, BLAKE2B_BLOCKBYTES); +++ blake2b_update_wowseed(S, block, BLAKE2B_BLOCKBYTES); ++ /* Burn the key from stack */ ++ clear_internal_memory(block, BLAKE2B_BLOCKBYTES); ++ } ++@@ -221,7 +221,7 @@ static void blake2b_compress(blake2b_state *S, const uint8_t *block) { ++ #undef ROUND ++ } ++ ++-int blake2b_update(blake2b_state *S, const void *in, size_t inlen) { +++int blake2b_update_wowseed(blake2b_state *S, const void *in, size_t inlen) { ++ const uint8_t *pin = (const uint8_t *)in; ++ ++ if (inlen == 0) { ++@@ -261,7 +261,7 @@ int blake2b_update(blake2b_state *S, const void *in, size_t inlen) { ++ return 0; ++ } ++ ++-int blake2b_final(blake2b_state *S, void *out, size_t outlen) { +++int blake2b_final_wowseed(blake2b_state *S, void *out, size_t outlen) { ++ uint8_t buffer[BLAKE2B_OUTBYTES] = {0}; ++ unsigned int i; ++ ++@@ -291,7 +291,7 @@ int blake2b_final(blake2b_state *S, void *out, size_t outlen) { ++ return 0; ++ } ++ ++-int blake2b(void *out, size_t outlen, const void *in, size_t inlen, +++int blake2b_wowseed(void *out, size_t outlen, const void *in, size_t inlen, ++ const void *key, size_t keylen) { ++ blake2b_state S; ++ int ret = -1; ++@@ -310,19 +310,19 @@ int blake2b(void *out, size_t outlen, const void *in, size_t inlen, ++ } ++ ++ if (keylen > 0) { ++- if (blake2b_init_key(&S, outlen, key, keylen) < 0) { +++ if (blake2b_init_key_wowseed(&S, outlen, key, keylen) < 0) { ++ goto fail; ++ } ++ } else { ++- if (blake2b_init(&S, outlen) < 0) { +++ if (blake2b_init_wowseed(&S, outlen) < 0) { ++ goto fail; ++ } ++ } ++ ++- if (blake2b_update(&S, in, inlen) < 0) { +++ if (blake2b_update_wowseed(&S, in, inlen) < 0) { ++ goto fail; ++ } ++- ret = blake2b_final(&S, out, outlen); +++ ret = blake2b_final_wowseed(&S, out, outlen); ++ ++ fail: ++ clear_internal_memory(&S, sizeof(S)); ++@@ -352,25 +352,25 @@ int blake2b_long(void *pout, size_t outlen, const void *in, size_t inlen) { ++ } while ((void)0, 0) ++ ++ if (outlen <= BLAKE2B_OUTBYTES) { ++- TRY(blake2b_init(&blake_state, outlen)); ++- TRY(blake2b_update(&blake_state, outlen_bytes, sizeof(outlen_bytes))); ++- TRY(blake2b_update(&blake_state, in, inlen)); ++- TRY(blake2b_final(&blake_state, out, outlen)); +++ TRY(blake2b_init_wowseed(&blake_state, outlen)); +++ TRY(blake2b_update_wowseed(&blake_state, outlen_bytes, sizeof(outlen_bytes))); +++ TRY(blake2b_update_wowseed(&blake_state, in, inlen)); +++ TRY(blake2b_final_wowseed(&blake_state, out, outlen)); ++ } else { ++ uint32_t toproduce; ++ uint8_t out_buffer[BLAKE2B_OUTBYTES]; ++ uint8_t in_buffer[BLAKE2B_OUTBYTES]; ++- TRY(blake2b_init(&blake_state, BLAKE2B_OUTBYTES)); ++- TRY(blake2b_update(&blake_state, outlen_bytes, sizeof(outlen_bytes))); ++- TRY(blake2b_update(&blake_state, in, inlen)); ++- TRY(blake2b_final(&blake_state, out_buffer, BLAKE2B_OUTBYTES)); +++ TRY(blake2b_init_wowseed(&blake_state, BLAKE2B_OUTBYTES)); +++ TRY(blake2b_update_wowseed(&blake_state, outlen_bytes, sizeof(outlen_bytes))); +++ TRY(blake2b_update_wowseed(&blake_state, in, inlen)); +++ TRY(blake2b_final_wowseed(&blake_state, out_buffer, BLAKE2B_OUTBYTES)); ++ memcpy(out, out_buffer, BLAKE2B_OUTBYTES / 2); ++ out += BLAKE2B_OUTBYTES / 2; ++ toproduce = (uint32_t)outlen - BLAKE2B_OUTBYTES / 2; ++ ++ while (toproduce > BLAKE2B_OUTBYTES) { ++ memcpy(in_buffer, out_buffer, BLAKE2B_OUTBYTES); ++- TRY(blake2b(out_buffer, BLAKE2B_OUTBYTES, in_buffer, +++ TRY(blake2b_wowseed(out_buffer, BLAKE2B_OUTBYTES, in_buffer, ++ BLAKE2B_OUTBYTES, NULL, 0)); ++ memcpy(out, out_buffer, BLAKE2B_OUTBYTES / 2); ++ out += BLAKE2B_OUTBYTES / 2; ++@@ -378,7 +378,7 @@ int blake2b_long(void *pout, size_t outlen, const void *in, size_t inlen) { ++ } ++ ++ memcpy(in_buffer, out_buffer, BLAKE2B_OUTBYTES); ++- TRY(blake2b(out_buffer, toproduce, in_buffer, BLAKE2B_OUTBYTES, NULL, +++ TRY(blake2b_wowseed(out_buffer, toproduce, in_buffer, BLAKE2B_OUTBYTES, NULL, ++ 0)); ++ memcpy(out, out_buffer, toproduce); ++ } ++diff --git a/src/argon2/core.c b/src/argon2/core.c ++index 5eafe08..f59db34 100644 ++--- a/src/argon2/core.c +++++ b/src/argon2/core.c ++@@ -439,31 +439,31 @@ void initial_hash(uint8_t *blockhash, argon2_context *context, ++ return; ++ } ++ ++- blake2b_init(&BlakeHash, ARGON2_PREHASH_DIGEST_LENGTH); +++ blake2b_init_wowseed(&BlakeHash, ARGON2_PREHASH_DIGEST_LENGTH); ++ ++ store32(&value, context->lanes); ++- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); +++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); ++ ++ store32(&value, context->outlen); ++- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); +++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); ++ ++ store32(&value, context->m_cost); ++- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); +++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); ++ ++ store32(&value, context->t_cost); ++- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); +++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); ++ ++ store32(&value, context->version); ++- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); +++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); ++ ++ store32(&value, (uint32_t)type); ++- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); +++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); ++ ++ store32(&value, context->pwdlen); ++- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); +++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); ++ ++ if (context->pwd != NULL) { ++- blake2b_update(&BlakeHash, (const uint8_t *)context->pwd, +++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)context->pwd, ++ context->pwdlen); ++ ++ if (context->flags & ARGON2_FLAG_CLEAR_PASSWORD) { ++@@ -473,18 +473,18 @@ void initial_hash(uint8_t *blockhash, argon2_context *context, ++ } ++ ++ store32(&value, context->saltlen); ++- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); +++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); ++ ++ if (context->salt != NULL) { ++- blake2b_update(&BlakeHash, (const uint8_t *)context->salt, +++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)context->salt, ++ context->saltlen); ++ } ++ ++ store32(&value, context->secretlen); ++- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); +++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); ++ ++ if (context->secret != NULL) { ++- blake2b_update(&BlakeHash, (const uint8_t *)context->secret, +++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)context->secret, ++ context->secretlen); ++ ++ if (context->flags & ARGON2_FLAG_CLEAR_SECRET) { ++@@ -494,14 +494,14 @@ void initial_hash(uint8_t *blockhash, argon2_context *context, ++ } ++ ++ store32(&value, context->adlen); ++- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); +++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value)); ++ ++ if (context->ad != NULL) { ++- blake2b_update(&BlakeHash, (const uint8_t *)context->ad, +++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)context->ad, ++ context->adlen); ++ } ++ ++- blake2b_final(&BlakeHash, blockhash, ARGON2_PREHASH_DIGEST_LENGTH); +++ blake2b_final_wowseed(&BlakeHash, blockhash, ARGON2_PREHASH_DIGEST_LENGTH); ++ } ++ ++ int initialize(argon2_instance_t *instance, argon2_context *context) { ++-- ++2.44.0 +-- +2.44.0 + |
