summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjsing <>2025-09-01 15:18:55 +0000
committerjsing <>2025-09-01 15:18:55 +0000
commita71d96fc5f06e3d4eaad85e2958a525f4f6fd26e (patch)
tree716e58c0b7089352696e32cb14fff6470d591d72 /src
parentb788687c68f1df8051cd54ab960dd9f91c4671d8 (diff)
downloadopenbsd-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.c8
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