Skip to content

Commit a526990

Browse files
committed
tests: cover private-key flag rejection on export
1 parent 8313029 commit a526990

4 files changed

Lines changed: 14 additions & 12 deletions

File tree

tests/api/test_curve25519.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -450,8 +450,9 @@ int test_wc_curve25519_export_private_raw_ex(void)
450450

451451
ExpectIntEQ(wc_curve25519_init(&key), 0);
452452

453+
/* Reject export when private key not set (privSet == 0). */
453454
ExpectIntEQ(wc_curve25519_export_private_raw_ex(&key, out, &outLen, endian),
454-
0);
455+
WC_NO_ERR_TRACE(ECC_BAD_ARG_E));
455456
/* test bad cases */
456457
ExpectIntEQ(wc_curve25519_export_private_raw_ex(NULL, NULL, NULL, endian),
457458
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
@@ -461,11 +462,6 @@ int test_wc_curve25519_export_private_raw_ex(void)
461462
endian), WC_NO_ERR_TRACE(BAD_FUNC_ARG));
462463
ExpectIntEQ(wc_curve25519_export_private_raw_ex(&key, out, NULL, endian),
463464
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
464-
ExpectIntEQ(wc_curve25519_export_private_raw_ex(&key, out, &outLen,
465-
EC25519_LITTLE_ENDIAN), 0);
466-
outLen = outLen - 2;
467-
ExpectIntEQ(wc_curve25519_export_private_raw_ex(&key, out, &outLen, endian),
468-
WC_NO_ERR_TRACE(ECC_BAD_ARG_E));
469465

470466
wc_curve25519_free(&key);
471467
#endif

tests/api/test_curve448.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,9 @@ int test_wc_curve448_export_private_raw_ex(void)
169169
int endian = EC448_BIG_ENDIAN;
170170

171171
ExpectIntEQ(wc_curve448_init(&key), 0);
172+
/* Reject export when private key not set (privSet == 0). */
172173
ExpectIntEQ(wc_curve448_export_private_raw_ex(&key, out, &outLen, endian),
173-
0);
174+
WC_NO_ERR_TRACE(ECC_BAD_ARG_E));
174175
/* test bad cases */
175176
ExpectIntEQ(wc_curve448_export_private_raw_ex(NULL, NULL, NULL, endian),
176177
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
@@ -180,11 +181,6 @@ int test_wc_curve448_export_private_raw_ex(void)
180181
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
181182
ExpectIntEQ(wc_curve448_export_private_raw_ex(&key, out, NULL, endian),
182183
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
183-
ExpectIntEQ(wc_curve448_export_private_raw_ex(&key, out, &outLen,
184-
EC448_LITTLE_ENDIAN), 0);
185-
outLen = outLen - 2;
186-
ExpectIntEQ(wc_curve448_export_private_raw_ex(&key, out, &outLen, endian),
187-
WC_NO_ERR_TRACE(ECC_BAD_ARG_E));
188184

189185
wc_curve448_free(&key);
190186
#endif

tests/api/test_ed25519.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,11 @@ int test_wc_ed25519_export(void)
347347
XMEMSET(&rng, 0, sizeof(WC_RNG));
348348

349349
ExpectIntEQ(wc_ed25519_init(&key), 0);
350+
/* Reject export when private key not set. */
351+
ExpectIntEQ(wc_ed25519_export_private_only(&key, priv, &privSz),
352+
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
353+
ExpectIntEQ(wc_ed25519_export_private(&key, priv, &privSz),
354+
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
350355
ExpectIntEQ(wc_InitRng(&rng), 0);
351356
#ifdef HAVE_ED25519_MAKE_KEY
352357
ExpectIntEQ(wc_ed25519_make_key(&rng, ED25519_KEY_SIZE, &key), 0);

tests/api/test_ed448.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,11 @@ int test_wc_ed448_export(void)
324324
XMEMSET(&rng, 0, sizeof(WC_RNG));
325325

326326
ExpectIntEQ(wc_ed448_init(&key), 0);
327+
/* Reject export when private key not set. */
328+
ExpectIntEQ(wc_ed448_export_private_only(&key, priv, &privSz),
329+
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
330+
ExpectIntEQ(wc_ed448_export_private(&key, priv, &privSz),
331+
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
327332
ExpectIntEQ(wc_InitRng(&rng), 0);
328333
ExpectIntEQ(wc_ed448_make_key(&rng, ED448_KEY_SIZE, &key), 0);
329334

0 commit comments

Comments
 (0)