diff options
author | jsing <> | 2025-09-01 15:18:55 +0000 |
---|---|---|
committer | jsing <> | 2025-09-01 15:18:55 +0000 |
commit | a71d96fc5f06e3d4eaad85e2958a525f4f6fd26e (patch) | |
tree | 716e58c0b7089352696e32cb14fff6470d591d72 /src | |
parent | b788687c68f1df8051cd54ab960dd9f91c4671d8 (diff) | |
download | openbsd-a71d96fc5f06e3d4eaad85e2958a525f4f6fd26e.tar.gz openbsd-a71d96fc5f06e3d4eaad85e2958a525f4f6fd26e.tar.bz2 openbsd-a71d96fc5f06e3d4eaad85e2958a525f4f6fd26e.zip |
Use bn_sqr_words() from bn_mod_sqr_words().
Use bn_sqr_words() and bn_montgomery_reduce_words(), rather than using
bn_montgomery_multiply_words(). This provides better performance on
architectures that have assembly optimised bn_sqr_words(), such as amd64.
ok tb@
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libcrypto/bn/bn_mod_words.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/lib/libcrypto/bn/bn_mod_words.c b/src/lib/libcrypto/bn/bn_mod_words.c index d9aee8701a..7c07b49fab 100644 --- a/src/lib/libcrypto/bn/bn_mod_words.c +++ b/src/lib/libcrypto/bn/bn_mod_words.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_mod_words.c,v 1.3 2025/08/05 15:15:54 jsing Exp $ */ | 1 | /* $OpenBSD: bn_mod_words.c,v 1.4 2025/09/01 15:18:55 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2024 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2024 Joel Sing <jsing@openbsd.org> |
4 | * | 4 | * |
@@ -100,15 +100,13 @@ bn_mod_sqr_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *m, | |||
100 | { | 100 | { |
101 | if (n == 4) { | 101 | if (n == 4) { |
102 | bn_sqr_comba4(t, a); | 102 | bn_sqr_comba4(t, a); |
103 | bn_montgomery_reduce_words(r, t, m, m0, n); | ||
104 | } else if (n == 6) { | 103 | } else if (n == 6) { |
105 | bn_sqr_comba6(t, a); | 104 | bn_sqr_comba6(t, a); |
106 | bn_montgomery_reduce_words(r, t, m, m0, n); | ||
107 | } else if (n == 8) { | 105 | } else if (n == 8) { |
108 | bn_sqr_comba8(t, a); | 106 | bn_sqr_comba8(t, a); |
109 | bn_montgomery_reduce_words(r, t, m, m0, n); | ||
110 | } else { | 107 | } else { |
111 | bn_montgomery_multiply_words(r, a, a, m, t, m0, n); | 108 | bn_sqr_words(t, a, n); |
112 | } | 109 | } |
110 | bn_montgomery_reduce_words(r, t, m, m0, n); | ||
113 | } | 111 | } |
114 | #endif | 112 | #endif |