Daniele Lacamera
75b7b1b366
Falcon: add tests/api/test_falcon.c API unit tests
...
Falcon had crypto-level coverage (KAT + native round-trip in
wolfcrypt/test/test.c) but, unlike ML-DSA and SLH-DSA, no dedicated
tests/api/ unit test exercising the public wc_falcon_* / wc_Falcon_* API
surface. This adds one, wired into the unit test runner as the "falcon"
group.
Coverage (both Falcon-512 / L1 and Falcon-1024 / L5, which are always
compiled together):
- sizes: size/priv_size/pub_size/sig_size vs the spec constants,
get_level round-trip, and NULL / unset-level rejection.
- make_key: NULL and unset-level rejection; real keygen -> check_key.
- sign_vfy: sign -> verify; wrong-message and one-byte tamper rejected;
too-small buffer -> BUFFER_E with the required length set;
verify with no public key -> BAD_FUNC_ARG.
- import_export: public / private-only (raw) / private (concat) / export_key
round-trips, each re-signed or verified, plus too-small
(BUFFER_E) and wrong-size (BAD_FUNC_ARG) paths.
- check_key: valid pass; corrupted public copy, public-only and
private-only keys all fail (PUBLIC_KEY_E); NULL rejected.
- der: KeyToDer / PrivateKeyToDer / PublicKeyToDer round-trips via
PrivateKeyDecode / PublicKeyDecode, size-query (NULL output),
and the SetAsymKeyDer too-small contract (BAD_FUNC_ARG).
- error_paths: exhaustive NULL / bad-level / wrong-size / no-key-set
argument sanitising for every public entry point.
Tests requiring key generation or signing are gated on
WC_FALCON_HAVE_NATIVE_SIGN so the file also builds in
WOLFSSL_FALCON_VERIFY_ONLY and WOLF_CRYPTO_CB_ONLY_FALCON configurations;
size and argument-sanitising tests run in every HAVE_FALCON build.
Verified: 7/7 pass under both --enable-falcon-avx2 and the default
constant-time build; compiles clean with WOLFSSL_FALCON_VERIFY_ONLY.
2026-07-22 09:52:26 +02:00
..
2026-02-18 09:52:21 -07:00
2026-07-07 02:35:51 -05:00
2026-07-10 18:56:51 +02:00
2026-07-22 09:52:26 +02:00
2026-07-21 18:40:13 -06:00
2026-07-09 10:02:21 +02:00
2026-06-10 11:36:29 +02:00
2026-06-10 11:36:29 +02:00
2026-02-18 09:52:21 -07:00
2026-05-11 21:07:53 -07:00
2026-04-15 17:05:32 +10:00
2026-07-09 10:02:22 +02:00
2026-07-09 10:02:21 +02:00
2026-04-07 13:18:53 -05:00
2026-02-18 09:52:21 -07:00
2026-07-02 11:36:01 +02:00
2026-07-02 11:36:01 +02:00
2026-07-09 10:02:21 +02:00
2026-06-18 14:52:08 -06:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-07-13 11:19:23 +02:00
2026-07-13 11:19:23 +02:00
2026-07-13 12:24:16 +02:00
2026-07-13 11:19:23 +02:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-07-13 11:19:24 +02:00
2026-07-13 11:19:23 +02:00
2026-06-10 11:36:59 +02:00
2026-06-10 11:36:59 +02:00
2026-07-13 11:52:22 +02:00
2026-07-13 11:19:23 +02:00
2026-02-18 09:52:21 -07:00
2026-07-13 11:19:24 +02:00
2026-07-13 11:19:23 +02:00
2026-07-03 01:03:36 -05:00
2026-07-03 01:03:36 -05:00
2026-07-09 10:02:56 +09:00
2026-07-09 10:02:56 +09:00
2026-07-13 11:19:24 +02:00
2026-07-13 11:19:23 +02:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-07-20 21:54:32 -05:00
2026-07-13 11:19:23 +02:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-06-04 17:26:48 -05:00
2026-03-05 08:51:52 -06:00
2026-05-06 15:25:06 -06:00
2026-02-18 09:52:21 -07:00
2026-07-08 12:20:33 -07:00
2026-06-08 15:30:39 +02:00
2026-07-07 16:41:15 -07:00
2026-02-18 09:52:21 -07:00
2026-07-22 09:52:26 +02:00
2026-07-22 09:52:26 +02:00
2026-07-17 22:38:55 +10:00
2026-07-17 22:38:55 +10:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-07-13 14:13:46 +02:00
2026-07-13 11:19:23 +02:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-05-13 11:36:36 -06:00
2026-02-18 09:52:21 -07:00
2026-05-13 11:36:36 -06:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-06-04 18:29:24 +10:00
2026-07-21 10:08:11 +10:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-07-10 11:51:52 -07:00
2026-07-17 13:21:01 -07:00
2026-07-17 13:21:01 -07:00
2026-07-07 17:41:49 -07:00
2026-02-18 09:52:21 -07:00
2026-07-02 11:36:01 +02:00
2026-07-02 11:36:01 +02:00
2026-04-13 15:50:26 +02:00
2026-02-18 09:52:21 -07:00
2026-06-10 11:36:29 +02:00
2026-05-07 02:33:58 +00:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-04-06 00:53:57 -05:00
2026-02-18 09:52:21 -07:00
2026-05-27 15:38:30 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-06-26 14:44:16 -06:00
2026-06-16 20:19:22 +02:00
2026-06-25 14:44:03 -06:00
2026-05-22 19:24:53 +03:00
2026-05-14 16:59:12 +00:00
2026-05-14 16:59:12 +00:00
2026-07-07 00:19:47 -05:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-07-08 09:33:47 +10:00
2026-07-08 09:33:47 +10:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-07-13 11:56:57 -06:00
2026-07-13 11:56:57 -06:00
2026-07-09 10:02:22 +02:00
2026-07-09 10:02:21 +02:00
2026-06-26 14:44:16 -06:00
2026-02-18 09:52:21 -07:00
2026-06-04 10:38:37 -07:00
2026-06-04 10:38:37 -07:00
2026-04-28 10:06:47 +00:00
2026-04-28 10:06:47 +00:00
2026-06-26 14:44:16 -06:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-07-07 16:02:27 +02:00
2026-07-07 16:02:27 +02:00
2026-07-09 10:02:21 +02:00
2026-02-18 09:52:21 -07:00
2026-07-09 10:02:21 +02:00
2026-07-07 16:02:27 +02:00
2026-07-17 13:50:17 +02:00
2026-07-17 13:50:17 +02:00
2026-07-09 10:02:22 +02:00
2026-07-09 10:02:21 +02:00
2026-07-13 11:19:23 +02:00
2026-04-10 15:43:21 +10:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-07-02 11:36:01 +02:00
2026-07-02 11:36:01 +02:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-07-13 14:13:46 +02:00
2026-07-09 10:02:21 +02:00
2026-05-28 19:34:09 +10:00
2026-05-28 19:34:09 +10:00
2026-07-13 17:48:56 +10:00
2026-07-13 17:48:56 +10:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-07-13 11:19:24 +02:00
2026-06-04 20:21:50 +02:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-04-15 18:03:39 -06:00
2026-04-15 11:28:03 -06:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-04-14 13:25:15 +10:00
2026-04-14 13:25:15 +10:00
2026-06-10 12:05:00 -05:00
2026-06-10 09:11:59 +10:00
2026-07-09 10:27:57 -07:00
2026-07-08 06:17:36 +02:00
2026-06-10 12:05:00 -05:00
2026-06-10 09:11:59 +10:00
2026-07-17 11:04:24 +02:00
2026-07-17 11:04:24 +02:00
2026-06-26 14:44:16 -06:00
2026-06-11 15:29:51 -07:00
2026-07-08 10:52:59 -07:00
2026-07-08 10:52:59 -07:00
2026-07-08 09:33:47 +10:00
2026-07-08 09:33:47 +10:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-07-17 08:56:03 +02:00
2026-06-04 18:29:24 +10:00
2026-04-13 17:02:51 -05:00