Skip to content

Commit f1d014a

Browse files
committed
add .github/workflows/symbol-prefixes.yml.
configure.ac: * add ML-KEM, ML-DSA, XMSS, and LMS to --enable-all-crypto when !ENABLED_FIPS. * swap order of --enable-kyber and --enable-mlkem handler code to put mlkem first. * add --enable-mldsa hander code. * remove setup code that was adding -DWOLFSSL_NO_TLS12 and -DNO_OLD_TLS to AM_CFLAGS when ENABLED_CRYPTONLY -- NO_OLD_TLS is already defined earlier for when ENABLED_CRYPTONLY, and WOLFSSL_NO_TLS12 breaks wc_PRF_TLS(), which is inside-the-FIPS-boundary crypto. linuxkm/linuxkm_wc_port.h: * adopt the WC_SANITIZE_DISABLE and WC_SANITIZE_ENABLE setup code from settings.h (where it didn't belong). * fix FIPS remapping of wc_InitMutex&friends to InitMutex&friends -- inhibit when WOLFSSL_API_PREFIX_MAP. wolfcrypt/src/ge_operations.c: add _wc_curve25519_dummy() to fix visibility of curve25519(). wolfcrypt/src/poly1305.c: fix visibility of several unprefixed helper routines. wolfcrypt/test/test.c: fix gating on tls12_kdf_test() and prf_test() (both require !WOLFSSL_NO_TLS12). wolfssl/internal.h, wolfssl/wolfio.h: add several WOLFSSL_API_PREFIX_MAPs. wolfssl/wolfcrypt/ge_operations.h: fix visibility of several internal asm functions. wolfssl/wolfcrypt/settings.h: in WOLFSSL_LINUXKM setup, add gates to avoid redef warnings for various settings, and remove the setup for WC_SANITIZE_{DISABLE,ENABLE} (moved to linuxkm_wc_port.h as noted above). wolfssl/wolfcrypt/wc_port.h: add WOLFSSL_API_PREFIX_MAPs for InitMutex() and friends.
1 parent f070ae1 commit f1d014a

11 files changed

Lines changed: 214 additions & 86 deletions

File tree

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
name: WOLFSSL_API_PREFIX_MAP
2+
3+
# START OF COMMON SECTION
4+
on:
5+
push:
6+
branches: [ 'master', 'main', 'release/**' ]
7+
pull_request:
8+
branches: [ '*' ]
9+
10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.ref }}
12+
cancel-in-progress: true
13+
# END OF COMMON SECTION
14+
15+
jobs:
16+
make_and_analyze:
17+
strategy:
18+
matrix:
19+
config: [
20+
'--enable-all CFLAGS=-DWOLFSSL_API_PREFIX_MAP'
21+
]
22+
name: make and analyze
23+
if: github.repository_owner == 'wolfssl'
24+
runs-on: ubuntu-22.04
25+
# This should be a safe limit for the tests to run.
26+
timeout-minutes: 6
27+
steps:
28+
- uses: actions/checkout@v4
29+
name: Checkout wolfSSL
30+
31+
- name: Test --enable-opensslcoexist and TEST_OPENSSL_COEXIST
32+
run: |
33+
./autogen.sh || $(exit 2)
34+
./configure ${{ matrix.config }} || $(exit 3)
35+
make -j 4 || $(exit 4)
36+
# ignore properly prefixed symbols, and symbols associated with asm implementations (all internal) regardless of prefix:
37+
readelf --symbols --wide src/.libs/libwolfssl.so | \
38+
awk ' \
39+
BEGIN { \
40+
unprefixed_public_symbols = 0; \
41+
} \
42+
{ \
43+
if (($7 == "UND") || \
44+
($8 ~ /^(wc_|wolf|WOLF|__pfx|fe_|sp_[a-zA-Z090-0_]*[0-9])/) || \
45+
($8 ~ /(_avx[12]|_AVX[12]|_sse[12]|_SSE[12]|_aesni|_AESNI|_bmi2|_x64$)/)) \
46+
{ \
47+
next; \
48+
} \
49+
} \
50+
{ \
51+
if (($4 == "FUNC") && ($5 == "GLOBAL") && ($6 == "DEFAULT")) { \
52+
++unprefixed_public_symbols; \
53+
print; \
54+
} \
55+
} \
56+
END { \
57+
if (unprefixed_public_symbols) { \
58+
print unprefixed_public_symbols " unprefixed public symbols found." >"/dev/stderr";
59+
exit(1); \
60+
} else { \
61+
print "no unprefixed public symbols found."
62+
exit(0); \
63+
} \
64+
}' || $(exit 5)

configure.ac

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1385,6 +1385,10 @@ then
13851385
test "$enable_ed448_stream" = "" && test "$enable_ed448" != "no" && enable_ed448_stream=yes
13861386
test "$enable_aessiv" = "" && enable_aessiv=yes
13871387
test "$enable_aeseax" = "" && enable_aeseax=yes
1388+
test "$enable_mlkem" = "" && test "$enable_kyber" = "" && enable_mlkem=yes
1389+
test "$enable_mldsa" = "" && test "$enable_dilithium" = "" && enable_mldsa=yes
1390+
test "$enable_xmss" = "" && enable_xmss=yes
1391+
test "$enable_lms" = "" && enable_lms=yes
13881392

13891393
if test "$ENABLED_LINUXKM_DEFAULTS" != "yes"
13901394
then
@@ -1503,14 +1507,14 @@ AC_ARG_WITH([liboqs],
15031507
# MLKEM
15041508
# Used:
15051509
# - SHA3, Shake128 and Shake256
1506-
AC_ARG_ENABLE([kyber],
1507-
[AS_HELP_STRING([--enable-kyber],[Enable Kyber/MLKEM (default: disabled)])],
1510+
AC_ARG_ENABLE([mlkem],
1511+
[AS_HELP_STRING([--enable-mlkem],[Enable MLKEM (default: disabled)])],
15081512
[ ENABLED_MLKEM=$enableval ],
15091513
[ ENABLED_MLKEM=no ]
15101514
)
1511-
# note, inherits default from "kyber" clause above.
1512-
AC_ARG_ENABLE([mlkem],
1513-
[AS_HELP_STRING([--enable-mlkem],[Enable MLKEM (default: disabled)])],
1515+
# note, inherits default from "mlkem" clause above.
1516+
AC_ARG_ENABLE([kyber],
1517+
[AS_HELP_STRING([--enable-kyber],[Enable Kyber/MLKEM (default: disabled)])],
15141518
[ ENABLED_MLKEM=$enableval ]
15151519
)
15161520

@@ -1639,11 +1643,16 @@ fi
16391643

16401644
# Dilithium
16411645
# - SHA3, Shake128, Shake256 and AES-CTR
1642-
AC_ARG_ENABLE([dilithium],
1643-
[AS_HELP_STRING([--enable-dilithium],[Enable DILITHIUM (default: disabled)])],
1646+
AC_ARG_ENABLE([mldsa],
1647+
[AS_HELP_STRING([--enable-mldsa],[Enable MLDSA (default: disabled)])],
16441648
[ ENABLED_DILITHIUM=$enableval ],
16451649
[ ENABLED_DILITHIUM=no ]
16461650
)
1651+
# note, inherits default from "mldsa" clause above.
1652+
AC_ARG_ENABLE([dilithium],
1653+
[AS_HELP_STRING([--enable-dilithium],[Enable Dilithium/MLDSA (default: disabled)])],
1654+
[ ENABLED_DILITHIUM=$enableval ]
1655+
)
16471656

16481657
ENABLED_DILITHIUM_OPTS=$ENABLED_DILITHIUM
16491658
ENABLED_DILITHIUM_MAKE_KEY=no
@@ -4924,15 +4933,6 @@ AC_ARG_ENABLE([tlsv12],
49244933
[ ENABLED_TLSV12=yes ]
49254934
)
49264935

4927-
if test "$ENABLED_CRYPTONLY" = "yes"
4928-
then
4929-
ENABLED_TLSV12=no
4930-
fi
4931-
if test "$ENABLED_TLSV12" = "no"
4932-
then
4933-
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_NO_TLS12 -DNO_OLD_TLS"
4934-
fi
4935-
49364936
# STACK SIZE info for testwolfcrypt and examples
49374937
AC_ARG_ENABLE([stacksize],
49384938
[AS_HELP_STRING([--enable-stacksize],[Enable stack size info on examples (default: disabled)])],

linuxkm/linuxkm_wc_port.h

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,15 @@
228228

229229
#include <linux/kconfig.h>
230230

231+
#ifdef CONFIG_KASAN
232+
#ifndef WC_SANITIZE_DISABLE
233+
#define WC_SANITIZE_DISABLE() kasan_disable_current()
234+
#endif
235+
#ifndef WC_SANITIZE_ENABLE
236+
#define WC_SANITIZE_ENABLE() kasan_enable_current()
237+
#endif
238+
#endif
239+
231240
#if defined(CONFIG_FORTIFY_SOURCE) && \
232241
!defined(WC_FORCE_LINUXKM_FORTIFY_SOURCE) && \
233242
(defined(HAVE_LINUXKM_PIE_SUPPORT) || \
@@ -1286,12 +1295,13 @@
12861295
#endif /* WOLFSSL_USE_SAVE_VECTOR_REGISTERS */
12871296
#endif /* !BUILDING_WOLFSSL */
12881297

1289-
/* Copied from wc_port.h: For FIPS keep the function names the same */
1290-
#ifdef HAVE_FIPS
1291-
#define wc_InitMutex InitMutex
1292-
#define wc_FreeMutex FreeMutex
1293-
#define wc_LockMutex LockMutex
1294-
#define wc_UnLockMutex UnLockMutex
1298+
/* Copied from wc_port.h */
1299+
#if defined(HAVE_FIPS) && !defined(WOLFSSL_API_PREFIX_MAP)
1300+
/* For FIPS keep the function names the same */
1301+
#define wc_InitMutex InitMutex
1302+
#define wc_FreeMutex FreeMutex
1303+
#define wc_LockMutex LockMutex
1304+
#define wc_UnLockMutex UnLockMutex
12951305
#endif /* HAVE_FIPS */
12961306

12971307
#ifdef WOLFSSL_LINUXKM_USE_MUTEXES

wolfcrypt/src/ge_operations.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9817,4 +9817,17 @@ void ge_tobytes(unsigned char *s,const ge_p2 *h)
98179817
}
98189818

98199819
#endif /* !ED25519_SMALL */
9820+
9821+
/* if HAVE_ED25519 but not HAVE_CURVE25519, and an asm implementation is built,
9822+
* then curve25519() won't get its WOLFSSL_LOCAL attribute unless we dummy-call
9823+
* it here.
9824+
*/
9825+
#if defined(WOLFSSL_API_PREFIX_MAP) && !defined(HAVE_CURVE25519) && \
9826+
!defined(FREESCALE_LTC_ECC)
9827+
WOLFSSL_LOCAL void _wc_curve25519_dummy(void);
9828+
WOLFSSL_LOCAL void _wc_curve25519_dummy(void) {
9829+
(void)curve25519((byte *)0, (byte *)0, (const byte *)0);
9830+
}
9831+
#endif
9832+
98209833
#endif /* HAVE_ED25519 */

wolfcrypt/src/poly1305.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -139,29 +139,29 @@ static cpuid_flags_t intel_flags = WC_CPUID_INITIALIZER;
139139
* ctx Poly1305 context.
140140
* m One block of message data.
141141
*/
142-
extern void poly1305_block_avx(Poly1305* ctx, const unsigned char *m);
142+
WOLFSSL_LOCAL void poly1305_block_avx(Poly1305* ctx, const unsigned char *m);
143143
/* Process multiple blocks (n * 16 bytes) of data.
144144
*
145145
* ctx Poly1305 context.
146146
* m Blocks of message data.
147147
* bytes The number of bytes to process.
148148
*/
149-
extern void poly1305_blocks_avx(Poly1305* ctx, const unsigned char* m,
149+
WOLFSSL_LOCAL void poly1305_blocks_avx(Poly1305* ctx, const unsigned char* m,
150150
size_t bytes);
151151
/* Set the key to use when processing data.
152152
* Initialize the context.
153153
*
154154
* ctx Poly1305 context.
155155
* key The key data (16 bytes).
156156
*/
157-
extern void poly1305_setkey_avx(Poly1305* ctx, const byte* key);
157+
WOLFSSL_LOCAL void poly1305_setkey_avx(Poly1305* ctx, const byte* key);
158158
/* Calculate the final result - authentication data.
159159
* Zeros out the private data in the context.
160160
*
161161
* ctx Poly1305 context.
162162
* mac Buffer to hold 16 bytes.
163163
*/
164-
extern void poly1305_final_avx(Poly1305* ctx, byte* mac);
164+
WOLFSSL_LOCAL void poly1305_final_avx(Poly1305* ctx, byte* mac);
165165
#endif
166166

167167
#ifdef HAVE_INTEL_AVX2
@@ -171,29 +171,29 @@ extern void poly1305_final_avx(Poly1305* ctx, byte* mac);
171171
* m Blocks of message data.
172172
* bytes The number of bytes to process.
173173
*/
174-
extern void poly1305_blocks_avx2(Poly1305* ctx, const unsigned char* m,
174+
WOLFSSL_LOCAL void poly1305_blocks_avx2(Poly1305* ctx, const unsigned char* m,
175175
size_t bytes);
176176
/* Calculate R^1, R^2, R^3 and R^4 and store them in the context.
177177
*
178178
* ctx Poly1305 context.
179179
*/
180-
extern void poly1305_calc_powers_avx2(Poly1305* ctx);
180+
WOLFSSL_LOCAL void poly1305_calc_powers_avx2(Poly1305* ctx);
181181
/* Set the key to use when processing data.
182182
* Initialize the context.
183183
* Calls AVX set key function as final function calls AVX code.
184184
*
185185
* ctx Poly1305 context.
186186
* key The key data (16 bytes).
187187
*/
188-
extern void poly1305_setkey_avx2(Poly1305* ctx, const byte* key);
188+
WOLFSSL_LOCAL void poly1305_setkey_avx2(Poly1305* ctx, const byte* key);
189189
/* Calculate the final result - authentication data.
190190
* Zeros out the private data in the context.
191191
* Calls AVX final function to quickly process last blocks.
192192
*
193193
* ctx Poly1305 context.
194194
* mac Buffer to hold 16 bytes - authentication data.
195195
*/
196-
extern void poly1305_final_avx2(Poly1305* ctx, byte* mac);
196+
WOLFSSL_LOCAL void poly1305_final_avx2(Poly1305* ctx, byte* mac);
197197
#endif
198198

199199
#ifdef __cplusplus

wolfcrypt/test/test.c

Lines changed: 20 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -608,14 +608,12 @@ static wc_test_ret_t hkdf_test(void);
608608
WOLFSSL_TEST_SUBROUTINE wc_test_ret_t hkdf_test(void);
609609
#endif
610610
#endif /* HAVE_HKDF && ! NO_HMAC */
611-
#ifdef WOLFSSL_HAVE_PRF
612-
#if defined(HAVE_HKDF) && !defined(NO_HMAC)
613-
#ifdef WOLFSSL_BASE16
611+
#if defined(WOLFSSL_HAVE_PRF) && defined(HAVE_HKDF) && !defined(NO_HMAC) && \
612+
defined(WOLFSSL_BASE16) && !defined(WOLFSSL_NO_TLS12)
614613
WOLFSSL_TEST_SUBROUTINE wc_test_ret_t tls12_kdf_test(void);
615-
#endif /* WOLFSSL_BASE16 */
616-
#endif /* WOLFSSL_HAVE_HKDF && !NO_HMAC */
617-
#endif /* WOLFSSL_HAVE_PRF */
618-
#if defined(WOLFSSL_HAVE_PRF) && !defined(NO_HMAC) && defined(WOLFSSL_SHA384)
614+
#endif
615+
#if defined(WOLFSSL_HAVE_PRF) && !defined(NO_HMAC) && \
616+
defined(WOLFSSL_SHA384) && !defined(WOLFSSL_NO_TLS12)
619617
WOLFSSL_TEST_SUBROUTINE wc_test_ret_t prf_test(void);
620618
#endif
621619
WOLFSSL_TEST_SUBROUTINE wc_test_ret_t sshkdf_test(void);
@@ -1921,27 +1919,26 @@ options: [-s max_relative_stack_bytes] [-m max_relative_heap_memory_bytes]\n\
19211919
PRIVATE_KEY_LOCK();
19221920
#endif /* WOLFSSL_WOLFSSH */
19231921

1924-
#if defined(WOLFSSL_HAVE_PRF) && !defined(NO_HMAC) && defined(WOLFSSL_SHA384)
1922+
#if defined(WOLFSSL_HAVE_PRF) && !defined(NO_HMAC) && \
1923+
defined(WOLFSSL_SHA384) && !defined(WOLFSSL_NO_TLS12)
19251924
PRIVATE_KEY_UNLOCK();
19261925
if ( (ret = prf_test()) != 0)
19271926
TEST_FAIL("PRF test failed!\n", ret);
19281927
else
19291928
TEST_PASS("PRF test passed!\n");
19301929
PRIVATE_KEY_LOCK();
1931-
#endif
1930+
#endif /* WOLFSSL_HAVE_PRF && !NO_HMAC && WOLFSSL_SHA384 && !WOLFSSL_NO_TLS12 */
19321931

1933-
#ifdef WOLFSSL_HAVE_PRF
1934-
#if defined (HAVE_HKDF) && !defined(NO_HMAC)
1935-
#ifdef WOLFSSL_BASE16
1932+
#if defined(WOLFSSL_HAVE_PRF) && defined(HAVE_HKDF) && !defined(NO_HMAC) && \
1933+
defined(WOLFSSL_BASE16) && !defined(WOLFSSL_NO_TLS12)
19361934
PRIVATE_KEY_UNLOCK();
19371935
if ( (ret = tls12_kdf_test()) != 0)
19381936
TEST_FAIL("TLSv1.2 KDF test failed!\n", ret);
19391937
else
19401938
TEST_PASS("TLSv1.2 KDF test passed!\n");
19411939
PRIVATE_KEY_LOCK();
1942-
#endif /* WOLFSSL_BASE16 */
1943-
#endif /* WOLFSSL_HAVE_HKDF && !NO_HMAC */
1944-
#endif /* WOLFSSL_HAVE_PRF */
1940+
#endif /* WOLFSSL_HAVE_PRF && HAVE_HKDF && !NO_HMAC && */
1941+
/* WOLFSSL_BASE16 && !WOLFSSL_NO_TLS12 */
19451942

19461943
#ifdef WOLFSSL_TLS13
19471944
PRIVATE_KEY_UNLOCK();
@@ -28154,7 +28151,8 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t sshkdf_test(void)
2815428151

2815528152
#endif /* WOLFSSL_WOLFSSH */
2815628153

28157-
#if defined(WOLFSSL_HAVE_PRF) && !defined(NO_HMAC) && defined(WOLFSSL_SHA384)
28154+
#if defined(WOLFSSL_HAVE_PRF) && !defined(NO_HMAC) && \
28155+
defined(WOLFSSL_SHA384) && !defined(WOLFSSL_NO_TLS12)
2815828156
#define DIGL 12
2815928157
#define SECL 48
2816028158
#define LBSL 63
@@ -28203,11 +28201,10 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t prf_test(void)
2820328201

2820428202
return 0;
2820528203
}
28206-
#endif /* WOLFSSL_HAVE_PRF && !NO_HMAC */
28204+
#endif /* WOLFSSL_HAVE_PRF && !NO_HMAC && WOLFSSL_SHA384 && !WOLFSSL_NO_TLS12 */
2820728205

28208-
#ifdef WOLFSSL_HAVE_PRF
28209-
#if defined(HAVE_HKDF) && !defined(NO_HMAC)
28210-
#ifdef WOLFSSL_BASE16
28206+
#if defined(WOLFSSL_HAVE_PRF) && defined(HAVE_HKDF) && !defined(NO_HMAC) && \
28207+
defined(WOLFSSL_BASE16) && !defined(WOLFSSL_NO_TLS12)
2821128208
WOLFSSL_TEST_SUBROUTINE wc_test_ret_t tls12_kdf_test(void)
2821228209
{
2821328210
const char* preMasterSecret = "D06F9C19BFF49B1E91E4EFE97345D089"
@@ -28252,16 +28249,15 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t tls12_kdf_test(void)
2825228249
if (ret == WC_NO_ERR_TRACE(FIPS_PRIVATE_KEY_LOCKED_E)) {
2825328250
printf(" wc_PRF_TLSv12: Private key locked.\n");
2825428251
}
28255-
return WC_TEST_RET_ENC_NC;
28252+
return WC_TEST_RET_ENC_EC(ret);
2825628253
}
2825728254

2825828255
if (XMEMCMP(result, ms, msSz) != 0)
2825928256
return WC_TEST_RET_ENC_NC;
2826028257
return 0;
2826128258
}
28262-
#endif /* WOLFSSL_BASE16 */
28263-
#endif /* WOLFSSL_HAVE_HKDF && !NO_HMAC */
28264-
#endif /* WOLFSSL_HAVE_PRF */
28259+
#endif /* WOLFSSL_HAVE_PRF && HAVE_HKDF && !NO_HMAC && */
28260+
/* WOLFSSL_BASE16 && !WOLFSSL_NO_TLS12 */
2826528261

2826628262
#ifdef WOLFSSL_TLS13
2826728263

wolfssl/internal.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7000,6 +7000,12 @@ WOLFSSL_LOCAL void DtlsSetSeqNumForReply(WOLFSSL* ssl);
70007000
#endif
70017001

70027002
#ifdef WOLFSSL_DTLS13
7003+
#ifdef WOLFSSL_API_PREFIX_MAP
7004+
#define Dtls13GetEpoch wolfSSL_Dtls13GetEpoch
7005+
#define Dtls13CheckEpoch wolfSSL_Dtls13CheckEpoch
7006+
#define Dtls13WriteAckMessage wolfSSL_Dtls13WriteAckMessage
7007+
#define Dtls13RtxAddAck wolfSSL_Dtls13RtxAddAck
7008+
#endif
70037009

70047010
WOLFSSL_TEST_VIS struct Dtls13Epoch* Dtls13GetEpoch(WOLFSSL* ssl,
70057011
w64wrapper epochNumber);
@@ -7096,6 +7102,9 @@ typedef struct CRYPTO_EX_cb_ctx {
70967102
} CRYPTO_EX_cb_ctx;
70977103

70987104
WOLFSSL_TEST_VIS extern CRYPTO_EX_cb_ctx* crypto_ex_cb_ctx_session;
7105+
#ifdef WOLFSSL_API_PREFIX_MAP
7106+
#define crypto_ex_cb_free wolfSSL_crypto_ex_cb_free
7107+
#endif
70997108
WOLFSSL_TEST_VIS void crypto_ex_cb_free(CRYPTO_EX_cb_ctx* cb_ctx);
71007109
WOLFSSL_LOCAL void crypto_ex_cb_setup_new_data(void *new_obj,
71017110
CRYPTO_EX_cb_ctx* cb_ctx, WOLFSSL_CRYPTO_EX_DATA* ex_data);

wolfssl/wolfcrypt/ge_operations.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -114,14 +114,14 @@ typedef struct {
114114
} ge_cached;
115115

116116
#ifdef CURVED25519_ASM
117-
void ge_p1p1_to_p2(ge_p2 *r, const ge_p1p1 *p);
118-
void ge_p1p1_to_p3(ge_p3 *r, const ge_p1p1 *p);
119-
void ge_p2_dbl(ge_p1p1 *r, const ge_p2 *p);
117+
WOLFSSL_LOCAL void ge_p1p1_to_p2(ge_p2 *r, const ge_p1p1 *p);
118+
WOLFSSL_LOCAL void ge_p1p1_to_p3(ge_p3 *r, const ge_p1p1 *p);
119+
WOLFSSL_LOCAL void ge_p2_dbl(ge_p1p1 *r, const ge_p2 *p);
120120
#define ge_p3_dbl(r, p) ge_p2_dbl((ge_p1p1 *)(r), (ge_p2 *)(p))
121-
void ge_madd(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q);
122-
void ge_msub(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q);
123-
void ge_add(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q);
124-
void ge_sub(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q);
121+
WOLFSSL_LOCAL void ge_madd(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q);
122+
WOLFSSL_LOCAL void ge_msub(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q);
123+
WOLFSSL_LOCAL void ge_add(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q);
124+
WOLFSSL_LOCAL void ge_sub(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q);
125125
#endif
126126
#endif /* !ED25519_SMALL */
127127

0 commit comments

Comments
 (0)