summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libcrypto/bn/bn_nist.c52
1 files changed, 30 insertions, 22 deletions
diff --git a/src/lib/libcrypto/bn/bn_nist.c b/src/lib/libcrypto/bn/bn_nist.c
index 51b59020c7..6b51bb10f0 100644
--- a/src/lib/libcrypto/bn/bn_nist.c
+++ b/src/lib/libcrypto/bn/bn_nist.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: bn_nist.c,v 1.21 2022/07/30 18:03:36 jsing Exp $ */ 1/* $OpenBSD: bn_nist.c,v 1.22 2022/07/31 14:38:38 jsing Exp $ */
2/* 2/*
3 * Written by Nils Larsch for the OpenSSL project 3 * Written by Nils Larsch for the OpenSSL project
4 */ 4 */
@@ -464,12 +464,13 @@ static void nist_cp_bn(BN_ULONG *dst, const BN_ULONG *src, int top)
464int 464int
465BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, BN_CTX *ctx) 465BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, BN_CTX *ctx)
466{ 466{
467 int top = a->top, i;
468 int carry;
469 BN_ULONG *r_d, *a_d = a->d;
470 BN_ULONG bnbuf[BN_NIST_192_TOP] = { 0 }; 467 BN_ULONG bnbuf[BN_NIST_192_TOP] = { 0 };
471 BN_ULONG c_d[BN_NIST_192_TOP], *res; 468 BN_ULONG c_d[BN_NIST_192_TOP] = { 0 };
469 BN_ULONG *a_d = a->d;
470 BN_ULONG *r_d, *res;
472 uintptr_t mask; 471 uintptr_t mask;
472 int top = a->top;
473 int carry, i;
473 474
474 field = &_bignum_nist_p_192; /* just to make sure */ 475 field = &_bignum_nist_p_192; /* just to make sure */
475 476
@@ -611,13 +612,14 @@ typedef BN_ULONG (*bn_addsub_f)(BN_ULONG *, const BN_ULONG *,
611int 612int
612BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, BN_CTX *ctx) 613BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, BN_CTX *ctx)
613{ 614{
614 int top = a->top, i;
615 int carry;
616 BN_ULONG *r_d, *a_d = a->d;
617 BN_ULONG bnbuf[BN_NIST_224_TOP] = { 0 }; 615 BN_ULONG bnbuf[BN_NIST_224_TOP] = { 0 };
618 BN_ULONG c_d[BN_NIST_224_TOP], *res; 616 BN_ULONG c_d[BN_NIST_224_TOP] = { 0 };
619 uintptr_t mask; 617 BN_ULONG *a_d = a->d;
618 BN_ULONG *r_d, *res;
620 bn_addsub_f addsubf; 619 bn_addsub_f addsubf;
620 uintptr_t mask;
621 int top = a->top;
622 int carry, i;
621 623
622 field = &_bignum_nist_p_224; /* just to make sure */ 624 field = &_bignum_nist_p_224; /* just to make sure */
623 625
@@ -794,13 +796,14 @@ BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, BN_CTX *ctx)
794int 796int
795BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, BN_CTX *ctx) 797BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, BN_CTX *ctx)
796{ 798{
797 int i, top = a->top;
798 int carry = 0;
799 BN_ULONG *a_d = a->d, *r_d;
800 BN_ULONG bnbuf[BN_NIST_256_TOP] = { 0 }; 799 BN_ULONG bnbuf[BN_NIST_256_TOP] = { 0 };
801 BN_ULONG c_d[BN_NIST_256_TOP] = {0}, *res; 800 BN_ULONG c_d[BN_NIST_256_TOP] = { 0 };
802 uintptr_t mask; 801 BN_ULONG *a_d = a->d;
802 BN_ULONG *r_d, *res;
803 bn_addsub_f addsubf; 803 bn_addsub_f addsubf;
804 uintptr_t mask;
805 int top = a->top;
806 int carry, i;
804 807
805 field = &_bignum_nist_p_256; /* just to make sure */ 808 field = &_bignum_nist_p_256; /* just to make sure */
806 809
@@ -1025,13 +1028,14 @@ BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, BN_CTX *ctx)
1025int 1028int
1026BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, BN_CTX *ctx) 1029BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, BN_CTX *ctx)
1027{ 1030{
1028 int i, top = a->top;
1029 int carry = 0;
1030 BN_ULONG *r_d, *a_d = a->d;
1031 BN_ULONG bnbuf[BN_NIST_384_TOP] = { 0 }; 1031 BN_ULONG bnbuf[BN_NIST_384_TOP] = { 0 };
1032 BN_ULONG c_d[BN_NIST_384_TOP], *res; 1032 BN_ULONG c_d[BN_NIST_384_TOP] = { 0 };
1033 uintptr_t mask; 1033 BN_ULONG *a_d = a->d;
1034 BN_ULONG *r_d, *res;
1034 bn_addsub_f addsubf; 1035 bn_addsub_f addsubf;
1036 uintptr_t mask;
1037 int top = a->top;
1038 int carry, i;
1035 1039
1036 field = &_bignum_nist_p_384; /* just to make sure */ 1040 field = &_bignum_nist_p_384; /* just to make sure */
1037 1041
@@ -1277,9 +1281,13 @@ BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, BN_CTX *ctx)
1277int 1281int
1278BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, BN_CTX *ctx) 1282BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, BN_CTX *ctx)
1279{ 1283{
1280 int top = a->top, i; 1284 BN_ULONG t_d[BN_NIST_521_TOP] = { 0 };
1281 BN_ULONG *r_d, *a_d = a->d, t_d[BN_NIST_521_TOP], val, tmp, *res; 1285 BN_ULONG *a_d = a->d;
1286 BN_ULONG *r_d, *res;
1287 BN_ULONG tmp, val;
1282 uintptr_t mask; 1288 uintptr_t mask;
1289 int top = a->top;
1290 int i;
1283 1291
1284 field = &_bignum_nist_p_521; /* just to make sure */ 1292 field = &_bignum_nist_p_521; /* just to make sure */
1285 1293