From 10fb06532ed0492d1fc376608cf97ef48704ea0b Mon Sep 17 00:00:00 2001 From: Daniele Lacamera Date: Wed, 1 Jul 2026 10:37:54 +0200 Subject: [PATCH] Falcon: remove FN-DSA / FIPS 206 references from code comments and text Scrub the temporary "FN-DSA" name and the "FIPS 206" designation from all in-tree comments, build text, and message strings, leaving the algorithm named only as "Falcon". The eventual standardized name is not announced. The differential known-answer test message ("wolfSSL FN-DSA differential KAT") is a signed input, so the Falcon-512/1024 public keys and signatures in wolfcrypt/test/test.c (and the mirrored Falcon-512 vector in IDE/m33mu-falcon-verify/kat.h) were regenerated with liboqs over the new message "wolfSSL Falcon differential KAT", preserving the differential property (liboqs-produced signatures verified by the native verifier). Verified: testwolfcrypt Falcon test passes; the m33mu verify-only harness passes (BKPT 0x7f) with the regenerated vector. --- .github/workflows/falcon-interop.yml | 8 +- CMakeLists.txt | 10 +- IDE/m33mu-falcon-verify/kat.h | 264 ++++---- configure.ac | 14 +- scripts/falcon-interop.c | 8 +- wolfcrypt/src/wc_falcon.c | 6 +- wolfcrypt/src/wc_falcon_bigint.c | 2 +- wolfcrypt/src/wc_falcon_codec.c | 2 +- wolfcrypt/src/wc_falcon_fft.c | 2 +- wolfcrypt/src/wc_falcon_fft_avx2.c | 2 +- wolfcrypt/src/wc_falcon_fft_neon.c | 2 +- wolfcrypt/src/wc_falcon_fpr.c | 2 +- wolfcrypt/src/wc_falcon_fpr_x86_64_asm.S | 2 +- wolfcrypt/src/wc_falcon_keygen.c | 2 +- wolfcrypt/src/wc_falcon_poly.c | 2 +- wolfcrypt/src/wc_falcon_sampler.c | 8 +- wolfcrypt/src/wc_falcon_sign.c | 2 +- wolfcrypt/test/test.c | 787 ++++++++++++----------- wolfssl/wolfcrypt/settings.h | 6 +- wolfssl/wolfcrypt/wc_falcon_bigint.h | 4 +- wolfssl/wolfcrypt/wc_falcon_codec.h | 2 +- wolfssl/wolfcrypt/wc_falcon_fft.h | 2 +- wolfssl/wolfcrypt/wc_falcon_fpr.h | 2 +- wolfssl/wolfcrypt/wc_falcon_keygen.h | 6 +- wolfssl/wolfcrypt/wc_falcon_poly.h | 2 +- wolfssl/wolfcrypt/wc_falcon_sampler.h | 2 +- wolfssl/wolfcrypt/wc_falcon_sign.h | 2 +- 27 files changed, 576 insertions(+), 577 deletions(-) diff --git a/.github/workflows/falcon-interop.yml b/.github/workflows/falcon-interop.yml index a0ce678d87..f8b487d789 100644 --- a/.github/workflows/falcon-interop.yml +++ b/.github/workflows/falcon-interop.yml @@ -1,4 +1,4 @@ -name: FN-DSA (Falcon) native<->liboqs interop Tests +name: Falcon native<->liboqs interop Tests # START OF COMMON SECTION on: @@ -83,7 +83,7 @@ jobs: retention-days: 1 falcon_interop: - name: Interop (native FN-DSA vs liboqs Falcon) + name: Interop (native Falcon vs liboqs Falcon) if: ${{ (github.repository_owner == 'wolfssl') && (github.event_name != 'pull_request' || github.event.pull_request.draft == false) }} runs-on: ubuntu-24.04 needs: build_liboqs @@ -117,13 +117,13 @@ jobs: with: fetch-depth: 1 - - name: Build wolfSSL with native FN-DSA + - name: Build wolfSSL with native Falcon run: | ./autogen.sh ./configure --enable-falcon --enable-experimental --enable-static make -j$(nproc) - - name: Build and run the interop harness (native FN-DSA vs liboqs) + - name: Build and run the interop harness (native Falcon vs liboqs) run: | gcc -O2 -I. -I$GITHUB_WORKSPACE/oqs-install/include \ scripts/falcon-interop.c \ diff --git a/CMakeLists.txt b/CMakeLists.txt index dbcd89ae33..2b70096645 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -987,10 +987,10 @@ if (WOLFSSL_MLDSA OR WOLFSSL_DILITHIUM) set_wolfssl_definitions("WOLFSSL_SHAKE256" RESULT) endif() -# FN-DSA (native Falcon, FIPS 206 draft). Native implementation: no liboqs -# dependency (unlike WOLFSSL_FALCON). Needs SHA-3 / SHAKE256 for hash-to-point. +# Native Falcon. Native implementation: no liboqs dependency. Needs SHA-3 / +# SHAKE256 for hash-to-point. add_option(WOLFSSL_FALCON - "Enable the native wolfSSL PQ FN-DSA/Falcon (FIPS 206) implementation (default: disabled)" + "Enable the native wolfSSL PQ Falcon implementation (default: disabled)" "no" "yes;no") if (WOLFSSL_FALCON) @@ -1053,8 +1053,8 @@ if (WOLFSSL_EXPERIMENTAL) set_wolfssl_definitions("WOLFSSL_EXPERIMENTAL_SETTINGS" RESULT) - # Native Falcon (FN-DSA) is an experimental feature (unstandardized; API - # name subject to change). It has no liboqs dependency. + # Native Falcon is an experimental feature (unstandardized; API name + # subject to change). It has no liboqs dependency. if (WOLFSSL_FALCON) set(WOLFSSL_FOUND_EXPERIMENTAL_FEATURE 1) endif() diff --git a/IDE/m33mu-falcon-verify/kat.h b/IDE/m33mu-falcon-verify/kat.h index 91f7c9ce2f..a4eb13f371 100644 --- a/IDE/m33mu-falcon-verify/kat.h +++ b/IDE/m33mu-falcon-verify/kat.h @@ -1,140 +1,140 @@ /* Falcon-512 KAT extracted from wolfcrypt/test/test.c */ #include -#define FALCON_KAT_MSG "wolfSSL FN-DSA differential KAT" -#define FALCON512_SIGLEN 654 +#define FALCON_KAT_MSG "wolfSSL Falcon differential KAT" +#define FALCON512_SIGLEN 656 static const byte FALCON512_pk[] = { -0x09,0x8d,0x15,0xc5,0x31,0x5b,0xa1,0x8a,0x92,0x2d,0x93,0x81, -0x26,0x93,0xa7,0x05,0x1a,0xf2,0x92,0x99,0x0c,0x67,0x77,0x30, -0xdf,0x03,0xb9,0x21,0xbe,0xa1,0x06,0x2e,0x81,0x20,0x6b,0x27, -0x5c,0x7a,0x6d,0x9b,0x1d,0x19,0xb6,0xbc,0x65,0x7c,0xe5,0x02, -0x0a,0xdc,0xa1,0xb9,0x87,0x56,0x6e,0x29,0x0a,0x14,0x85,0x10, -0x80,0xc9,0xc8,0x1b,0x48,0x4c,0x7a,0x28,0x74,0xdc,0x8c,0x38, -0xf8,0x4c,0x8a,0x53,0xe9,0x34,0x03,0x76,0xcc,0x88,0x55,0x2c, -0x48,0x00,0x55,0x3e,0x78,0x0c,0xa4,0xf5,0x3b,0x5d,0xc9,0x77, -0xd9,0xd7,0xec,0xa8,0x28,0xb0,0x4a,0xdb,0xaa,0xa4,0x88,0xcd, -0xde,0xe2,0xc3,0xaf,0xa8,0x15,0x09,0x64,0x9a,0x8f,0x5d,0x37, -0x51,0x26,0xce,0xd3,0x06,0x0c,0x9f,0x35,0x56,0x1f,0x70,0x67, -0x6e,0xf3,0x60,0x90,0x2c,0x54,0x91,0x1c,0xbd,0x3d,0x95,0xa8, -0x54,0x3b,0xc2,0x0e,0x6f,0x90,0x80,0xd7,0xcd,0x03,0x3d,0xa8, -0x05,0x09,0x54,0xab,0xa5,0xec,0x1b,0xe2,0xe7,0x39,0x2c,0x0d, -0xc3,0x53,0xe0,0x34,0xea,0x92,0x1c,0xae,0x2e,0x91,0x68,0x74, -0x82,0xe0,0xdf,0x5d,0x18,0xb8,0xe2,0x47,0xcc,0x84,0x35,0xc4, -0xf7,0x08,0xc7,0x00,0xe8,0xb9,0x64,0x8d,0xe9,0x1b,0xcc,0x2b, -0x28,0x78,0x7a,0x65,0x18,0x67,0x0b,0xb1,0xa9,0x10,0x40,0x8d, -0x1f,0xc5,0x4c,0x64,0xe7,0x99,0xf9,0x0d,0x9f,0xb3,0x71,0x2a, -0xf5,0x2a,0x89,0xd0,0xb2,0xf6,0x80,0x61,0x37,0x50,0x5d,0x16, -0x70,0x82,0x73,0x8e,0x9d,0x59,0x88,0xe9,0x84,0xf7,0x32,0x93, -0xfd,0x24,0x61,0x94,0x2b,0xc6,0xdf,0xf7,0x3b,0x5e,0x05,0x88, -0xc0,0x48,0x2a,0x7c,0x40,0x8a,0x03,0x8f,0x8b,0x3b,0x85,0x7d, -0xe0,0xbb,0x73,0xaf,0xbb,0x4b,0xe9,0xe5,0x76,0x7a,0xd0,0x2c, -0x6a,0xb9,0x60,0x19,0xf7,0xa3,0xc0,0xb0,0x64,0x45,0x71,0xb3, -0x6d,0xdf,0x97,0x59,0x4c,0xc2,0xab,0x0c,0x5b,0x29,0xe1,0x52, -0x21,0x0e,0xcf,0xda,0x4e,0x55,0xc7,0x87,0x39,0x9b,0x0f,0x54, -0x88,0xc4,0xbb,0xe7,0x5b,0xcb,0xb6,0x10,0x80,0x5a,0x16,0x96, -0x8b,0x41,0x9a,0x9a,0x41,0x76,0x88,0x2e,0x02,0xa1,0x83,0x78, -0x19,0x67,0xb2,0x07,0x11,0x55,0x56,0xd3,0x5b,0xea,0x3d,0x19, -0xf9,0x81,0xd8,0xe9,0xa4,0x91,0x94,0x06,0x70,0xb9,0x95,0xbd, -0x7e,0x68,0x05,0x82,0x81,0x8f,0x94,0xab,0x36,0xe8,0xa2,0x4a, -0x02,0x6a,0x33,0x6e,0x00,0x87,0x44,0xe8,0xdc,0xa1,0xee,0xf8, -0x00,0x4d,0xaa,0x81,0x99,0x8e,0x46,0xe8,0x36,0x25,0x0b,0x3e, -0xbe,0xd9,0x03,0x38,0x14,0x62,0x8a,0xb5,0x3e,0x79,0xef,0x69, -0x94,0x41,0x41,0xcf,0x16,0x84,0xa9,0xba,0x0f,0x5a,0xd6,0x48, -0xef,0x57,0x0e,0x76,0xc5,0x89,0xf1,0x71,0x29,0x5f,0xb5,0xe2, -0x09,0x14,0xc3,0xd2,0x3f,0xb1,0xb9,0x41,0xc7,0x91,0xa5,0xda, -0x54,0xb4,0x43,0xba,0xa5,0x50,0xf2,0xa1,0x8d,0x0a,0x59,0x18, -0x1e,0xd1,0x58,0x76,0x1c,0x29,0xfa,0x04,0x8c,0x23,0x66,0xee, -0x8b,0xe1,0x11,0x46,0x0c,0x89,0xe3,0x80,0x56,0xa5,0x70,0xa6, -0x7c,0xf1,0x73,0xf1,0x13,0xe4,0x83,0x25,0xe7,0xea,0xd2,0x8c, -0x39,0x36,0xd6,0x5e,0x4b,0x82,0x5a,0x5e,0xa5,0x0c,0xce,0xaa, -0xb7,0x4e,0x01,0x9b,0x46,0xde,0x81,0xd3,0x2f,0xf7,0xbd,0x60, -0x20,0x77,0xac,0xca,0x62,0x41,0x80,0x1a,0x72,0xe3,0x0d,0x49, -0x74,0x16,0xff,0xe7,0xb0,0x65,0xb3,0xa2,0xda,0x6d,0xe1,0x34, -0x4f,0x0e,0xa7,0xb2,0xdf,0xf2,0x9d,0x6d,0xe3,0x78,0x36,0xe9, -0x43,0x7e,0x0b,0xab,0x0e,0xa8,0xe3,0xf1,0x77,0x27,0x78,0x9d, -0xfd,0x43,0x44,0xdd,0xc8,0x3b,0x1f,0x71,0xc6,0xe5,0xef,0xe2, -0x8c,0x7e,0xc6,0x63,0x8b,0x29,0x24,0x34,0x6a,0xcd,0xd8,0xf4, -0xa8,0x5b,0x7b,0xa6,0x38,0x8f,0x3b,0x59,0x8a,0xff,0xb4,0xbc, -0xd6,0xd5,0x0a,0xc0,0xc3,0x7c,0x40,0x80,0x78,0x31,0x41,0x17, -0x23,0xde,0x28,0xe2,0x79,0x2d,0xeb,0x7b,0xee,0xf6,0x65,0xff, -0xe5,0xf7,0x45,0x86,0x13,0xeb,0xf1,0xc3,0xd8,0x82,0x3c,0xcb, -0x44,0xc9,0xde,0xcc,0x36,0x2d,0x68,0x85,0x64,0x66,0x74,0x81, -0xc0,0x21,0xc2,0xe0,0x53,0xa9,0x05,0xae,0xec,0x05,0x86,0xe6, -0x34,0x88,0xea,0x5e,0x5a,0x6a,0xc2,0xdf,0x51,0x65,0x5c,0x80, -0xc5,0xce,0xe9,0xb8,0x4a,0x88,0x08,0x10,0x56,0xe5,0x29,0xb2, -0x44,0x69,0x73,0x4c,0x4d,0x04,0x21,0xf6,0xc0,0x8b,0xed,0xec, -0x80,0x84,0x08,0xbb,0x6c,0xe0,0xef,0xbb,0xce,0xd8,0x12,0x9a, -0x8d,0x1a,0x54,0x41,0xba,0x63,0xc9,0xa8,0xfe,0x97,0x72,0x2c, -0xe9,0xb7,0xe4,0xa4,0x3e,0xda,0x73,0xa1,0xcc,0x86,0x40,0xb8, -0xae,0x7d,0x91,0x52,0x40,0xe7,0x1b,0x3d,0x0f,0xeb,0x7a,0x4e, -0x0d,0x36,0x0c,0x0d,0xf2,0x00,0xaf,0x08,0x70,0xa5,0x6d,0xa2, -0xf5,0x0b,0xc3,0x51,0x70,0x34,0xc6,0x1d,0x16,0x00,0x5c,0xb6, -0x65,0x71,0x9e,0x8d,0x47,0x35,0x6d,0xae,0xfa,0x6d,0x91,0x05, -0x26,0xfd,0x89,0x45,0x14,0x13,0x90,0x3a,0xd8,0xb4,0x11,0xd1, -0xef,0x57,0x63,0x62,0xea,0xc6,0x6c,0x2c,0xf9,0x0b,0x9c,0xa8, -0xa1,0x01,0x40,0x46,0x87,0x2e,0xe0,0xdb,0x90,0x6f,0x4b,0x10, -0xf2,0x95,0xd1,0x3e,0xdb,0xfd,0x6b,0x0c,0xcc,0x7b,0x73,0x5f, -0x2c,0x98,0x8e,0xb0,0x35,0x7c,0xaa,0x99,0x72,0xf9,0x3d,0x64, -0xc4,0x8f,0x09,0x5f,0xbc,0xeb,0x02,0xb2,0x22,0xff,0x08,0xf8, -0x8a,0xa3,0x0d,0x0e,0xa0,0xb6,0xec,0x89,0x36,0xbf,0x8d,0x8e, -0x0f,0xcd,0x3a,0x76,0xd5,0x19,0xe3,0xa8,0xe6,0x73,0x01,0x47, -0x55,0x05,0x09,0xb5,0x51,0xda,0x10,0x4f,0xd9, +0x09,0xb5,0x78,0xda,0xb5,0x88,0xee,0x60,0x41,0xb2,0xe3,0xb3, +0xd8,0x02,0x2b,0x97,0x98,0x8d,0x55,0xd8,0x5c,0xf5,0xba,0xbc, +0x18,0x0b,0x5e,0x12,0xda,0x92,0x6e,0x2d,0xfa,0x34,0xdf,0x23, +0xad,0x49,0x21,0x57,0xd5,0xa4,0x7c,0x30,0x48,0x7a,0x30,0x16, +0xdb,0x62,0xa3,0x4c,0xaf,0x7b,0x14,0x14,0xa5,0xa2,0x9d,0x5b, +0xbb,0xe7,0xce,0x29,0x79,0x65,0x0e,0x26,0x8f,0x89,0xf5,0x2f, +0xc9,0x19,0x00,0x8e,0x2d,0x72,0x65,0xda,0xe2,0x01,0x83,0x01, +0x6c,0x00,0xd4,0xeb,0xc3,0x3d,0x2a,0xe2,0x5e,0x52,0x7b,0xa2, +0xee,0x47,0x20,0xbc,0x99,0x3d,0xa7,0xf9,0xa2,0x53,0x2f,0x6c, +0xb8,0x46,0xa2,0x59,0xc5,0xab,0x72,0xf2,0x3b,0xf2,0xee,0x5f, +0x1b,0xe6,0xa5,0x89,0x9a,0x95,0x38,0x9e,0x5e,0x33,0xea,0x45, +0xaa,0x13,0x97,0x7e,0x3b,0x33,0x1a,0x41,0x81,0xb9,0x12,0x8d, +0x36,0xb9,0x47,0xb8,0x1b,0xb8,0x85,0x56,0x9c,0x9a,0xc0,0x4c, +0x64,0x7e,0x39,0xdf,0x67,0x6b,0x4f,0x6e,0x99,0x85,0x43,0x82, +0x1d,0x2c,0x59,0xf1,0x59,0x82,0x9b,0xfa,0x8b,0x15,0x11,0x59, +0x20,0x51,0x65,0x32,0x81,0xc4,0x86,0xe4,0x5e,0x81,0xac,0xc8, +0x0b,0x29,0x14,0xdc,0xa6,0x25,0x04,0x61,0x87,0x5f,0x95,0x82, +0xa2,0xc4,0x1d,0x18,0x56,0x44,0x35,0xb2,0xf0,0x1d,0xd4,0x91, +0xa6,0x90,0x2b,0x4d,0x03,0x10,0xf9,0x49,0xe9,0x72,0xe8,0x5a, +0xfa,0x61,0xc5,0x85,0x33,0xf4,0xb1,0x96,0xc3,0x07,0x8b,0xb5, +0x5c,0x33,0xe5,0xab,0xc3,0x5a,0x02,0x59,0x68,0xe9,0x97,0x66, +0x69,0x78,0x40,0xbe,0x23,0xcd,0x16,0xc3,0x86,0x98,0x10,0xf8, +0x95,0x83,0x8e,0x7c,0xc8,0xe6,0xc7,0xf1,0x1f,0x61,0xa8,0x99, +0xc9,0xd2,0xe9,0x6b,0x2f,0x31,0x1d,0x44,0xd1,0x8b,0x64,0xef, +0x05,0xee,0x6c,0x20,0x0c,0xee,0x33,0x3c,0x1e,0xdb,0xb8,0x8e, +0x4a,0x00,0x33,0x0d,0x65,0x2b,0x66,0x1c,0xee,0x60,0x01,0xc7, +0xd5,0x9e,0xaa,0xd9,0x2c,0xb9,0x76,0x12,0x8f,0x4a,0x66,0x78, +0x84,0xb3,0xf5,0xaf,0xe3,0xfd,0xb2,0x90,0x18,0x50,0x9c,0x99, +0xbd,0x6b,0x2a,0x65,0xa8,0x9e,0xcc,0x8b,0x85,0xce,0xa0,0x54, +0x70,0xae,0x19,0xad,0xb1,0xef,0xc2,0x5b,0xa7,0x96,0x95,0x12, +0xa8,0x30,0x8b,0x15,0xc3,0x21,0x4d,0x57,0x88,0xfd,0x58,0x76, +0x6a,0x62,0xcf,0x15,0x39,0x09,0x5f,0x47,0x32,0x03,0xe6,0x38, +0xad,0x1a,0x4e,0xfd,0x1b,0x12,0xe8,0x2b,0x5d,0x29,0xc1,0x61, +0xaa,0x7e,0x85,0x20,0xad,0x10,0xfa,0x62,0x8e,0x4a,0xed,0x62, +0x74,0x3e,0xd1,0xbd,0xdf,0xbe,0x24,0x15,0x24,0xf1,0xbe,0x61, +0xe0,0x8a,0x09,0x7c,0x24,0x78,0xee,0x31,0x96,0x36,0xdf,0xa0, +0x53,0xab,0x0c,0x25,0x50,0x9f,0x70,0x80,0x43,0x80,0x58,0x8a, +0x17,0xb0,0x1f,0x25,0x3a,0x37,0xd0,0xd5,0xa0,0xfd,0x5c,0x8b, +0x41,0x69,0x79,0x63,0x7c,0x63,0xc9,0xa6,0x51,0x6a,0xe4,0x01, +0x8c,0x7e,0x65,0xe1,0x3c,0x37,0xc7,0x14,0x28,0x49,0x89,0x89, +0xeb,0x8e,0x8e,0xd4,0x2a,0x96,0x6e,0x25,0x00,0x82,0x1d,0x9b, +0xcc,0xdc,0x5a,0xad,0x66,0xa8,0xa1,0xbc,0xaa,0x80,0x63,0xe0, +0x69,0x28,0x42,0x16,0xc2,0xbc,0xca,0xae,0xa3,0xec,0xab,0xca, +0xf2,0x65,0xe8,0x70,0x44,0x6a,0x37,0x64,0xeb,0xe5,0x6a,0x94, +0x0f,0x76,0x80,0x63,0x73,0x5e,0x61,0xb8,0xf6,0xc7,0x1b,0x05, +0x77,0xcc,0x20,0xc2,0x80,0x63,0x5e,0x68,0xe4,0x0e,0x33,0xf5, +0x03,0x06,0x5f,0x04,0xaf,0x1a,0x08,0xd7,0x57,0x3b,0x59,0xbb, +0x05,0xc7,0x9b,0xf0,0x99,0x7c,0x37,0x43,0xb6,0x0f,0xac,0x17, +0x34,0x99,0xc9,0xa3,0x62,0x86,0x70,0xd0,0x35,0x33,0x56,0xec, +0xa8,0x8f,0xd6,0x6c,0x56,0xef,0xca,0x08,0x72,0xca,0x31,0x18, +0xa8,0x6d,0x1d,0x7c,0x1c,0xee,0x71,0x00,0x46,0x13,0x88,0x64, +0x18,0x26,0x33,0x4f,0x4f,0x93,0xd8,0xbd,0x21,0xe3,0x55,0x2d, +0x79,0x9a,0x83,0xf6,0xe7,0x63,0x9b,0x87,0xbd,0xc6,0xa8,0x64, +0xec,0x8b,0xb7,0x34,0x4f,0xa5,0xe7,0x2a,0x91,0x98,0x50,0x18, +0x75,0xbe,0x20,0x5f,0x15,0x4d,0xd6,0x8a,0x43,0xc4,0xf4,0x1f, +0x41,0x34,0xa8,0xf0,0x21,0xa1,0x6d,0xfd,0x8b,0xf5,0xa0,0xee, +0x27,0x1a,0x6d,0xb0,0xcb,0xf9,0x11,0x16,0x87,0x5d,0xf1,0xa6, +0x64,0xe1,0xae,0x68,0x1c,0xd1,0x90,0xf4,0xda,0xc5,0x9f,0x38, +0xbc,0x06,0xd0,0x5f,0x1c,0x0c,0xfa,0x52,0xa4,0xa8,0x59,0xb8, +0x9b,0xf2,0x0b,0x26,0x6c,0xdf,0x25,0x54,0x8c,0x78,0x02,0x1e, +0x4f,0xff,0x77,0x61,0xc3,0xcb,0x96,0xac,0xb2,0x7e,0xb2,0xba, +0x3b,0x46,0x56,0xe6,0x6d,0xce,0x8e,0x52,0x30,0x54,0x95,0x9f, +0xb4,0x37,0xd8,0x7e,0x28,0x29,0x3b,0x50,0x75,0x40,0xfa,0x5b, +0x1e,0xae,0xee,0x7c,0x31,0x90,0x01,0x4e,0x6a,0xfa,0x0e,0x44, +0x42,0x11,0xa4,0xb9,0x6a,0xcf,0x36,0x60,0x9d,0xac,0xa6,0x15, +0x4c,0x60,0x77,0xee,0x82,0x55,0x20,0x92,0x66,0xd8,0x57,0xe0, +0xa9,0xc6,0x8a,0x4a,0x31,0x2b,0x94,0x61,0x30,0x44,0x51,0x63, +0xcb,0x8f,0x62,0x9c,0x01,0x48,0xb8,0x1d,0x92,0x45,0x76,0x96, +0xb0,0xf7,0xd4,0xd6,0x81,0x46,0x6f,0xab,0xc1,0x40,0xc8,0x74, +0x00,0xbf,0x38,0xe8,0xe0,0x7b,0xad,0x25,0xe0,0x2b,0x45,0x15, +0xc8,0x96,0x60,0x1b,0xd8,0xed,0xe2,0x5a,0x0c,0x41,0xf3,0x0a, +0x2c,0x57,0x57,0x55,0x50,0x2e,0x91,0x34,0x0c,0xa1,0x4a,0x70, +0x18,0xc3,0xa2,0x0f,0x3d,0x46,0xbc,0x0b,0xa7,0xfc,0xd3,0x7d, +0x23,0x09,0x85,0x5b,0x29,0xe7,0xed,0x5a,0x20,0x0e,0x85,0x91, +0xa5,0x3a,0x4c,0x18,0xa6,0x35,0xd4,0xd3,0x98, }; static const byte FALCON512_sig[] = { -0x39,0xf9,0x52,0x91,0x34,0x81,0x6f,0x8a,0xd6,0x02,0x62,0x7b, -0x16,0xa3,0x0f,0x19,0xee,0x36,0x30,0x9a,0xe3,0xbd,0x02,0xf7, -0x12,0x4c,0x04,0xb7,0x45,0x2b,0x55,0x65,0xb8,0x7a,0x24,0xca, -0x5b,0xb7,0xde,0xe1,0x86,0x89,0x69,0x90,0xb6,0x12,0x34,0xe2, -0xe2,0x62,0x6d,0x00,0x7a,0x2e,0x75,0x86,0xb6,0x98,0x37,0x69, -0x44,0x58,0xb7,0xab,0xf4,0xa9,0xd6,0x38,0x6f,0x92,0x7e,0x6c, -0x0d,0xcc,0x9c,0x20,0x25,0x45,0x84,0xc5,0x34,0x97,0x94,0xd5, -0xb6,0xa5,0xf4,0x1e,0xac,0x41,0x6b,0xad,0xe4,0x13,0x47,0x01, -0x42,0x86,0xd1,0x50,0xf7,0x09,0x41,0x75,0x69,0x90,0xaf,0xde, -0xd7,0x6b,0xeb,0xd0,0x75,0x77,0x78,0x5a,0xfc,0xb9,0xe3,0xa4, -0x7b,0x6a,0x28,0x67,0x1e,0x56,0xca,0x97,0x71,0x06,0x92,0x1a, -0x5d,0x3e,0x42,0xa7,0x63,0xef,0x2f,0xc6,0x40,0xf1,0x6b,0xb1, -0x1a,0x14,0x2d,0x72,0xac,0x37,0x50,0x05,0xad,0xc1,0xc1,0x74, -0x44,0xc6,0xa7,0xe9,0x62,0x13,0xa2,0x03,0x02,0x67,0x52,0x08, -0x9c,0x9d,0x65,0xb4,0x4b,0x05,0xe4,0xd3,0x43,0x3a,0x91,0x66, -0xf7,0x29,0x13,0x4a,0xfd,0x94,0x8c,0xfa,0x84,0xeb,0xe5,0xd2, -0xd8,0x71,0x91,0x42,0xd9,0xf7,0xae,0x1d,0x88,0x70,0x74,0x33, -0xca,0xae,0xda,0x15,0xc1,0xb7,0xeb,0x11,0x5d,0x39,0x5e,0xc3, -0x76,0x9c,0x3a,0x52,0x1b,0x19,0xe3,0x70,0xdb,0xd2,0x3e,0xe0, -0x47,0x4d,0x74,0x33,0xa5,0xc3,0x5d,0xfc,0x76,0x34,0x2b,0x13, -0x50,0xe6,0x9d,0xb8,0xae,0x44,0x23,0x42,0x95,0x27,0xaf,0x48, -0x9b,0x15,0x11,0x8e,0x13,0xeb,0x36,0xe5,0xe0,0x3d,0xff,0x16, -0x47,0x51,0x20,0xf1,0x4e,0x9a,0x2a,0x22,0x01,0xbd,0xf1,0x40, -0x66,0x74,0xd6,0x52,0x33,0x05,0xb3,0xfe,0xd0,0x5c,0xb7,0x85, -0xc1,0xfb,0x20,0x1e,0x84,0xa2,0x6b,0xcf,0x9b,0xcc,0x8e,0x13, -0x4d,0xa9,0x44,0x92,0x06,0x9c,0x9b,0x3c,0xf3,0x83,0x19,0x58, -0xab,0xe5,0x16,0x4f,0xe2,0x41,0x42,0xd9,0xbc,0xf5,0xa3,0x3b, -0x4e,0x9a,0x5d,0xaf,0x77,0x5d,0xcf,0x9f,0xd2,0x47,0x8c,0x75, -0xb6,0x3d,0x84,0x68,0x36,0xe5,0x15,0x33,0x4c,0xab,0x5a,0x07, -0xa3,0x93,0x6d,0x51,0xc8,0x29,0xc9,0xe1,0xa5,0x57,0x44,0x9a, -0x99,0xab,0x6c,0x5b,0x6e,0xa3,0x26,0xcb,0xea,0xe1,0x0a,0x4a, -0x40,0xb3,0x69,0xbb,0xd6,0xc2,0xcd,0x64,0x35,0x08,0xe9,0x92, -0x61,0x67,0x9f,0x2f,0xc5,0x28,0xc2,0xa0,0x04,0xc9,0xd7,0xf8, -0xd2,0x2b,0x50,0xd6,0x9b,0xf7,0xae,0xf3,0x67,0xd4,0x6a,0x4f, -0x89,0xb4,0x70,0x23,0xe4,0x19,0x97,0x5d,0x86,0xc6,0x2b,0x8f, -0x58,0xd8,0xd6,0x3d,0x59,0x39,0x86,0xa1,0x28,0xc4,0x2b,0xae, -0xf2,0x6d,0x0d,0x76,0x25,0xdc,0x55,0x06,0x73,0x9a,0x27,0xf5, -0x34,0x7f,0xcf,0x9a,0x7a,0xfd,0x1e,0xa5,0xb9,0x66,0x8c,0x9e, -0x78,0x8f,0x9e,0x64,0xcf,0xc8,0xf7,0x73,0x12,0x8a,0x82,0xb3, -0x67,0x03,0xd9,0x1d,0x71,0x63,0x3c,0x5f,0x5e,0x9b,0x2f,0xaf, -0xa1,0x41,0x95,0x47,0x0f,0xff,0x18,0x3e,0xd1,0x09,0x2f,0x23, -0x4e,0x8f,0x4d,0x9b,0xa7,0xe4,0xad,0x47,0xf5,0x17,0xbf,0x86, -0x89,0xd2,0x50,0x6a,0x87,0xdd,0x9e,0xfe,0xf4,0xd0,0xd1,0xa0, -0xcf,0x4f,0x21,0x8c,0x41,0xc5,0xd1,0xa8,0x35,0x9a,0xbe,0xab, -0x95,0x8d,0x5d,0x6d,0x2f,0xbc,0x78,0x8c,0x41,0xee,0xac,0x0c, -0x01,0x48,0x7e,0xd2,0x35,0xba,0x02,0xcc,0x62,0xf9,0xed,0x39, -0x23,0xe2,0x61,0x2d,0xd3,0x61,0x7d,0x43,0x21,0x3a,0x03,0x9c, -0x4b,0x78,0x08,0x2b,0x31,0x5b,0xe8,0xdb,0x4d,0xcb,0xb8,0x8c, -0x54,0xa1,0x58,0xf8,0x2f,0x15,0x64,0x71,0xcc,0x5f,0x41,0x61, -0xd7,0x44,0xb0,0xfb,0x46,0xa8,0xfd,0xe4,0xfc,0xad,0x0c,0x0f, -0xef,0xa8,0x6e,0xb4,0x97,0xfc,0xc2,0x82,0x96,0x40,0x0f,0x1d, -0xd1,0xdf,0x41,0xe0,0x14,0x8f,0x8c,0x22,0x41,0x03,0x5b,0xe6, -0xc8,0x8c,0x71,0xdc,0xf5,0xf6,0xd5,0xa4,0xc3,0x00,0xc3,0x45, -0x1e,0x0f,0x15,0x1d,0xc2,0x70,0x76,0x58,0xf3,0x61,0xa7,0x96, -0x4b,0x58,0x68,0xa4,0x13,0xbf, +0x39,0x47,0xc1,0x48,0x7c,0x58,0xb7,0x4a,0xa4,0x23,0x4d,0x62, +0xd4,0xa1,0x12,0x1a,0x92,0x3c,0x3f,0xe9,0x14,0x60,0xc4,0x20, +0x0d,0xdc,0x8d,0xdb,0xf1,0x60,0xb2,0x70,0x31,0x2f,0x3c,0x0d, +0x45,0x8b,0x53,0x55,0x91,0x51,0x89,0xc4,0xc8,0x61,0x82,0xe0, +0xe0,0xe8,0x28,0x62,0xf8,0xb4,0x50,0xbe,0xef,0x4c,0xe9,0x0f, +0x60,0xe7,0x04,0x1c,0x68,0xcc,0x27,0x60,0xdf,0x70,0x58,0xc7, +0x0f,0xc0,0xd0,0x61,0xa3,0xae,0x1b,0x2b,0x3a,0x98,0xa3,0xcf, +0xa5,0x5e,0x59,0x5a,0x8f,0x18,0x83,0x87,0xc5,0x65,0x69,0x7b, +0x2d,0xfc,0x7a,0x0b,0x1b,0x53,0x16,0xc9,0x1c,0xe1,0xb6,0xf4, +0x93,0x08,0x56,0xf3,0xed,0x3a,0x9c,0xd1,0x27,0xfb,0xee,0x1e, +0x44,0xd5,0x35,0xf5,0x6e,0x17,0xcf,0xb2,0xdd,0x99,0x93,0xaa, +0xc4,0x52,0x6e,0x98,0x6a,0x0b,0x49,0x3f,0x7f,0xb4,0xdc,0x52, +0x04,0x45,0x9b,0xa6,0x80,0x97,0x26,0x26,0x55,0x8c,0x94,0xd9, +0x46,0x34,0xe0,0xac,0xf4,0xbe,0xa2,0xf0,0xc2,0x35,0x19,0xc9, +0x7e,0x4e,0x34,0x63,0x2c,0x71,0x48,0x7a,0xad,0x8c,0xe1,0xa2, +0xb2,0x78,0x5c,0x05,0xa5,0x8e,0x66,0x8d,0x4a,0x9e,0x89,0x5b, +0xe3,0x4b,0x66,0xb5,0x5b,0xd0,0x35,0x13,0x47,0x0e,0x55,0x54, +0xea,0xba,0x5f,0xf1,0x61,0x83,0xab,0x05,0x38,0xbd,0xb8,0xdf, +0x5b,0x9d,0x4b,0x50,0xac,0x6f,0xd4,0x62,0x6c,0x81,0x5b,0x22, +0xca,0x15,0x16,0x83,0x4e,0x8d,0xc6,0x7f,0x6a,0x5e,0x96,0x92, +0x87,0x9a,0x95,0x8f,0xb5,0xb2,0x2b,0xd8,0xb9,0xbf,0x0e,0x6f, +0x89,0x68,0x3d,0xdd,0xb6,0x65,0x21,0xd6,0x79,0x98,0x66,0xdf, +0x5f,0x0a,0x4d,0x39,0x3d,0x6a,0x45,0xe2,0x07,0x50,0xe4,0x4d, +0x1c,0x09,0x2e,0x18,0xcc,0x2b,0x2d,0x45,0x22,0x26,0xc1,0x1d, +0x2d,0x84,0x85,0x03,0x79,0xef,0x7a,0xde,0x7f,0x3a,0x0e,0x2d, +0x94,0x33,0x06,0x93,0x68,0xca,0x7c,0x3c,0x8f,0x5e,0x3a,0x5d, +0x96,0x5f,0x2b,0x12,0x35,0xed,0xd3,0x2c,0xf8,0x69,0xe0,0xf3, +0x64,0xb7,0x2d,0xa9,0x2f,0x31,0x23,0x1a,0xd0,0xa2,0x7b,0x88, +0xa5,0x52,0x36,0x40,0x48,0xf5,0x35,0x05,0x52,0x61,0x0c,0x5d, +0xeb,0x05,0x8b,0x52,0x2c,0x34,0xa6,0x3e,0x1e,0xaf,0x7f,0xf7, +0xd8,0xca,0x68,0xc0,0x13,0xf7,0x76,0x9d,0xc1,0x20,0x3c,0xe8, +0xc4,0x87,0xd7,0xe8,0x78,0xfb,0x79,0xc4,0x9a,0xa0,0x48,0xcd, +0x7c,0xd2,0x6c,0xa8,0x2b,0x72,0xb3,0x52,0x82,0x3f,0xb8,0x93, +0x41,0x0f,0xf0,0xeb,0x25,0x94,0x6b,0xb4,0x56,0xd9,0x6d,0x90, +0x62,0x4e,0x4a,0x77,0x6f,0xe4,0x37,0xb5,0x27,0x7d,0x06,0x5b, +0x65,0x78,0xd4,0x34,0x86,0xb3,0x11,0x81,0x13,0x31,0x42,0x03, +0x98,0x8d,0xfd,0x53,0xcc,0x23,0x1b,0x76,0xda,0x3f,0xcf,0x8e, +0x6a,0x0e,0xc6,0xae,0x8e,0x1a,0xcc,0xe2,0xe2,0xd2,0x65,0x63, +0xa5,0xbf,0xc9,0xf1,0xb1,0x7f,0xff,0x86,0x5b,0x25,0x7c,0xae, +0x88,0x3b,0x4a,0x77,0xd0,0xca,0xf6,0xc7,0xa7,0x42,0xca,0x8a, +0x47,0x8d,0x41,0xa7,0x71,0x59,0x5c,0xb1,0x9a,0x8d,0x6a,0xdb, +0xbd,0x22,0x3c,0x60,0x0c,0xc0,0x96,0xf9,0x0f,0x6e,0xd3,0xf3, +0x50,0x28,0xc9,0x11,0x55,0x84,0xa4,0x0d,0xec,0xc9,0xa6,0x42, +0x1c,0xbc,0x75,0xde,0x79,0x20,0xc2,0x3e,0xb0,0x6e,0xb4,0x25, +0x8a,0xf1,0x66,0x50,0x22,0x00,0x23,0x01,0x8b,0xa7,0xe1,0xb2, +0x8a,0x82,0xc7,0xbb,0x93,0xb8,0x4b,0xaa,0x8b,0x18,0xa5,0xa8, +0x34,0xc7,0xb7,0xaf,0xcf,0x26,0xc4,0xa6,0x38,0xb5,0xec,0x9d, +0xc7,0x10,0xad,0xf1,0x57,0x8e,0x84,0x8e,0x4a,0xcc,0x4a,0x51, +0xfd,0xa3,0x0e,0x86,0x51,0xeb,0xd6,0x18,0x72,0xa7,0xf4,0xac, +0x26,0xc9,0xd7,0x73,0x2a,0x8d,0x22,0x4d,0x82,0x2f,0x83,0x33, +0x28,0x29,0x99,0xcf,0x77,0x52,0x37,0x8a,0x23,0xe8,0x47,0xc5, +0xd4,0xa4,0x19,0xc9,0xc4,0x1e,0x16,0xac,0x66,0xb5,0x7f,0x06, +0xd2,0x0a,0xaa,0x78,0x52,0xb9,0x00,0xed,0xf3,0xca,0xf6,0x13, +0xbb,0x29,0x62,0x4a,0x1d,0x0f,0x36,0x47,0x28,0x88,0xfd,0x5b, +0xb6,0x81,0xfc,0xfb,0x95,0x7e,0xe5,0x8a, }; diff --git a/configure.ac b/configure.ac index 765627d71e..36aee69415 100644 --- a/configure.ac +++ b/configure.ac @@ -1800,20 +1800,18 @@ then fi -# Falcon (legacy name for FN-DSA, now provided by the native implementation) -# Falcon post-quantum signatures. "Falcon" is the pre-standardization name; NIST -# is standardizing this scheme as FN-DSA (FIPS 206, draft). This is the native -# wolfCrypt implementation (no liboqs); it needs SHA-3 / SHAKE256 (forced on in -# the CFLAG section below). Because the algorithm is not yet standardized and its -# API name is subject to change, it requires --enable-experimental (checked in -# the CFLAG section, once all backend sub-options have been resolved). +# Falcon post-quantum signatures, provided by the native wolfCrypt +# implementation (no liboqs); it needs SHA-3 / SHAKE256 (forced on in the CFLAG +# section below). Because the algorithm is not yet standardized and its API name +# is subject to change, it requires --enable-experimental (checked in the CFLAG +# section, once all backend sub-options have been resolved). AC_ARG_ENABLE([falcon], [AS_HELP_STRING([--enable-falcon],[Enable Falcon post-quantum signatures (native, no liboqs; requires --enable-experimental) (default: disabled)])], [ ENABLED_FALCON=$enableval ], [ ENABLED_FALCON=no ]) # --enable-falcon-asm selects the per-architecture assembly fpr backend for -# FN-DSA (currently x86-64 SSE2 only); the portable constant-time integer +# Falcon (currently x86-64 SSE2 only); the portable constant-time integer # emulation remains the default. It implies --enable-falcon. AC_ARG_ENABLE([falcon-asm], [AS_HELP_STRING([--enable-falcon-asm],[Enable Falcon x86-64 assembly fpr backend (default: disabled)])], diff --git a/scripts/falcon-interop.c b/scripts/falcon-interop.c index d1ba3397d6..1e7c66a31e 100644 --- a/scripts/falcon-interop.c +++ b/scripts/falcon-interop.c @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA */ -/* Phase-5 FN-DSA (Falcon) interop harness. +/* Phase-5 Falcon interop harness. * * Cross-checks the native wolfCrypt Falcon implementation (wc_falcon_*, * ) against liboqs (open-quantum-safe), called @@ -35,7 +35,7 @@ * (3) native keygen+sign -> native verify * (4) native keygen+sign -> liboqs verify * - * Build wolfSSL with native FN-DSA (no liboqs needed by the library itself): + * Build wolfSSL with native Falcon (no liboqs needed by the library itself): * ./configure --enable-falcon && make * Then compile + run against the built lib + liboqs: * gcc -I. -I/include scripts/falcon-interop.c \ @@ -60,7 +60,7 @@ #error "This harness requires wolfSSL built with --enable-falcon" #endif -static const char* kMsg = "wolfSSL FN-DSA native<->liboqs interop message"; +static const char* kMsg = "wolfSSL Falcon native<->liboqs interop message"; typedef struct { byte level; /* FALCON_LEVEL1 / FALCON_LEVEL5 */ @@ -163,7 +163,7 @@ int main(void) { falcon_params l1 = { FALCON_LEVEL1, OQS_SIG_alg_falcon_512 }; falcon_params l5 = { FALCON_LEVEL5, OQS_SIG_alg_falcon_1024 }; - printf("FN-DSA native<->liboqs interop matrix\n"); + printf("Falcon native<->liboqs interop matrix\n"); if (wc_InitRng(&rng) != 0) { printf("rng init failed\n"); return 1; } f |= run_level(&l1, &rng); f |= run_level(&l5, &rng); diff --git a/wolfcrypt/src/wc_falcon.c b/wolfcrypt/src/wc_falcon.c index ff1a07854a..79600900ff 100644 --- a/wolfcrypt/src/wc_falcon.c +++ b/wolfcrypt/src/wc_falcon.c @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA */ -/* Native FN-DSA (FIPS 206 draft) / Falcon implementation for wolfCrypt. +/* Native Falcon implementation for wolfCrypt. * * Phase 1: verification only (integer arithmetic, no floating point). * The signature/keygen paths and the floating-point primitive seam are added @@ -49,8 +49,8 @@ * specification / reference implementation (l2bound table). */ static const word32 falcon_l2bound[] = { /* 0..8 unused */ 0, 0, 0, 0, 0, 0, 0, 0, 0, - 34034726u, /* logn = 9 (FN-DSA-512) */ - 70265242u /* logn = 10 (FN-DSA-1024) */ + 34034726u, /* logn = 9 (Falcon-512) */ + 70265242u /* logn = 10 (Falcon-1024) */ }; /* ------------------------------------------------------------------------ */ diff --git a/wolfcrypt/src/wc_falcon_bigint.c b/wolfcrypt/src/wc_falcon_bigint.c index 45cac84a99..48ec013538 100644 --- a/wolfcrypt/src/wc_falcon_bigint.c +++ b/wolfcrypt/src/wc_falcon_bigint.c @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA */ -/* Self-contained big-integer / RNS arithmetic for native FN-DSA (Falcon) +/* Self-contained big-integer / RNS arithmetic for native Falcon * key generation. See wolfssl/wolfcrypt/wc_falcon_bigint.h. * * Ported from the Falcon reference implementation keygen.c by Thomas Pornin diff --git a/wolfcrypt/src/wc_falcon_codec.c b/wolfcrypt/src/wc_falcon_codec.c index e4398430da..ee9f6e64b0 100644 --- a/wolfcrypt/src/wc_falcon_codec.c +++ b/wolfcrypt/src/wc_falcon_codec.c @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA */ -/* FN-DSA (FIPS 206 draft) / Falcon encode/decode routines for the signing and +/* Falcon encode/decode routines for the signing and * key-generation paths. These are faithful ports of the Falcon reference * implementation (codec.c): modq_encode, comp_encode, trim_i8_encode and * trim_i8_decode, plus the secret-key decoder that drives them. diff --git a/wolfcrypt/src/wc_falcon_fft.c b/wolfcrypt/src/wc_falcon_fft.c index 84e82e1f65..885eac3325 100644 --- a/wolfcrypt/src/wc_falcon_fft.c +++ b/wolfcrypt/src/wc_falcon_fft.c @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA */ -/* FN-DSA / Falcon FFT over the fpr seam. See wolfssl/wolfcrypt/wc_falcon_fft.h. +/* Falcon FFT over the fpr seam. See wolfssl/wolfcrypt/wc_falcon_fft.h. * Algorithm and twiddle-table layout validated against a schoolbook negacyclic * reference (round-trip and FFT-based multiplication) for n in {8,512,1024}. */ diff --git a/wolfcrypt/src/wc_falcon_fft_avx2.c b/wolfcrypt/src/wc_falcon_fft_avx2.c index e8257c65e6..4458dc045b 100644 --- a/wolfcrypt/src/wc_falcon_fft_avx2.c +++ b/wolfcrypt/src/wc_falcon_fft_avx2.c @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA */ -/* AVX2 (__m256d + FMA) FFT backend for the native FN-DSA / Falcon signing path. +/* AVX2 (__m256d + FMA) FFT backend for the native Falcon signing path. * * This is a vectorization of the scalar FFT in wc_falcon_fft.c and the hot * FFT-domain pointwise polynomial operations in wc_falcon_poly.c. It processes diff --git a/wolfcrypt/src/wc_falcon_fft_neon.c b/wolfcrypt/src/wc_falcon_fft_neon.c index 9de4b1d30b..c13a12796b 100644 --- a/wolfcrypt/src/wc_falcon_fft_neon.c +++ b/wolfcrypt/src/wc_falcon_fft_neon.c @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA */ -/* AArch64 NEON (float64x2_t + FMA) FFT backend for the native FN-DSA / Falcon +/* AArch64 NEON (float64x2_t + FMA) FFT backend for the native Falcon * signing path. This is the 2-wide-double counterpart of the AVX2 backend in * wc_falcon_fft_avx2.c: it processes two doubles per 128-bit vector and uses * fused multiply-add for the complex butterflies. The algorithm and the diff --git a/wolfcrypt/src/wc_falcon_fpr.c b/wolfcrypt/src/wc_falcon_fpr.c index 32942990c9..e4f27a1e58 100644 --- a/wolfcrypt/src/wc_falcon_fpr.c +++ b/wolfcrypt/src/wc_falcon_fpr.c @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA */ -/* Integer-emulated IEEE-754 binary64 backend for the FN-DSA / Falcon +/* Integer-emulated IEEE-754 binary64 backend for the Falcon * floating-point primitive seam (wolfssl/wolfcrypt/wc_falcon_fpr.h). * * This is the portable, FP-unit-free, fully deterministic and constant-time diff --git a/wolfcrypt/src/wc_falcon_fpr_x86_64_asm.S b/wolfcrypt/src/wc_falcon_fpr_x86_64_asm.S index e1bf7548e2..fd5f6d4454 100644 --- a/wolfcrypt/src/wc_falcon_fpr_x86_64_asm.S +++ b/wolfcrypt/src/wc_falcon_fpr_x86_64_asm.S @@ -58,7 +58,7 @@ #endif /* NO_AVX512_SUPPORT */ #if defined(HAVE_FALCON) && defined(WOLFSSL_FALCON_FPR_ASM) -/* Native x86_64 (SSE2 scalar-double) backend for the FN-DSA fpr +/* Native x86_64 (SSE2 scalar-double) backend for the Falcon fpr * seam. Generated by wolfssl-scripts: falcon/x86_64/falcon.rb. * Each routine is bit-exact with the round-to-nearest-even * IEEE-754 emulation in wolfcrypt/src/wc_falcon_fpr.c on all values diff --git a/wolfcrypt/src/wc_falcon_keygen.c b/wolfcrypt/src/wc_falcon_keygen.c index fe2c179a8b..20aab19ff3 100644 --- a/wolfcrypt/src/wc_falcon_keygen.c +++ b/wolfcrypt/src/wc_falcon_keygen.c @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA */ -/* FN-DSA / Falcon key-pair generation. See wolfssl/wolfcrypt/wc_falcon_keygen.h. +/* Falcon key-pair generation. See wolfssl/wolfcrypt/wc_falcon_keygen.h. * * Faithful port of the key-generation half of the MIT-licensed Falcon * reference implementation keygen.c (Thomas Pornin, Falcon Project, diff --git a/wolfcrypt/src/wc_falcon_poly.c b/wolfcrypt/src/wc_falcon_poly.c index 2415a95963..f77e8426f3 100644 --- a/wolfcrypt/src/wc_falcon_poly.c +++ b/wolfcrypt/src/wc_falcon_poly.c @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA */ -/* FN-DSA / Falcon FFT-domain polynomial operations over the fpr seam. Faithful +/* Falcon FFT-domain polynomial operations over the fpr seam. Faithful * port of the poly_* functions from the MIT-licensed Falcon reference (fft.c, * Thomas Pornin). See wolfssl/wolfcrypt/wc_falcon_poly.h. */ diff --git a/wolfcrypt/src/wc_falcon_sampler.c b/wolfcrypt/src/wc_falcon_sampler.c index d9bcc81867..d33a2564fc 100644 --- a/wolfcrypt/src/wc_falcon_sampler.c +++ b/wolfcrypt/src/wc_falcon_sampler.c @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA */ -/* Discrete Gaussian sampler (SamplerZ) for FN-DSA / Falcon signing. +/* Discrete Gaussian sampler (SamplerZ) for Falcon signing. * * This is a faithful port of the constant-time reference sampler written by * Thomas Pornin for the Falcon submission (MIT licensed). The identical code @@ -87,9 +87,9 @@ static const fpr falcon_fpr_inv_2sqrsigma0 = (fpr)4594603506513722306U; /* sigma_min, indexed by logn (degree = 2^logn). These match the Falcon * specification's sigma_min(n) table; entries decode to a smooth monotonic - * curve from 1.1165 (n=2) to 1.2983 (n=1024). FN-DSA uses logn 9 and 10: - * logn = 9 (FN-DSA-512 / Falcon-512 ) : 1.2778336969128337 - * logn = 10 (FN-DSA-1024 / Falcon-1024) : 1.298280334344292 */ + * curve from 1.1165 (n=2) to 1.2983 (n=1024). Falcon uses logn 9 and 10: + * logn = 9 (Falcon-512 ) : 1.2778336969128337 + * logn = 10 (Falcon-1024) : 1.298280334344292 */ static const fpr falcon_fpr_sigma_min[11] = { (fpr)0U, /* logn 0 : unused */ (fpr)4607707126469777035U, /* logn 1 : 1.1165085072 */ diff --git a/wolfcrypt/src/wc_falcon_sign.c b/wolfcrypt/src/wc_falcon_sign.c index 45f227ff1a..e368c18889 100644 --- a/wolfcrypt/src/wc_falcon_sign.c +++ b/wolfcrypt/src/wc_falcon_sign.c @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA */ -/* FN-DSA / Falcon signing orchestration. See wolfssl/wolfcrypt/wc_falcon_sign.h. +/* Falcon signing orchestration. See wolfssl/wolfcrypt/wc_falcon_sign.h. * * Faithful port of the signature-generation core of the MIT-licensed Falcon * reference implementation sign.c (Thomas Pornin, Falcon Project, 2017-2019): diff --git a/wolfcrypt/test/test.c b/wolfcrypt/test/test.c index 01e6db553e..9023b72ec1 100644 --- a/wolfcrypt/test/test.c +++ b/wolfcrypt/test/test.c @@ -56853,12 +56853,12 @@ static wc_test_ret_t mldsa_decode_test(void) } #endif /* (WOLFSSL_MLDSA_PUBLIC_KEY && !WOLFSSL_MLDSA_NO_VERIFY) || * (WOLFSSL_MLDSA_PRIVATE_KEY && !WOLFSSL_MLDSA_NO_SIGN) */ -#endif /* WOLFSSL_HAVE_MLDSA - FN-DSA test below is independent of ML-DSA */ +#endif /* WOLFSSL_HAVE_MLDSA - Falcon test below is independent of ML-DSA */ #ifdef HAVE_FALCON -/* Differential FN-DSA (Falcon) verify test. +/* Differential Falcon verify test. * * The public keys and signatures below are KNOWN-ANSWER VECTORS that were * generated with the EXISTING liboqs Falcon implementation @@ -56885,406 +56885,407 @@ static wc_test_ret_t mldsa_decode_test(void) /* The KAT vectors and their verifier exercise the software verify path, which * is not present in a WOLF_CRYPTO_CB_ONLY_FALCON build. */ #ifndef WOLF_CRYPTO_CB_ONLY_FALCON -#define FALCON_KAT_MSG "wolfSSL FN-DSA differential KAT" +#define FALCON_KAT_MSG "wolfSSL Falcon differential KAT" static const byte FALCON512_pk[] = { -0x09,0x8d,0x15,0xc5,0x31,0x5b,0xa1,0x8a,0x92,0x2d,0x93,0x81, -0x26,0x93,0xa7,0x05,0x1a,0xf2,0x92,0x99,0x0c,0x67,0x77,0x30, -0xdf,0x03,0xb9,0x21,0xbe,0xa1,0x06,0x2e,0x81,0x20,0x6b,0x27, -0x5c,0x7a,0x6d,0x9b,0x1d,0x19,0xb6,0xbc,0x65,0x7c,0xe5,0x02, -0x0a,0xdc,0xa1,0xb9,0x87,0x56,0x6e,0x29,0x0a,0x14,0x85,0x10, -0x80,0xc9,0xc8,0x1b,0x48,0x4c,0x7a,0x28,0x74,0xdc,0x8c,0x38, -0xf8,0x4c,0x8a,0x53,0xe9,0x34,0x03,0x76,0xcc,0x88,0x55,0x2c, -0x48,0x00,0x55,0x3e,0x78,0x0c,0xa4,0xf5,0x3b,0x5d,0xc9,0x77, -0xd9,0xd7,0xec,0xa8,0x28,0xb0,0x4a,0xdb,0xaa,0xa4,0x88,0xcd, -0xde,0xe2,0xc3,0xaf,0xa8,0x15,0x09,0x64,0x9a,0x8f,0x5d,0x37, -0x51,0x26,0xce,0xd3,0x06,0x0c,0x9f,0x35,0x56,0x1f,0x70,0x67, -0x6e,0xf3,0x60,0x90,0x2c,0x54,0x91,0x1c,0xbd,0x3d,0x95,0xa8, -0x54,0x3b,0xc2,0x0e,0x6f,0x90,0x80,0xd7,0xcd,0x03,0x3d,0xa8, -0x05,0x09,0x54,0xab,0xa5,0xec,0x1b,0xe2,0xe7,0x39,0x2c,0x0d, -0xc3,0x53,0xe0,0x34,0xea,0x92,0x1c,0xae,0x2e,0x91,0x68,0x74, -0x82,0xe0,0xdf,0x5d,0x18,0xb8,0xe2,0x47,0xcc,0x84,0x35,0xc4, -0xf7,0x08,0xc7,0x00,0xe8,0xb9,0x64,0x8d,0xe9,0x1b,0xcc,0x2b, -0x28,0x78,0x7a,0x65,0x18,0x67,0x0b,0xb1,0xa9,0x10,0x40,0x8d, -0x1f,0xc5,0x4c,0x64,0xe7,0x99,0xf9,0x0d,0x9f,0xb3,0x71,0x2a, -0xf5,0x2a,0x89,0xd0,0xb2,0xf6,0x80,0x61,0x37,0x50,0x5d,0x16, -0x70,0x82,0x73,0x8e,0x9d,0x59,0x88,0xe9,0x84,0xf7,0x32,0x93, -0xfd,0x24,0x61,0x94,0x2b,0xc6,0xdf,0xf7,0x3b,0x5e,0x05,0x88, -0xc0,0x48,0x2a,0x7c,0x40,0x8a,0x03,0x8f,0x8b,0x3b,0x85,0x7d, -0xe0,0xbb,0x73,0xaf,0xbb,0x4b,0xe9,0xe5,0x76,0x7a,0xd0,0x2c, -0x6a,0xb9,0x60,0x19,0xf7,0xa3,0xc0,0xb0,0x64,0x45,0x71,0xb3, -0x6d,0xdf,0x97,0x59,0x4c,0xc2,0xab,0x0c,0x5b,0x29,0xe1,0x52, -0x21,0x0e,0xcf,0xda,0x4e,0x55,0xc7,0x87,0x39,0x9b,0x0f,0x54, -0x88,0xc4,0xbb,0xe7,0x5b,0xcb,0xb6,0x10,0x80,0x5a,0x16,0x96, -0x8b,0x41,0x9a,0x9a,0x41,0x76,0x88,0x2e,0x02,0xa1,0x83,0x78, -0x19,0x67,0xb2,0x07,0x11,0x55,0x56,0xd3,0x5b,0xea,0x3d,0x19, -0xf9,0x81,0xd8,0xe9,0xa4,0x91,0x94,0x06,0x70,0xb9,0x95,0xbd, -0x7e,0x68,0x05,0x82,0x81,0x8f,0x94,0xab,0x36,0xe8,0xa2,0x4a, -0x02,0x6a,0x33,0x6e,0x00,0x87,0x44,0xe8,0xdc,0xa1,0xee,0xf8, -0x00,0x4d,0xaa,0x81,0x99,0x8e,0x46,0xe8,0x36,0x25,0x0b,0x3e, -0xbe,0xd9,0x03,0x38,0x14,0x62,0x8a,0xb5,0x3e,0x79,0xef,0x69, -0x94,0x41,0x41,0xcf,0x16,0x84,0xa9,0xba,0x0f,0x5a,0xd6,0x48, -0xef,0x57,0x0e,0x76,0xc5,0x89,0xf1,0x71,0x29,0x5f,0xb5,0xe2, -0x09,0x14,0xc3,0xd2,0x3f,0xb1,0xb9,0x41,0xc7,0x91,0xa5,0xda, -0x54,0xb4,0x43,0xba,0xa5,0x50,0xf2,0xa1,0x8d,0x0a,0x59,0x18, -0x1e,0xd1,0x58,0x76,0x1c,0x29,0xfa,0x04,0x8c,0x23,0x66,0xee, -0x8b,0xe1,0x11,0x46,0x0c,0x89,0xe3,0x80,0x56,0xa5,0x70,0xa6, -0x7c,0xf1,0x73,0xf1,0x13,0xe4,0x83,0x25,0xe7,0xea,0xd2,0x8c, -0x39,0x36,0xd6,0x5e,0x4b,0x82,0x5a,0x5e,0xa5,0x0c,0xce,0xaa, -0xb7,0x4e,0x01,0x9b,0x46,0xde,0x81,0xd3,0x2f,0xf7,0xbd,0x60, -0x20,0x77,0xac,0xca,0x62,0x41,0x80,0x1a,0x72,0xe3,0x0d,0x49, -0x74,0x16,0xff,0xe7,0xb0,0x65,0xb3,0xa2,0xda,0x6d,0xe1,0x34, -0x4f,0x0e,0xa7,0xb2,0xdf,0xf2,0x9d,0x6d,0xe3,0x78,0x36,0xe9, -0x43,0x7e,0x0b,0xab,0x0e,0xa8,0xe3,0xf1,0x77,0x27,0x78,0x9d, -0xfd,0x43,0x44,0xdd,0xc8,0x3b,0x1f,0x71,0xc6,0xe5,0xef,0xe2, -0x8c,0x7e,0xc6,0x63,0x8b,0x29,0x24,0x34,0x6a,0xcd,0xd8,0xf4, -0xa8,0x5b,0x7b,0xa6,0x38,0x8f,0x3b,0x59,0x8a,0xff,0xb4,0xbc, -0xd6,0xd5,0x0a,0xc0,0xc3,0x7c,0x40,0x80,0x78,0x31,0x41,0x17, -0x23,0xde,0x28,0xe2,0x79,0x2d,0xeb,0x7b,0xee,0xf6,0x65,0xff, -0xe5,0xf7,0x45,0x86,0x13,0xeb,0xf1,0xc3,0xd8,0x82,0x3c,0xcb, -0x44,0xc9,0xde,0xcc,0x36,0x2d,0x68,0x85,0x64,0x66,0x74,0x81, -0xc0,0x21,0xc2,0xe0,0x53,0xa9,0x05,0xae,0xec,0x05,0x86,0xe6, -0x34,0x88,0xea,0x5e,0x5a,0x6a,0xc2,0xdf,0x51,0x65,0x5c,0x80, -0xc5,0xce,0xe9,0xb8,0x4a,0x88,0x08,0x10,0x56,0xe5,0x29,0xb2, -0x44,0x69,0x73,0x4c,0x4d,0x04,0x21,0xf6,0xc0,0x8b,0xed,0xec, -0x80,0x84,0x08,0xbb,0x6c,0xe0,0xef,0xbb,0xce,0xd8,0x12,0x9a, -0x8d,0x1a,0x54,0x41,0xba,0x63,0xc9,0xa8,0xfe,0x97,0x72,0x2c, -0xe9,0xb7,0xe4,0xa4,0x3e,0xda,0x73,0xa1,0xcc,0x86,0x40,0xb8, -0xae,0x7d,0x91,0x52,0x40,0xe7,0x1b,0x3d,0x0f,0xeb,0x7a,0x4e, -0x0d,0x36,0x0c,0x0d,0xf2,0x00,0xaf,0x08,0x70,0xa5,0x6d,0xa2, -0xf5,0x0b,0xc3,0x51,0x70,0x34,0xc6,0x1d,0x16,0x00,0x5c,0xb6, -0x65,0x71,0x9e,0x8d,0x47,0x35,0x6d,0xae,0xfa,0x6d,0x91,0x05, -0x26,0xfd,0x89,0x45,0x14,0x13,0x90,0x3a,0xd8,0xb4,0x11,0xd1, -0xef,0x57,0x63,0x62,0xea,0xc6,0x6c,0x2c,0xf9,0x0b,0x9c,0xa8, -0xa1,0x01,0x40,0x46,0x87,0x2e,0xe0,0xdb,0x90,0x6f,0x4b,0x10, -0xf2,0x95,0xd1,0x3e,0xdb,0xfd,0x6b,0x0c,0xcc,0x7b,0x73,0x5f, -0x2c,0x98,0x8e,0xb0,0x35,0x7c,0xaa,0x99,0x72,0xf9,0x3d,0x64, -0xc4,0x8f,0x09,0x5f,0xbc,0xeb,0x02,0xb2,0x22,0xff,0x08,0xf8, -0x8a,0xa3,0x0d,0x0e,0xa0,0xb6,0xec,0x89,0x36,0xbf,0x8d,0x8e, -0x0f,0xcd,0x3a,0x76,0xd5,0x19,0xe3,0xa8,0xe6,0x73,0x01,0x47, -0x55,0x05,0x09,0xb5,0x51,0xda,0x10,0x4f,0xd9, +0x09,0xb5,0x78,0xda,0xb5,0x88,0xee,0x60,0x41,0xb2,0xe3,0xb3, +0xd8,0x02,0x2b,0x97,0x98,0x8d,0x55,0xd8,0x5c,0xf5,0xba,0xbc, +0x18,0x0b,0x5e,0x12,0xda,0x92,0x6e,0x2d,0xfa,0x34,0xdf,0x23, +0xad,0x49,0x21,0x57,0xd5,0xa4,0x7c,0x30,0x48,0x7a,0x30,0x16, +0xdb,0x62,0xa3,0x4c,0xaf,0x7b,0x14,0x14,0xa5,0xa2,0x9d,0x5b, +0xbb,0xe7,0xce,0x29,0x79,0x65,0x0e,0x26,0x8f,0x89,0xf5,0x2f, +0xc9,0x19,0x00,0x8e,0x2d,0x72,0x65,0xda,0xe2,0x01,0x83,0x01, +0x6c,0x00,0xd4,0xeb,0xc3,0x3d,0x2a,0xe2,0x5e,0x52,0x7b,0xa2, +0xee,0x47,0x20,0xbc,0x99,0x3d,0xa7,0xf9,0xa2,0x53,0x2f,0x6c, +0xb8,0x46,0xa2,0x59,0xc5,0xab,0x72,0xf2,0x3b,0xf2,0xee,0x5f, +0x1b,0xe6,0xa5,0x89,0x9a,0x95,0x38,0x9e,0x5e,0x33,0xea,0x45, +0xaa,0x13,0x97,0x7e,0x3b,0x33,0x1a,0x41,0x81,0xb9,0x12,0x8d, +0x36,0xb9,0x47,0xb8,0x1b,0xb8,0x85,0x56,0x9c,0x9a,0xc0,0x4c, +0x64,0x7e,0x39,0xdf,0x67,0x6b,0x4f,0x6e,0x99,0x85,0x43,0x82, +0x1d,0x2c,0x59,0xf1,0x59,0x82,0x9b,0xfa,0x8b,0x15,0x11,0x59, +0x20,0x51,0x65,0x32,0x81,0xc4,0x86,0xe4,0x5e,0x81,0xac,0xc8, +0x0b,0x29,0x14,0xdc,0xa6,0x25,0x04,0x61,0x87,0x5f,0x95,0x82, +0xa2,0xc4,0x1d,0x18,0x56,0x44,0x35,0xb2,0xf0,0x1d,0xd4,0x91, +0xa6,0x90,0x2b,0x4d,0x03,0x10,0xf9,0x49,0xe9,0x72,0xe8,0x5a, +0xfa,0x61,0xc5,0x85,0x33,0xf4,0xb1,0x96,0xc3,0x07,0x8b,0xb5, +0x5c,0x33,0xe5,0xab,0xc3,0x5a,0x02,0x59,0x68,0xe9,0x97,0x66, +0x69,0x78,0x40,0xbe,0x23,0xcd,0x16,0xc3,0x86,0x98,0x10,0xf8, +0x95,0x83,0x8e,0x7c,0xc8,0xe6,0xc7,0xf1,0x1f,0x61,0xa8,0x99, +0xc9,0xd2,0xe9,0x6b,0x2f,0x31,0x1d,0x44,0xd1,0x8b,0x64,0xef, +0x05,0xee,0x6c,0x20,0x0c,0xee,0x33,0x3c,0x1e,0xdb,0xb8,0x8e, +0x4a,0x00,0x33,0x0d,0x65,0x2b,0x66,0x1c,0xee,0x60,0x01,0xc7, +0xd5,0x9e,0xaa,0xd9,0x2c,0xb9,0x76,0x12,0x8f,0x4a,0x66,0x78, +0x84,0xb3,0xf5,0xaf,0xe3,0xfd,0xb2,0x90,0x18,0x50,0x9c,0x99, +0xbd,0x6b,0x2a,0x65,0xa8,0x9e,0xcc,0x8b,0x85,0xce,0xa0,0x54, +0x70,0xae,0x19,0xad,0xb1,0xef,0xc2,0x5b,0xa7,0x96,0x95,0x12, +0xa8,0x30,0x8b,0x15,0xc3,0x21,0x4d,0x57,0x88,0xfd,0x58,0x76, +0x6a,0x62,0xcf,0x15,0x39,0x09,0x5f,0x47,0x32,0x03,0xe6,0x38, +0xad,0x1a,0x4e,0xfd,0x1b,0x12,0xe8,0x2b,0x5d,0x29,0xc1,0x61, +0xaa,0x7e,0x85,0x20,0xad,0x10,0xfa,0x62,0x8e,0x4a,0xed,0x62, +0x74,0x3e,0xd1,0xbd,0xdf,0xbe,0x24,0x15,0x24,0xf1,0xbe,0x61, +0xe0,0x8a,0x09,0x7c,0x24,0x78,0xee,0x31,0x96,0x36,0xdf,0xa0, +0x53,0xab,0x0c,0x25,0x50,0x9f,0x70,0x80,0x43,0x80,0x58,0x8a, +0x17,0xb0,0x1f,0x25,0x3a,0x37,0xd0,0xd5,0xa0,0xfd,0x5c,0x8b, +0x41,0x69,0x79,0x63,0x7c,0x63,0xc9,0xa6,0x51,0x6a,0xe4,0x01, +0x8c,0x7e,0x65,0xe1,0x3c,0x37,0xc7,0x14,0x28,0x49,0x89,0x89, +0xeb,0x8e,0x8e,0xd4,0x2a,0x96,0x6e,0x25,0x00,0x82,0x1d,0x9b, +0xcc,0xdc,0x5a,0xad,0x66,0xa8,0xa1,0xbc,0xaa,0x80,0x63,0xe0, +0x69,0x28,0x42,0x16,0xc2,0xbc,0xca,0xae,0xa3,0xec,0xab,0xca, +0xf2,0x65,0xe8,0x70,0x44,0x6a,0x37,0x64,0xeb,0xe5,0x6a,0x94, +0x0f,0x76,0x80,0x63,0x73,0x5e,0x61,0xb8,0xf6,0xc7,0x1b,0x05, +0x77,0xcc,0x20,0xc2,0x80,0x63,0x5e,0x68,0xe4,0x0e,0x33,0xf5, +0x03,0x06,0x5f,0x04,0xaf,0x1a,0x08,0xd7,0x57,0x3b,0x59,0xbb, +0x05,0xc7,0x9b,0xf0,0x99,0x7c,0x37,0x43,0xb6,0x0f,0xac,0x17, +0x34,0x99,0xc9,0xa3,0x62,0x86,0x70,0xd0,0x35,0x33,0x56,0xec, +0xa8,0x8f,0xd6,0x6c,0x56,0xef,0xca,0x08,0x72,0xca,0x31,0x18, +0xa8,0x6d,0x1d,0x7c,0x1c,0xee,0x71,0x00,0x46,0x13,0x88,0x64, +0x18,0x26,0x33,0x4f,0x4f,0x93,0xd8,0xbd,0x21,0xe3,0x55,0x2d, +0x79,0x9a,0x83,0xf6,0xe7,0x63,0x9b,0x87,0xbd,0xc6,0xa8,0x64, +0xec,0x8b,0xb7,0x34,0x4f,0xa5,0xe7,0x2a,0x91,0x98,0x50,0x18, +0x75,0xbe,0x20,0x5f,0x15,0x4d,0xd6,0x8a,0x43,0xc4,0xf4,0x1f, +0x41,0x34,0xa8,0xf0,0x21,0xa1,0x6d,0xfd,0x8b,0xf5,0xa0,0xee, +0x27,0x1a,0x6d,0xb0,0xcb,0xf9,0x11,0x16,0x87,0x5d,0xf1,0xa6, +0x64,0xe1,0xae,0x68,0x1c,0xd1,0x90,0xf4,0xda,0xc5,0x9f,0x38, +0xbc,0x06,0xd0,0x5f,0x1c,0x0c,0xfa,0x52,0xa4,0xa8,0x59,0xb8, +0x9b,0xf2,0x0b,0x26,0x6c,0xdf,0x25,0x54,0x8c,0x78,0x02,0x1e, +0x4f,0xff,0x77,0x61,0xc3,0xcb,0x96,0xac,0xb2,0x7e,0xb2,0xba, +0x3b,0x46,0x56,0xe6,0x6d,0xce,0x8e,0x52,0x30,0x54,0x95,0x9f, +0xb4,0x37,0xd8,0x7e,0x28,0x29,0x3b,0x50,0x75,0x40,0xfa,0x5b, +0x1e,0xae,0xee,0x7c,0x31,0x90,0x01,0x4e,0x6a,0xfa,0x0e,0x44, +0x42,0x11,0xa4,0xb9,0x6a,0xcf,0x36,0x60,0x9d,0xac,0xa6,0x15, +0x4c,0x60,0x77,0xee,0x82,0x55,0x20,0x92,0x66,0xd8,0x57,0xe0, +0xa9,0xc6,0x8a,0x4a,0x31,0x2b,0x94,0x61,0x30,0x44,0x51,0x63, +0xcb,0x8f,0x62,0x9c,0x01,0x48,0xb8,0x1d,0x92,0x45,0x76,0x96, +0xb0,0xf7,0xd4,0xd6,0x81,0x46,0x6f,0xab,0xc1,0x40,0xc8,0x74, +0x00,0xbf,0x38,0xe8,0xe0,0x7b,0xad,0x25,0xe0,0x2b,0x45,0x15, +0xc8,0x96,0x60,0x1b,0xd8,0xed,0xe2,0x5a,0x0c,0x41,0xf3,0x0a, +0x2c,0x57,0x57,0x55,0x50,0x2e,0x91,0x34,0x0c,0xa1,0x4a,0x70, +0x18,0xc3,0xa2,0x0f,0x3d,0x46,0xbc,0x0b,0xa7,0xfc,0xd3,0x7d, +0x23,0x09,0x85,0x5b,0x29,0xe7,0xed,0x5a,0x20,0x0e,0x85,0x91, +0xa5,0x3a,0x4c,0x18,0xa6,0x35,0xd4,0xd3,0x98, }; static const byte FALCON512_sig[] = { -0x39,0xf9,0x52,0x91,0x34,0x81,0x6f,0x8a,0xd6,0x02,0x62,0x7b, -0x16,0xa3,0x0f,0x19,0xee,0x36,0x30,0x9a,0xe3,0xbd,0x02,0xf7, -0x12,0x4c,0x04,0xb7,0x45,0x2b,0x55,0x65,0xb8,0x7a,0x24,0xca, -0x5b,0xb7,0xde,0xe1,0x86,0x89,0x69,0x90,0xb6,0x12,0x34,0xe2, -0xe2,0x62,0x6d,0x00,0x7a,0x2e,0x75,0x86,0xb6,0x98,0x37,0x69, -0x44,0x58,0xb7,0xab,0xf4,0xa9,0xd6,0x38,0x6f,0x92,0x7e,0x6c, -0x0d,0xcc,0x9c,0x20,0x25,0x45,0x84,0xc5,0x34,0x97,0x94,0xd5, -0xb6,0xa5,0xf4,0x1e,0xac,0x41,0x6b,0xad,0xe4,0x13,0x47,0x01, -0x42,0x86,0xd1,0x50,0xf7,0x09,0x41,0x75,0x69,0x90,0xaf,0xde, -0xd7,0x6b,0xeb,0xd0,0x75,0x77,0x78,0x5a,0xfc,0xb9,0xe3,0xa4, -0x7b,0x6a,0x28,0x67,0x1e,0x56,0xca,0x97,0x71,0x06,0x92,0x1a, -0x5d,0x3e,0x42,0xa7,0x63,0xef,0x2f,0xc6,0x40,0xf1,0x6b,0xb1, -0x1a,0x14,0x2d,0x72,0xac,0x37,0x50,0x05,0xad,0xc1,0xc1,0x74, -0x44,0xc6,0xa7,0xe9,0x62,0x13,0xa2,0x03,0x02,0x67,0x52,0x08, -0x9c,0x9d,0x65,0xb4,0x4b,0x05,0xe4,0xd3,0x43,0x3a,0x91,0x66, -0xf7,0x29,0x13,0x4a,0xfd,0x94,0x8c,0xfa,0x84,0xeb,0xe5,0xd2, -0xd8,0x71,0x91,0x42,0xd9,0xf7,0xae,0x1d,0x88,0x70,0x74,0x33, -0xca,0xae,0xda,0x15,0xc1,0xb7,0xeb,0x11,0x5d,0x39,0x5e,0xc3, -0x76,0x9c,0x3a,0x52,0x1b,0x19,0xe3,0x70,0xdb,0xd2,0x3e,0xe0, -0x47,0x4d,0x74,0x33,0xa5,0xc3,0x5d,0xfc,0x76,0x34,0x2b,0x13, -0x50,0xe6,0x9d,0xb8,0xae,0x44,0x23,0x42,0x95,0x27,0xaf,0x48, -0x9b,0x15,0x11,0x8e,0x13,0xeb,0x36,0xe5,0xe0,0x3d,0xff,0x16, -0x47,0x51,0x20,0xf1,0x4e,0x9a,0x2a,0x22,0x01,0xbd,0xf1,0x40, -0x66,0x74,0xd6,0x52,0x33,0x05,0xb3,0xfe,0xd0,0x5c,0xb7,0x85, -0xc1,0xfb,0x20,0x1e,0x84,0xa2,0x6b,0xcf,0x9b,0xcc,0x8e,0x13, -0x4d,0xa9,0x44,0x92,0x06,0x9c,0x9b,0x3c,0xf3,0x83,0x19,0x58, -0xab,0xe5,0x16,0x4f,0xe2,0x41,0x42,0xd9,0xbc,0xf5,0xa3,0x3b, -0x4e,0x9a,0x5d,0xaf,0x77,0x5d,0xcf,0x9f,0xd2,0x47,0x8c,0x75, -0xb6,0x3d,0x84,0x68,0x36,0xe5,0x15,0x33,0x4c,0xab,0x5a,0x07, -0xa3,0x93,0x6d,0x51,0xc8,0x29,0xc9,0xe1,0xa5,0x57,0x44,0x9a, -0x99,0xab,0x6c,0x5b,0x6e,0xa3,0x26,0xcb,0xea,0xe1,0x0a,0x4a, -0x40,0xb3,0x69,0xbb,0xd6,0xc2,0xcd,0x64,0x35,0x08,0xe9,0x92, -0x61,0x67,0x9f,0x2f,0xc5,0x28,0xc2,0xa0,0x04,0xc9,0xd7,0xf8, -0xd2,0x2b,0x50,0xd6,0x9b,0xf7,0xae,0xf3,0x67,0xd4,0x6a,0x4f, -0x89,0xb4,0x70,0x23,0xe4,0x19,0x97,0x5d,0x86,0xc6,0x2b,0x8f, -0x58,0xd8,0xd6,0x3d,0x59,0x39,0x86,0xa1,0x28,0xc4,0x2b,0xae, -0xf2,0x6d,0x0d,0x76,0x25,0xdc,0x55,0x06,0x73,0x9a,0x27,0xf5, -0x34,0x7f,0xcf,0x9a,0x7a,0xfd,0x1e,0xa5,0xb9,0x66,0x8c,0x9e, -0x78,0x8f,0x9e,0x64,0xcf,0xc8,0xf7,0x73,0x12,0x8a,0x82,0xb3, -0x67,0x03,0xd9,0x1d,0x71,0x63,0x3c,0x5f,0x5e,0x9b,0x2f,0xaf, -0xa1,0x41,0x95,0x47,0x0f,0xff,0x18,0x3e,0xd1,0x09,0x2f,0x23, -0x4e,0x8f,0x4d,0x9b,0xa7,0xe4,0xad,0x47,0xf5,0x17,0xbf,0x86, -0x89,0xd2,0x50,0x6a,0x87,0xdd,0x9e,0xfe,0xf4,0xd0,0xd1,0xa0, -0xcf,0x4f,0x21,0x8c,0x41,0xc5,0xd1,0xa8,0x35,0x9a,0xbe,0xab, -0x95,0x8d,0x5d,0x6d,0x2f,0xbc,0x78,0x8c,0x41,0xee,0xac,0x0c, -0x01,0x48,0x7e,0xd2,0x35,0xba,0x02,0xcc,0x62,0xf9,0xed,0x39, -0x23,0xe2,0x61,0x2d,0xd3,0x61,0x7d,0x43,0x21,0x3a,0x03,0x9c, -0x4b,0x78,0x08,0x2b,0x31,0x5b,0xe8,0xdb,0x4d,0xcb,0xb8,0x8c, -0x54,0xa1,0x58,0xf8,0x2f,0x15,0x64,0x71,0xcc,0x5f,0x41,0x61, -0xd7,0x44,0xb0,0xfb,0x46,0xa8,0xfd,0xe4,0xfc,0xad,0x0c,0x0f, -0xef,0xa8,0x6e,0xb4,0x97,0xfc,0xc2,0x82,0x96,0x40,0x0f,0x1d, -0xd1,0xdf,0x41,0xe0,0x14,0x8f,0x8c,0x22,0x41,0x03,0x5b,0xe6, -0xc8,0x8c,0x71,0xdc,0xf5,0xf6,0xd5,0xa4,0xc3,0x00,0xc3,0x45, -0x1e,0x0f,0x15,0x1d,0xc2,0x70,0x76,0x58,0xf3,0x61,0xa7,0x96, -0x4b,0x58,0x68,0xa4,0x13,0xbf, +0x39,0x47,0xc1,0x48,0x7c,0x58,0xb7,0x4a,0xa4,0x23,0x4d,0x62, +0xd4,0xa1,0x12,0x1a,0x92,0x3c,0x3f,0xe9,0x14,0x60,0xc4,0x20, +0x0d,0xdc,0x8d,0xdb,0xf1,0x60,0xb2,0x70,0x31,0x2f,0x3c,0x0d, +0x45,0x8b,0x53,0x55,0x91,0x51,0x89,0xc4,0xc8,0x61,0x82,0xe0, +0xe0,0xe8,0x28,0x62,0xf8,0xb4,0x50,0xbe,0xef,0x4c,0xe9,0x0f, +0x60,0xe7,0x04,0x1c,0x68,0xcc,0x27,0x60,0xdf,0x70,0x58,0xc7, +0x0f,0xc0,0xd0,0x61,0xa3,0xae,0x1b,0x2b,0x3a,0x98,0xa3,0xcf, +0xa5,0x5e,0x59,0x5a,0x8f,0x18,0x83,0x87,0xc5,0x65,0x69,0x7b, +0x2d,0xfc,0x7a,0x0b,0x1b,0x53,0x16,0xc9,0x1c,0xe1,0xb6,0xf4, +0x93,0x08,0x56,0xf3,0xed,0x3a,0x9c,0xd1,0x27,0xfb,0xee,0x1e, +0x44,0xd5,0x35,0xf5,0x6e,0x17,0xcf,0xb2,0xdd,0x99,0x93,0xaa, +0xc4,0x52,0x6e,0x98,0x6a,0x0b,0x49,0x3f,0x7f,0xb4,0xdc,0x52, +0x04,0x45,0x9b,0xa6,0x80,0x97,0x26,0x26,0x55,0x8c,0x94,0xd9, +0x46,0x34,0xe0,0xac,0xf4,0xbe,0xa2,0xf0,0xc2,0x35,0x19,0xc9, +0x7e,0x4e,0x34,0x63,0x2c,0x71,0x48,0x7a,0xad,0x8c,0xe1,0xa2, +0xb2,0x78,0x5c,0x05,0xa5,0x8e,0x66,0x8d,0x4a,0x9e,0x89,0x5b, +0xe3,0x4b,0x66,0xb5,0x5b,0xd0,0x35,0x13,0x47,0x0e,0x55,0x54, +0xea,0xba,0x5f,0xf1,0x61,0x83,0xab,0x05,0x38,0xbd,0xb8,0xdf, +0x5b,0x9d,0x4b,0x50,0xac,0x6f,0xd4,0x62,0x6c,0x81,0x5b,0x22, +0xca,0x15,0x16,0x83,0x4e,0x8d,0xc6,0x7f,0x6a,0x5e,0x96,0x92, +0x87,0x9a,0x95,0x8f,0xb5,0xb2,0x2b,0xd8,0xb9,0xbf,0x0e,0x6f, +0x89,0x68,0x3d,0xdd,0xb6,0x65,0x21,0xd6,0x79,0x98,0x66,0xdf, +0x5f,0x0a,0x4d,0x39,0x3d,0x6a,0x45,0xe2,0x07,0x50,0xe4,0x4d, +0x1c,0x09,0x2e,0x18,0xcc,0x2b,0x2d,0x45,0x22,0x26,0xc1,0x1d, +0x2d,0x84,0x85,0x03,0x79,0xef,0x7a,0xde,0x7f,0x3a,0x0e,0x2d, +0x94,0x33,0x06,0x93,0x68,0xca,0x7c,0x3c,0x8f,0x5e,0x3a,0x5d, +0x96,0x5f,0x2b,0x12,0x35,0xed,0xd3,0x2c,0xf8,0x69,0xe0,0xf3, +0x64,0xb7,0x2d,0xa9,0x2f,0x31,0x23,0x1a,0xd0,0xa2,0x7b,0x88, +0xa5,0x52,0x36,0x40,0x48,0xf5,0x35,0x05,0x52,0x61,0x0c,0x5d, +0xeb,0x05,0x8b,0x52,0x2c,0x34,0xa6,0x3e,0x1e,0xaf,0x7f,0xf7, +0xd8,0xca,0x68,0xc0,0x13,0xf7,0x76,0x9d,0xc1,0x20,0x3c,0xe8, +0xc4,0x87,0xd7,0xe8,0x78,0xfb,0x79,0xc4,0x9a,0xa0,0x48,0xcd, +0x7c,0xd2,0x6c,0xa8,0x2b,0x72,0xb3,0x52,0x82,0x3f,0xb8,0x93, +0x41,0x0f,0xf0,0xeb,0x25,0x94,0x6b,0xb4,0x56,0xd9,0x6d,0x90, +0x62,0x4e,0x4a,0x77,0x6f,0xe4,0x37,0xb5,0x27,0x7d,0x06,0x5b, +0x65,0x78,0xd4,0x34,0x86,0xb3,0x11,0x81,0x13,0x31,0x42,0x03, +0x98,0x8d,0xfd,0x53,0xcc,0x23,0x1b,0x76,0xda,0x3f,0xcf,0x8e, +0x6a,0x0e,0xc6,0xae,0x8e,0x1a,0xcc,0xe2,0xe2,0xd2,0x65,0x63, +0xa5,0xbf,0xc9,0xf1,0xb1,0x7f,0xff,0x86,0x5b,0x25,0x7c,0xae, +0x88,0x3b,0x4a,0x77,0xd0,0xca,0xf6,0xc7,0xa7,0x42,0xca,0x8a, +0x47,0x8d,0x41,0xa7,0x71,0x59,0x5c,0xb1,0x9a,0x8d,0x6a,0xdb, +0xbd,0x22,0x3c,0x60,0x0c,0xc0,0x96,0xf9,0x0f,0x6e,0xd3,0xf3, +0x50,0x28,0xc9,0x11,0x55,0x84,0xa4,0x0d,0xec,0xc9,0xa6,0x42, +0x1c,0xbc,0x75,0xde,0x79,0x20,0xc2,0x3e,0xb0,0x6e,0xb4,0x25, +0x8a,0xf1,0x66,0x50,0x22,0x00,0x23,0x01,0x8b,0xa7,0xe1,0xb2, +0x8a,0x82,0xc7,0xbb,0x93,0xb8,0x4b,0xaa,0x8b,0x18,0xa5,0xa8, +0x34,0xc7,0xb7,0xaf,0xcf,0x26,0xc4,0xa6,0x38,0xb5,0xec,0x9d, +0xc7,0x10,0xad,0xf1,0x57,0x8e,0x84,0x8e,0x4a,0xcc,0x4a,0x51, +0xfd,0xa3,0x0e,0x86,0x51,0xeb,0xd6,0x18,0x72,0xa7,0xf4,0xac, +0x26,0xc9,0xd7,0x73,0x2a,0x8d,0x22,0x4d,0x82,0x2f,0x83,0x33, +0x28,0x29,0x99,0xcf,0x77,0x52,0x37,0x8a,0x23,0xe8,0x47,0xc5, +0xd4,0xa4,0x19,0xc9,0xc4,0x1e,0x16,0xac,0x66,0xb5,0x7f,0x06, +0xd2,0x0a,0xaa,0x78,0x52,0xb9,0x00,0xed,0xf3,0xca,0xf6,0x13, +0xbb,0x29,0x62,0x4a,0x1d,0x0f,0x36,0x47,0x28,0x88,0xfd,0x5b, +0xb6,0x81,0xfc,0xfb,0x95,0x7e,0xe5,0x8a, }; -#define FALCON512_SIGLEN 654 +#define FALCON512_SIGLEN 656 -/* msg="wolfSSL FN-DSA differential KAT" */ +/* msg="wolfSSL Falcon differential KAT" */ static const byte FALCON1024_pk[] = { -0x0a,0x19,0x74,0x2e,0x24,0x91,0x1a,0xb4,0x48,0x34,0x71,0xc7, -0xf4,0xad,0x90,0x41,0xea,0x21,0xf9,0xf9,0x1e,0xc5,0x86,0xc5, -0x15,0xfa,0x7b,0x5c,0xe5,0x8f,0x72,0x3f,0x76,0xcc,0x44,0xe1, -0x67,0x9a,0x9c,0xf8,0x94,0xec,0xa4,0x14,0xf8,0x32,0x10,0xc9, -0x94,0x0a,0x60,0x71,0x91,0x80,0x75,0x51,0x1f,0x9b,0x65,0xcb, -0x58,0x44,0x1c,0x46,0x22,0x95,0x3d,0x09,0xbd,0x1a,0xa2,0xa7, -0xd8,0x13,0x64,0x87,0xa7,0x3a,0x66,0xcd,0x9c,0x34,0xf6,0xd0, -0xc0,0x01,0x75,0x8d,0xf3,0xe6,0x53,0xbb,0x7d,0x85,0xc9,0x72, -0x3a,0xe6,0xa6,0x19,0xdc,0xdd,0xd1,0xfc,0x2f,0xa7,0x11,0xc9, -0xdf,0xfb,0x35,0x99,0x20,0xa9,0x32,0x53,0xf9,0xa7,0x20,0xcd, -0x1b,0x58,0x7f,0x86,0xdc,0xc2,0xcf,0x7b,0x89,0x26,0x60,0x48, -0x25,0xfc,0x1f,0xaa,0x9e,0x16,0x84,0x20,0x3e,0x92,0xe2,0xda, -0xa3,0xe8,0xe0,0xf1,0x17,0xf2,0xa2,0xc5,0xde,0x5b,0xb5,0x5c, -0x20,0x38,0x19,0x65,0xd5,0x98,0x62,0xdc,0xfa,0x05,0x62,0x0d, -0x85,0x2d,0x49,0xca,0x14,0xa7,0x62,0xde,0x0c,0x80,0xce,0xf1, -0x55,0x08,0x68,0xaa,0xcc,0x90,0xd7,0x52,0xe9,0xf3,0x05,0x8e, -0x25,0x56,0xb4,0x65,0xd3,0x73,0x4e,0x2d,0xf1,0x6d,0x47,0x94, -0x63,0xf5,0x1c,0x75,0xd2,0x4c,0x15,0x30,0x0d,0x1d,0x46,0x66, -0xa3,0x99,0xb1,0x66,0xf1,0xd5,0x1d,0x5d,0x9e,0x50,0x24,0xf1, -0xdb,0x56,0x4f,0x18,0x2b,0x86,0xf0,0x49,0x1c,0xaf,0xf5,0xbb, -0x02,0x0a,0xf0,0x27,0x5b,0xaa,0x8f,0xa2,0x87,0x68,0x72,0x56, -0xaf,0x39,0x48,0x9c,0x9b,0x15,0x59,0x0d,0x06,0xb6,0xdc,0x9b, -0x7a,0x00,0xff,0xaa,0x15,0xce,0xd6,0x2c,0xeb,0xaf,0x9a,0x45, -0x58,0x16,0xb4,0xa3,0x2f,0x37,0xae,0xce,0xb7,0x49,0x59,0x82, -0x1f,0x04,0x84,0x05,0x11,0xc9,0x91,0x56,0x3a,0xda,0x42,0x00, -0xe9,0xd4,0xbc,0x40,0x50,0xd7,0x68,0x2d,0xbb,0x8b,0xda,0x14, -0xf2,0x93,0xec,0x5c,0xb2,0xc6,0x2f,0x8a,0x5f,0xd5,0x3c,0x29, -0x92,0x73,0xc7,0x76,0xce,0xa9,0x31,0xd8,0x83,0x2b,0xad,0xae, -0xc5,0x75,0x2e,0x88,0x72,0x4e,0x91,0x9b,0x57,0xb1,0x77,0xa7, -0xda,0x8b,0x51,0x60,0xc2,0xc6,0x02,0x04,0x43,0xdb,0x2a,0xd9, -0x9b,0x67,0xab,0xa2,0xb0,0x30,0xd1,0x5c,0x97,0xf7,0x07,0x0d, -0x6d,0x4e,0xd4,0x50,0xfe,0xe3,0xa1,0x2c,0xb4,0x3b,0xd9,0xd4, -0x11,0x75,0x82,0xa5,0xa6,0xa9,0x72,0x04,0x35,0x54,0x89,0x1c, -0x21,0xb1,0xe4,0xa6,0x97,0x8e,0xfb,0x65,0x3b,0xed,0x54,0x8d, -0x21,0x84,0x55,0xcd,0xea,0xb1,0x22,0xbe,0x9a,0xb6,0xff,0xa2, -0x09,0x19,0xcc,0x0d,0x9b,0x92,0x9e,0x08,0x54,0x6c,0x1d,0x57, -0x27,0x1b,0xbb,0x00,0xcd,0x5e,0x9a,0x9d,0xc8,0x73,0xbf,0xf0, -0xa0,0x08,0x9b,0x5f,0xe2,0x97,0x86,0x4e,0xc9,0x81,0x2b,0x26, -0x2f,0xe4,0x8b,0x12,0x0a,0x86,0x84,0xa8,0xd1,0xf6,0xa2,0x28, -0x2d,0x70,0x9c,0xca,0xe2,0x98,0xc8,0x59,0x2d,0x5b,0xd5,0x21, -0xd0,0x52,0x69,0x9e,0x0f,0xa2,0x89,0xea,0xd0,0xdf,0x18,0x4b, -0x2a,0x11,0x06,0xcf,0x08,0x12,0x6f,0x00,0x5c,0xe3,0xd9,0x8c, -0x70,0x9c,0x29,0x9b,0x82,0x88,0x9e,0x39,0x66,0x84,0xd9,0x84, -0x98,0xa9,0xa4,0x4c,0x4c,0x5b,0x2a,0xbc,0xc1,0xe9,0x82,0x6a, -0xc6,0xe7,0xfe,0xd4,0x91,0x9b,0x5e,0x7f,0xe4,0xd8,0x95,0xe0, -0x4b,0xcc,0x6b,0xe7,0x93,0xd6,0x86,0x66,0xdc,0x81,0x20,0xb3, -0x1d,0x54,0x2d,0xb8,0x9d,0x26,0x90,0x4c,0x1e,0x01,0xbe,0xef, -0x81,0xfa,0x67,0x90,0x9c,0x1d,0x58,0x38,0x38,0xdf,0xef,0xb3, -0xfe,0xd8,0x81,0xbb,0x80,0xc3,0x44,0x30,0xa0,0x36,0xff,0xd0, -0x76,0x75,0xd2,0x7e,0x78,0x54,0x17,0xb6,0x1d,0x81,0x0d,0x27, -0x94,0xd5,0x5d,0x15,0xf4,0x07,0xd5,0x69,0xa2,0xb3,0x23,0x8a, -0x80,0xaa,0xe3,0xc2,0x11,0x03,0x39,0x11,0x14,0x92,0x8c,0x34, -0x67,0x24,0x5d,0x06,0x02,0x5a,0x1a,0x73,0x9d,0x34,0x00,0x72, -0x8d,0x03,0x49,0x0c,0x3a,0x90,0x98,0x55,0xdf,0xab,0x09,0x88, -0x62,0xe8,0x63,0x4c,0x69,0x58,0xca,0x8b,0x47,0x4b,0x62,0xa2, -0x65,0xdb,0x87,0x08,0x46,0xc9,0x84,0x34,0x6c,0x38,0xe7,0x60, -0xec,0x3f,0x25,0x27,0x69,0x63,0x92,0x11,0x9e,0x55,0x9d,0xab, -0x51,0x13,0x9a,0x57,0xcc,0x77,0xd1,0xaf,0xdc,0x62,0x06,0xd1, -0x50,0xd1,0x83,0xad,0x67,0x25,0x74,0x51,0x47,0x1b,0x48,0x0e, -0x2e,0xad,0x01,0x26,0xd7,0x55,0xda,0x13,0xc2,0x3f,0x48,0x0d, -0x97,0xa8,0xb3,0xc4,0xe3,0x12,0xe8,0xcd,0xef,0x55,0xf1,0x52, -0x0b,0xf4,0x09,0x03,0x38,0xa8,0xa9,0xd7,0x24,0xe2,0xb9,0xbc, -0x99,0x5b,0x96,0x5d,0x1d,0x0b,0x89,0x64,0x19,0x75,0xa5,0xee, -0xd6,0x09,0xcd,0x3a,0xb3,0x80,0xa6,0x44,0xab,0x30,0x73,0x90, -0x8e,0x90,0x13,0x29,0xe9,0xf6,0x6a,0xd0,0x83,0xf4,0x33,0x22, -0xc7,0x7a,0xf7,0xe1,0xcf,0x68,0xda,0x04,0x74,0x37,0x62,0x99, -0x5a,0x06,0x04,0xa7,0x9c,0x5c,0xe4,0x0d,0x71,0xad,0xc2,0x52, -0x94,0xe4,0x81,0xc0,0x66,0x33,0xb5,0x56,0x69,0x9c,0x8a,0x5a, -0x57,0x43,0x4f,0x9e,0xaf,0xb8,0x37,0xea,0xc4,0x54,0x92,0x48, -0xed,0xe3,0x4a,0x87,0xce,0x82,0x1a,0xba,0xa9,0x51,0x9d,0xda, -0xdd,0x0b,0xa6,0x20,0x73,0x4b,0x2d,0x98,0x2f,0xad,0xa1,0xb0, -0x4f,0xae,0xea,0x6d,0xa2,0xfe,0x14,0xcf,0x50,0x46,0xa6,0xaa, -0xd5,0x54,0x1d,0xae,0x1b,0x67,0x08,0x24,0x22,0xb2,0x26,0x0a, -0x85,0x26,0xbf,0x65,0xeb,0x20,0x48,0xa9,0x1c,0x86,0x45,0xa6, -0x9c,0x08,0x35,0x50,0x31,0x76,0xc5,0x84,0x02,0xad,0x2a,0x73, -0x93,0x29,0xab,0x6e,0x9e,0xd2,0x9b,0xd2,0x9d,0xa9,0x66,0x8e, -0x69,0x9e,0xd9,0xf2,0x4d,0x4a,0x8b,0x0c,0x16,0x60,0x7b,0x85, -0xa5,0x1b,0x96,0xab,0xc3,0x74,0x22,0x68,0x34,0x51,0xb6,0xf4, -0xea,0x5d,0x31,0x5e,0x81,0x41,0xfa,0x02,0xe0,0x7c,0x71,0xad, -0x67,0x40,0xb3,0x24,0x29,0x16,0xf9,0xc4,0xdb,0x18,0x07,0xb2, -0x17,0x5e,0x77,0xb9,0x5d,0xaa,0xc6,0xa4,0x54,0x4a,0x86,0xe4, -0x8d,0x4d,0x84,0x44,0x53,0x65,0x25,0x04,0x2a,0x0b,0xea,0x47, -0xd9,0x05,0x27,0xdc,0x4f,0x1c,0x95,0x28,0x19,0x96,0x41,0x1f, -0xe5,0x93,0xf3,0x1b,0x51,0x27,0x46,0x56,0xd6,0xe6,0x4f,0xa3, -0xdb,0x7b,0x00,0xc6,0xc3,0x6e,0x2e,0x11,0x01,0x54,0x59,0xf6, -0x58,0x48,0xb4,0x6a,0xa9,0x6d,0x39,0x76,0x0f,0x88,0x2c,0xee, -0x7f,0x20,0x8c,0xc0,0x56,0x03,0x38,0x6d,0x44,0x58,0x90,0xc0, -0x05,0x4a,0x73,0xb2,0xdf,0x45,0xdf,0xbd,0xee,0x65,0x06,0x6a, -0x52,0xf3,0x08,0x81,0x9c,0x33,0x40,0xab,0xed,0xa5,0x91,0xee, -0x2b,0x75,0x09,0x83,0x9f,0xfa,0xb4,0x6b,0x65,0x12,0xae,0x71, -0xf6,0x7b,0x58,0x32,0x6e,0xac,0x54,0x99,0x7e,0xa2,0x92,0x1b, -0xa5,0xa0,0xc6,0xd8,0x02,0x1c,0x19,0x61,0xbf,0x79,0x8a,0xf8, -0x10,0x20,0x59,0x66,0x34,0xcf,0x43,0xc9,0x04,0x9a,0x00,0xf4, -0x2a,0x6b,0x06,0x22,0x2e,0xb2,0x81,0x86,0x04,0x37,0x52,0xef, -0x0d,0xde,0xb7,0x99,0x11,0x88,0xa0,0x43,0xbe,0x60,0x98,0x76, -0x1d,0xfd,0x13,0x79,0x4e,0xb5,0x1f,0xc3,0xcf,0x7e,0xf8,0xbf, -0xe0,0xdd,0x67,0x03,0x76,0x2e,0x83,0xe1,0xb3,0x07,0x88,0x4d, -0x9a,0x0c,0xfb,0x97,0x1f,0xd6,0x1f,0xd4,0xe5,0x33,0x88,0x11, -0xcd,0x5d,0x02,0x10,0x69,0xb0,0xeb,0xc6,0x8b,0x95,0xa8,0x64, -0xba,0x0b,0x32,0x2c,0x06,0xef,0x55,0x21,0x47,0x8a,0x04,0x99, -0x56,0x63,0x56,0xce,0xd4,0x7a,0xee,0x8c,0x35,0x34,0xcb,0x63, -0x17,0xcd,0xdb,0x49,0xa4,0xcc,0x0d,0x1c,0x46,0xe0,0xb1,0x99, -0xe8,0x87,0x24,0x92,0xc1,0x44,0x68,0x45,0x3a,0x4e,0xb8,0x1b, -0xd3,0x22,0x45,0xec,0x95,0x1a,0xb6,0x25,0xe1,0x99,0x32,0x85, -0xc0,0x12,0x75,0xf5,0xe7,0x06,0x8d,0x2c,0xb9,0x59,0x11,0xe9, -0xec,0x87,0x8e,0xb7,0x07,0x47,0x50,0x19,0x31,0x20,0x47,0xe4, -0x49,0x94,0x14,0x77,0x82,0x84,0x34,0xe8,0xe0,0xe9,0x4b,0x0e, -0x41,0x51,0x60,0xdd,0x0a,0x97,0x14,0xe4,0xd4,0x2e,0x55,0x44, -0x29,0x4a,0x20,0x7b,0xbd,0xc2,0xb0,0x23,0x86,0x61,0x94,0x44, -0x06,0x1d,0x1b,0xca,0x03,0x21,0x7a,0xd5,0x82,0x31,0x60,0x4e, -0x34,0xeb,0x10,0xf9,0x3b,0xdd,0x2b,0xa1,0x47,0xe6,0xb4,0x42, -0x85,0xd6,0x70,0x89,0x45,0xf1,0x74,0x38,0x93,0x62,0x6d,0x54, -0xa4,0xb9,0x76,0xa6,0xd3,0x4c,0xde,0xbe,0x1c,0x5c,0xa1,0x14, -0xf9,0x1c,0x6a,0x10,0x06,0x2a,0xb0,0xd6,0xa9,0x5b,0x67,0x69, -0x14,0x05,0x1c,0xe6,0xc7,0xb8,0x56,0xb8,0x10,0x8d,0xe7,0x0a, -0x59,0x3e,0xdc,0xb2,0xcd,0x9d,0xfe,0x72,0x1a,0x48,0x43,0x9e, -0x4f,0x73,0x98,0x49,0xc7,0x19,0x0c,0xc9,0x4e,0x20,0x44,0x25, -0x06,0xed,0x4f,0x50,0x71,0xcd,0x05,0xb0,0x66,0x93,0x60,0x12, -0xde,0xa9,0x43,0xdc,0xc3,0xf1,0x59,0x6a,0x60,0x62,0x25,0x25, -0xc2,0xab,0xa0,0x25,0xa9,0xda,0x84,0x26,0x40,0x51,0xf6,0x31, -0xf9,0xa4,0xf0,0x85,0x21,0x8f,0xaa,0x61,0x17,0x05,0x43,0x82, -0xa1,0x88,0x54,0x84,0xd0,0x5e,0x39,0x5d,0xc7,0xce,0x21,0x1d, -0x1d,0xed,0x9c,0xe2,0xb5,0x4b,0xd0,0x53,0xf1,0x65,0xe3,0x76, -0xd5,0x40,0x8b,0xba,0x69,0xca,0x29,0xa6,0xd2,0xb4,0x02,0x95, -0x13,0x6e,0xe7,0x37,0x71,0xe1,0xfb,0x52,0xe5,0x90,0x09,0x79, -0x98,0x7d,0xc9,0x9c,0x08,0x87,0x17,0x15,0xfc,0x25,0x66,0x41, -0x96,0x75,0xaa,0x0c,0xfb,0x7c,0xa7,0x0b,0xa5,0x95,0xf7,0x68, -0xf0,0x48,0xbe,0x92,0x60,0x24,0xe7,0x3d,0xaf,0x9e,0xa2,0xda, -0xc1,0xb0,0xd7,0xd7,0xcd,0x50,0xc9,0x65,0xb6,0xb8,0x04,0xef, -0x45,0x46,0x0d,0x05,0x0f,0x86,0xe6,0x28,0x74,0x47,0x96,0x6e, -0x88,0xe4,0x2b,0xed,0xad,0xd9,0x4b,0x68,0xd8,0x1e,0xbd,0x7f, -0x81,0x64,0x42,0x53,0x5a,0x7a,0xd7,0x8b,0x7b,0x8e,0x73,0x68, -0x06,0x4b,0x43,0x9e,0x62,0x1f,0x16,0xbc,0x75,0xf0,0x63,0xde, -0xa0,0xa9,0x11,0x24,0x55,0xfc,0x44,0x72,0x94,0x91,0xe6,0x64, -0x8a,0xaf,0x60,0x85,0xf2,0x2f,0x84,0x04,0x25,0x35,0x01,0xae, -0x21,0x90,0x28,0x28,0x7c,0x48,0x5a,0x51,0x0b,0xd0,0xd3,0x2d, -0x7d,0x8c,0x1e,0xb1,0x20,0x05,0xe3,0xb3,0x48,0x58,0x30,0x18, -0xac,0x59,0xbf,0x30,0x69,0xab,0x4c,0xdb,0xba,0xa6,0x9c,0xa5, -0x7b,0xdd,0xd5,0xac,0x3a,0xb5,0xbb,0xc4,0xbd,0x1c,0x86,0x3b, -0x68,0xb9,0x8a,0x2a,0x18,0x67,0xa4,0xaa,0x67,0xd5,0x9a,0xc6, -0x3c,0x72,0x42,0x00,0x8a,0x31,0xa3,0xee,0x06,0xbd,0x06,0xc9, -0xcc,0xd8,0xd3,0xac,0x48,0x26,0x99,0x0d,0x1c,0xe3,0xbb,0xa4, -0xb2,0x26,0x1b,0xdd,0x06,0x32,0x3a,0x6a,0x67,0xed,0xce,0x8e, -0x24,0x0a,0x69,0xea,0x02,0x61,0xf1,0x00,0x31,0xbd,0x9b,0x22, -0x8a,0x82,0x58,0xe6,0x80,0xc2,0x3c,0x20,0x00,0x33,0x90,0xaa, -0xf0,0x43,0xcb,0x1f,0x1a,0xf4,0xe8,0xa3,0xdc,0x01,0x37,0x79, -0xe1,0xc6,0x05,0x3e,0x8b,0x94,0x2d,0x3a,0x9a,0x39,0xdd,0xce, -0xbc,0xbb,0x1c,0xc0,0x63,0xee,0x0d,0x01,0x2c,0x14,0x4d,0xa5, -0x7f,0x0c,0x43,0x16,0xc1,0x70,0xa6,0xb5,0x2f,0x3a,0xbb,0xbe, -0x57,0xa7,0x95,0x00,0x91, +0x0a,0x90,0x5c,0x8e,0x51,0xa9,0x0c,0xeb,0x7a,0x31,0xcc,0xc6, +0xa7,0x8e,0x62,0x6f,0x3d,0x94,0x77,0xd5,0x93,0xac,0x25,0xde, +0xfb,0xf1,0xe7,0xaf,0x06,0x44,0x90,0xfa,0x64,0x6a,0x97,0xbc, +0x79,0x21,0xaf,0x68,0x0f,0x69,0x9b,0x06,0xd6,0x83,0x66,0x69, +0x54,0xed,0x99,0xbd,0x61,0x71,0xc7,0x86,0xc4,0x66,0x35,0xe1, +0xeb,0xfc,0x84,0x50,0x67,0x10,0xe1,0x22,0xc9,0x60,0x1c,0x82, +0x39,0x6e,0x90,0x55,0x68,0xfb,0x0b,0x0c,0x9e,0x15,0xc7,0x97, +0x6e,0x11,0xe0,0xdc,0x35,0x74,0xd4,0x5c,0x2a,0x0d,0x7f,0xb5, +0xd9,0x50,0xc8,0x1c,0x31,0xed,0x88,0x8a,0x90,0x13,0x10,0xba, +0xf7,0x35,0x14,0xc2,0x0b,0x7c,0xb9,0x14,0x77,0x7b,0xe2,0x8e, +0x49,0x32,0xbb,0x49,0x7e,0xe6,0x07,0x8d,0x6d,0xbc,0x41,0x21, +0xe4,0x66,0x56,0x30,0x56,0x31,0xb3,0xcc,0xdd,0x7f,0xf8,0x4e, +0x38,0x3c,0x86,0x30,0x0d,0xe9,0xe8,0x0a,0xb8,0x2f,0xe7,0xaf, +0x8a,0x0a,0xc0,0xa9,0x82,0xde,0x7b,0x90,0x76,0x96,0x59,0xee, +0xc3,0x93,0xd0,0x93,0x20,0x16,0x9d,0xff,0x39,0x26,0xbc,0x02, +0x33,0x84,0x7b,0x73,0x02,0x18,0x38,0xd8,0xc1,0x7b,0x46,0x45, +0xe6,0x58,0x67,0x8a,0xf5,0x86,0xd0,0xee,0x96,0x26,0x40,0x49, +0xa9,0x1d,0x76,0xc8,0x75,0xa8,0xb5,0x4c,0x1d,0xdf,0xfa,0x42, +0x6a,0x82,0x37,0xc5,0xef,0x96,0x82,0xdf,0x43,0x02,0x8a,0x4e, +0x7b,0xd9,0xc6,0x73,0x3c,0x2c,0x29,0xe6,0x35,0xd6,0x89,0x8f, +0xd5,0xdd,0xa9,0xff,0x85,0x86,0x97,0x6c,0x5b,0x55,0x51,0xd2, +0x0c,0x59,0x48,0xb3,0x33,0x33,0x5a,0x34,0x05,0xc0,0xfa,0xca, +0x11,0x95,0xa2,0x15,0x11,0xe5,0x70,0xfe,0x91,0x52,0x83,0xb9, +0x52,0x41,0x24,0xd2,0x58,0xab,0x04,0x1c,0xf5,0x63,0x80,0x1a, +0x12,0x24,0x71,0x39,0x84,0x47,0x92,0x80,0x09,0x64,0x55,0xfe, +0x44,0x1f,0x71,0x19,0xf3,0x92,0xb0,0xca,0x7d,0x75,0xb5,0x91, +0xab,0x7c,0x8f,0xf6,0x64,0x02,0x89,0xab,0x16,0xa7,0x67,0x3d, +0xc5,0xf2,0x46,0x1f,0x04,0xca,0x11,0x65,0x53,0x05,0x5f,0xa1, +0x86,0x32,0xa0,0xc8,0xf7,0xf4,0xab,0x04,0x3e,0x01,0xd9,0x50, +0xe5,0x5a,0x6a,0x6d,0x66,0xca,0xea,0xa5,0x94,0xd4,0x06,0x1e, +0xa5,0xaa,0xd6,0xe6,0xeb,0x95,0xc1,0xab,0x46,0x34,0x82,0xd5, +0x71,0x62,0x8f,0x98,0x7c,0xcc,0x20,0x08,0x84,0xde,0x47,0x23, +0x97,0x64,0x12,0x11,0x44,0x07,0xc3,0x4a,0x68,0x4d,0x96,0xe6, +0x13,0x32,0x17,0x90,0x3c,0x81,0x9e,0x54,0xfd,0x6b,0xda,0x81, +0xbe,0xe5,0x29,0xf5,0xc0,0x6d,0x2e,0x05,0x3e,0x56,0x0b,0xa3, +0x22,0x67,0xb2,0x1c,0xe6,0xbf,0xd6,0x5b,0x46,0xed,0x75,0x93, +0x42,0xc3,0x93,0x70,0x3c,0xc5,0xd5,0x09,0xa4,0xf8,0x7c,0x50, +0x43,0xe7,0xe0,0xda,0xdd,0x17,0x8d,0x6e,0xfb,0x1a,0xc9,0x33, +0xbc,0xc4,0xd1,0x72,0x00,0x18,0x56,0x3f,0xfa,0xf8,0xb2,0xd9, +0x13,0xbd,0x06,0x74,0x17,0x99,0x8b,0xc7,0xa5,0x8a,0x90,0x3f, +0x16,0x65,0xa6,0xcf,0x5a,0x0c,0x7f,0x34,0x67,0xe9,0x3a,0x00, +0xee,0x2b,0x28,0x98,0x94,0x71,0xb7,0xf5,0x0d,0x9b,0xee,0x19, +0xbf,0x55,0x61,0x3b,0xa2,0xb9,0x8d,0xea,0x26,0xad,0x34,0x0b, +0xc0,0xdf,0x9c,0x53,0xde,0x16,0x50,0xf9,0x15,0x20,0x23,0xc9, +0x8d,0xc3,0xa6,0x28,0x1e,0x67,0x32,0x62,0x80,0x2b,0x66,0xdd, +0x8d,0x59,0x37,0xa2,0xf0,0x93,0xda,0x69,0x12,0x53,0x12,0x05, +0x9a,0x96,0x40,0x8a,0xc7,0x79,0x1b,0xc8,0xdb,0x84,0x95,0x4a, +0x16,0xb3,0xa5,0x3f,0x65,0x16,0x3f,0x19,0x5c,0x4a,0x10,0x2a, +0xfd,0x06,0xd0,0xe4,0xdc,0x73,0xa0,0x25,0xed,0x1b,0xcd,0x56, +0x8c,0x58,0x2c,0xf1,0x28,0xe9,0xde,0x6c,0x5d,0xb5,0x74,0xd2, +0x95,0xac,0xc4,0x86,0x05,0x3a,0xf0,0x98,0xa2,0x36,0x47,0x85, +0x1e,0xf3,0x47,0xdf,0x67,0x2a,0xde,0xbe,0xb0,0x50,0xc6,0xb4, +0x9e,0x29,0x58,0x18,0xd1,0x9a,0x13,0x29,0x28,0x32,0xa6,0x8f, +0xae,0xe1,0x45,0x34,0x3e,0xb0,0x8b,0x5b,0x04,0x45,0x56,0x22, +0xc6,0x18,0x2b,0x29,0x01,0xbe,0x63,0xb9,0x4f,0xa2,0x6d,0x9a, +0xb4,0xa2,0xb9,0xd7,0xd6,0x49,0x70,0xe9,0x83,0xa2,0xbd,0x5a, +0x6c,0x81,0x1e,0x6b,0xc3,0x11,0xa8,0xe1,0x5a,0x6e,0x63,0xc5, +0xc2,0xc5,0xd8,0x72,0xfe,0x13,0x93,0xa9,0x16,0xbc,0x15,0x06, +0x84,0x2b,0x99,0x2c,0x5b,0x6c,0x61,0x58,0x69,0x29,0x89,0xec, +0x0c,0x02,0xeb,0x34,0x3e,0xac,0xc8,0x74,0x22,0x39,0xc6,0x3f, +0x94,0xc1,0x23,0x65,0x3f,0xc2,0xa1,0x6c,0x30,0x3b,0x66,0xf4, +0xe4,0xd7,0xec,0x92,0x14,0x14,0x27,0x38,0x6e,0x14,0x84,0x43, +0x3c,0x1f,0x0b,0x30,0x56,0xb4,0x28,0xf0,0xbd,0x62,0x8c,0x27, +0x47,0x24,0x72,0x85,0x19,0x19,0xa5,0x9d,0x18,0x98,0x76,0xfb, +0xd6,0x84,0x85,0xae,0x14,0xc5,0xe1,0x32,0x5d,0x66,0x57,0x1a, +0xf9,0x27,0x13,0xe3,0x9b,0x0e,0x29,0xfe,0x62,0x00,0xc3,0xae, +0x55,0x3c,0x22,0x55,0x9f,0x0e,0x1f,0x0d,0xb1,0x79,0x83,0xd3, +0x55,0x9f,0x13,0x9a,0x37,0x38,0xe5,0x54,0x3e,0x79,0x46,0x1c, +0x30,0x83,0x85,0x5e,0x71,0x9e,0x33,0x07,0x25,0x4e,0xdd,0x35, +0x66,0x37,0xa3,0x16,0xa9,0x8c,0x4b,0x64,0xda,0x06,0x98,0x26, +0x21,0x1d,0xf1,0x61,0x76,0x08,0x6e,0xdd,0x39,0xf4,0x9a,0xe6, +0x39,0x0c,0xa1,0x04,0xf6,0x71,0x93,0xae,0x9e,0x8b,0x78,0x75, +0x23,0xe9,0xcd,0x00,0xdf,0x85,0x7d,0xe0,0x78,0x13,0xc0,0xdd, +0x87,0xb5,0x69,0x99,0x2d,0xeb,0x65,0x10,0x3c,0xa6,0x88,0x5b, +0x23,0x86,0x75,0x39,0xcc,0xa9,0xe5,0x8b,0x1a,0x48,0xba,0x2a, +0x2a,0xe4,0x96,0x15,0x61,0x78,0x91,0x49,0x3f,0x01,0x67,0x7c, +0x7c,0x97,0xf6,0x2b,0x26,0xf4,0x13,0x01,0xc0,0x11,0x1f,0xa0, +0xb7,0x5b,0x91,0xf9,0xba,0xce,0xc6,0xa1,0x5e,0x16,0xf4,0x85, +0xa7,0x53,0x07,0x9b,0xb1,0x46,0x52,0x03,0x8d,0x47,0x80,0x26, +0x37,0xb7,0x97,0x8e,0x5c,0x00,0x0a,0x26,0xb6,0x0d,0x94,0x19, +0x11,0x2a,0x1d,0x51,0xc9,0x01,0x13,0x43,0xb8,0x4c,0xda,0x7d, +0x9a,0xf6,0xb3,0x81,0xfe,0xf5,0x53,0x44,0xac,0x86,0x44,0x9e, +0xe4,0x51,0x8d,0x9c,0x95,0x1d,0x67,0xc7,0x42,0xae,0x10,0x27, +0x71,0x76,0xa1,0xf7,0x69,0x16,0x2a,0xbd,0x67,0x27,0x27,0xc3, +0x60,0x0b,0xc5,0xbd,0xc1,0x45,0x07,0xc1,0x97,0xea,0xd9,0x31, +0xd3,0x9f,0x42,0x2e,0x82,0x41,0x61,0xa9,0x5c,0xc0,0x86,0x29, +0xe1,0xbb,0x3d,0x2e,0x47,0x6b,0xd4,0x20,0x97,0x3b,0x24,0x6c, +0x53,0x74,0xd1,0xa2,0xfb,0x8b,0x6d,0xab,0x1a,0x2d,0xe3,0xb4, +0xd5,0x6b,0xbc,0x8e,0x48,0x60,0x03,0x91,0x3f,0x32,0x59,0x7c, +0x4b,0xf1,0xd3,0x0b,0x62,0x41,0x78,0x72,0x5c,0x19,0xf2,0xa0, +0x1e,0x18,0x9a,0x42,0x26,0xdb,0xa1,0x02,0x42,0xc1,0xab,0xc2, +0x1d,0xa1,0xcd,0xe0,0x27,0x65,0x88,0x8b,0xa7,0x98,0x2f,0x64, +0x7f,0x4c,0x3a,0xab,0x18,0x24,0xe7,0xae,0x19,0x95,0x99,0x05, +0xee,0xa7,0x56,0x22,0xda,0x02,0x35,0x5b,0x47,0x77,0x5e,0xab, +0xa8,0x96,0x51,0x31,0x45,0x9a,0xe3,0x6a,0x7a,0x55,0x89,0xfc, +0x4f,0x24,0x42,0xc4,0x5a,0x2a,0x60,0x1f,0xf2,0x39,0x12,0x69, +0xc8,0xaf,0x04,0x69,0xa3,0xee,0xca,0x51,0xec,0xe3,0x16,0x64, +0xa9,0x05,0x22,0xdd,0xdd,0x1a,0x43,0xae,0x69,0xfa,0xb4,0x60, +0x9e,0xac,0x34,0xe9,0xf0,0x85,0x5f,0xcd,0x69,0xda,0x56,0x21, +0x6b,0x45,0xfd,0x8a,0x18,0xd6,0x53,0x97,0xe2,0xcf,0x35,0x26, +0xc8,0x6b,0x66,0x9a,0x63,0x3b,0xc2,0x94,0xe0,0xab,0xc5,0x0b, +0x12,0x80,0xa1,0x58,0xe0,0x45,0x92,0x04,0xad,0x42,0xa2,0x16, +0xa6,0x03,0x08,0x6d,0x09,0x94,0xad,0x8a,0xb3,0x05,0xa0,0xb4, +0x51,0x07,0x11,0x9d,0x65,0x3a,0x2d,0x85,0x4b,0xe5,0x1e,0x0c, +0xce,0x8a,0xa4,0x54,0xe3,0x8f,0x3b,0xca,0x5c,0x78,0xc9,0xea, +0xa4,0x8a,0x5d,0x5d,0x2b,0x02,0x6f,0x22,0x22,0x4e,0x23,0x61, +0xcd,0xad,0xe3,0x31,0x7e,0x0a,0xca,0xb3,0xc1,0x18,0x0c,0x55, +0x87,0xe8,0xd4,0xcf,0xfa,0x69,0x5d,0xad,0xb2,0x8a,0x90,0x21, +0x27,0x1d,0x21,0x30,0xa4,0x83,0xd6,0x22,0x25,0x50,0x83,0xab, +0xc1,0x43,0x6a,0x2e,0xc3,0xd6,0xf2,0x6a,0x24,0x2e,0xa4,0x7a, +0x52,0x74,0x83,0xfa,0x59,0xca,0x46,0x0a,0xc3,0xab,0x7b,0x73, +0xf0,0x27,0xb3,0x77,0x54,0xd6,0x1b,0xd9,0xd0,0x78,0x73,0x95, +0x43,0x7b,0x41,0x1d,0x61,0x94,0x5b,0x2a,0x92,0x8c,0xa4,0x05, +0x06,0xe7,0x67,0xbd,0x65,0x0f,0x71,0x35,0x82,0x66,0x84,0xca, +0xdf,0x3a,0xf2,0x12,0x01,0x8e,0x80,0x37,0x97,0xd6,0x2b,0xde, +0x4b,0x40,0xa7,0x25,0x22,0x9b,0xa6,0x70,0x8d,0xea,0xfa,0x49, +0x43,0xe7,0x2b,0x20,0x78,0xca,0x19,0x5c,0x1c,0xbf,0xec,0x84, +0x0b,0x43,0x57,0x26,0x2e,0x5e,0x14,0xd2,0x3b,0xcc,0x62,0x6d, +0xc6,0x11,0x41,0xf1,0x8d,0x97,0x03,0xd9,0x99,0x06,0x52,0x23, +0x71,0x18,0xb8,0x91,0xc8,0x29,0x5a,0x42,0x1c,0x5a,0x04,0x00, +0x56,0x29,0xf8,0x96,0xad,0x61,0xe3,0x45,0x16,0x40,0x61,0x02, +0x42,0xd8,0x2d,0x13,0xfc,0x57,0x86,0xa6,0xe0,0x6a,0xe2,0x4c, +0x4e,0x35,0x31,0x32,0x29,0x6a,0x1c,0xbe,0x64,0x7c,0xa7,0x30, +0x19,0xdb,0x94,0x3e,0xd4,0x26,0x34,0x6e,0x16,0x71,0x0d,0xa0, +0xe1,0x10,0x0e,0x31,0x45,0xde,0xfe,0x23,0x62,0xaf,0x87,0x9e, +0xb6,0x4d,0xa5,0x1d,0x87,0xc1,0xb4,0x39,0x61,0xf5,0x19,0x2d, +0xb2,0x98,0xae,0xf8,0xa1,0x4c,0xd3,0xb8,0x6f,0x89,0x78,0x06, +0xc7,0xee,0xc9,0x5d,0x31,0xaf,0xf7,0x42,0x48,0x7c,0xa8,0xfd, +0xce,0x81,0x3d,0x29,0xc0,0x92,0x52,0x63,0x99,0xe0,0x86,0xd5, +0x9f,0x36,0x10,0xc3,0x61,0xab,0xb0,0x4f,0xf4,0x0a,0x27,0x57, +0xc5,0xbb,0x18,0xfd,0x7a,0x10,0xaf,0x6c,0x29,0x0d,0x88,0x87, +0xa4,0x51,0xad,0x2b,0x12,0x01,0x2a,0xc6,0x40,0x5b,0x48,0x31, +0xf9,0x09,0x25,0xba,0x4f,0x40,0x65,0x1e,0x6b,0x1a,0xff,0x68, +0x92,0x52,0x00,0x02,0x10,0x9b,0x00,0x04,0xbb,0xd0,0x41,0xc3, +0x36,0x99,0x3b,0x4d,0x76,0x82,0x9a,0xa0,0x89,0x96,0x08,0x58, +0xda,0x48,0x04,0xcf,0x19,0x95,0xa9,0xfe,0x59,0xa4,0x92,0x19, +0x02,0x96,0x9a,0x9b,0xf1,0xce,0x47,0x59,0xaa,0xc9,0x49,0x26, +0x9b,0x59,0x2f,0x65,0xff,0x30,0x5f,0x8c,0xc6,0x86,0xf4,0xc6, +0x04,0x0a,0xc3,0xda,0x99,0x48,0x63,0x4a,0xee,0xc3,0xfc,0x93, +0x11,0x15,0xb4,0x2f,0x11,0x28,0x6c,0x6e,0x14,0x14,0xaa,0xe2, +0xc6,0x6e,0x39,0x1e,0xf1,0x2f,0x4d,0xf2,0x82,0xce,0xd9,0x66, +0xf3,0xaa,0x8d,0x4d,0x6a,0xff,0x2a,0xf4,0xaf,0xf8,0x5d,0x64, +0x50,0xc0,0x95,0x6b,0xc8,0x01,0xa2,0x2f,0x37,0xdb,0xe3,0xb4, +0x6b,0x40,0xee,0x98,0xc6,0xc8,0xd8,0x33,0x16,0x67,0xe9,0xa1, +0x19,0x19,0x00,0x8e,0xe5,0xf1,0xf0,0xef,0xae,0x82,0x58,0xfe, +0xd3,0x52,0x6b,0x9d,0x2f,0x69,0x1c,0xb9,0x13,0x9d,0x6e,0x03, +0x8c,0x31,0x26,0xb1,0x18,0xc7,0xb4,0xa9,0xfc,0x11,0x9d,0x9f, +0x2e,0x8a,0xf1,0x88,0x5b,0x12,0xdb,0xe0,0x05,0x41,0x15,0xb4, +0x7e,0xa1,0xaf,0x18,0xa6,0x20,0x58,0x88,0x58,0x14,0x0a,0x64, +0x23,0xf0,0x55,0xcc,0x22, }; static const byte FALCON1024_sig[] = { -0x3a,0x26,0xae,0x20,0x5d,0xc6,0x25,0xe0,0x80,0xf0,0x4d,0xec, -0x22,0xb0,0xab,0xff,0x39,0xfb,0x23,0xef,0xe2,0x50,0x91,0x8e, -0xb4,0x61,0xf2,0x28,0x25,0xf3,0xec,0x00,0x86,0xe6,0x61,0x37, -0x16,0x1b,0xef,0xb2,0x73,0xdc,0xe7,0x75,0x34,0xa9,0xcc,0x1e, -0x79,0x4f,0x85,0x29,0x5d,0x8b,0xe9,0xad,0x6a,0x56,0xc2,0x3e, -0x93,0xc9,0x5a,0xa6,0x15,0xa6,0xe6,0x62,0xb4,0x48,0xfe,0xd1, -0xa3,0xc2,0x8d,0xb2,0xb1,0x66,0x99,0xc0,0x58,0xfe,0x97,0x13, -0x59,0x05,0xdb,0x54,0x32,0xa5,0x9d,0xbc,0xaf,0x21,0xc2,0xab, -0xb1,0x8b,0xae,0x96,0xcd,0x1e,0x04,0xf6,0x42,0x08,0xdf,0xa2, -0x34,0xa4,0x43,0x9b,0xae,0x84,0xc7,0x6b,0xe9,0xc9,0x5d,0xc6, -0xdc,0xf0,0x6b,0x88,0x3a,0xf2,0x9b,0xc6,0xd9,0x9f,0x95,0x95, -0x15,0x95,0xd0,0xc9,0x67,0x5a,0x58,0xcd,0x7b,0xf3,0xce,0x84, -0x8b,0x33,0x29,0x40,0x49,0x9f,0xce,0xb9,0x31,0x36,0x18,0x28, -0xad,0x43,0x30,0xd9,0x61,0x11,0x76,0xb1,0xc0,0xf4,0xdb,0x7b, -0xf5,0x93,0x35,0x94,0x67,0x7d,0x9b,0x84,0xe5,0x19,0xe6,0x8a, -0x1b,0x8f,0x82,0x6f,0x2b,0x8e,0x10,0xdf,0x4d,0x1f,0xce,0xd6, -0xdf,0x9e,0x79,0x58,0x64,0x1d,0xbd,0xa8,0x76,0x35,0x7b,0x68, -0xcf,0x1d,0xea,0x68,0xd9,0xc8,0xfb,0xa3,0x34,0x65,0xe0,0xcc, -0xf3,0x71,0xa7,0x23,0xd4,0xfc,0xa5,0x8d,0x2f,0x82,0x4d,0x61, -0x8c,0xf1,0xa6,0xa8,0x4f,0xd8,0xa3,0x44,0x7b,0x32,0x4d,0x0a, -0x94,0x9c,0x31,0xe4,0x59,0x11,0x79,0xc4,0xf5,0x87,0x86,0x10, -0x25,0x02,0x44,0xb2,0xc7,0x18,0xe7,0x6f,0x8a,0xed,0x56,0x1b, -0xf9,0x4b,0xe5,0xb4,0x92,0xb8,0x97,0x59,0x23,0xe9,0xff,0x50, -0x61,0xac,0xdc,0x51,0x30,0x68,0x6a,0x1e,0xed,0xb4,0x5a,0xec, -0x8b,0x31,0xcc,0xf6,0xa2,0xfe,0x91,0x30,0xbf,0x49,0x4a,0x8e, -0xd8,0xd1,0x13,0xe8,0x1e,0xd5,0xae,0xa5,0xcd,0x8d,0x6f,0x0d, -0x51,0x9d,0xbf,0xd7,0x36,0x63,0x11,0x19,0x21,0x7d,0x9a,0x4d, -0x61,0x38,0x64,0x53,0xd4,0xb4,0xd4,0x49,0xcd,0x55,0x3b,0x3d, -0x5d,0x93,0xcf,0x2f,0x86,0x2f,0x16,0x9c,0xa6,0x7a,0x46,0xc0, -0xa4,0x70,0x62,0x33,0xe6,0x4d,0x28,0x77,0x16,0xd8,0xbc,0x77, -0x16,0x84,0xc0,0xd6,0xed,0x02,0x7d,0xe0,0xca,0x4f,0xb1,0x6c, -0xf9,0x7c,0xa7,0xce,0x68,0x9d,0x37,0x41,0xfa,0x91,0x45,0x2a, -0xdd,0xf2,0x3b,0xb8,0xd3,0x5a,0x98,0x2f,0x84,0x62,0xdf,0xef, -0x3f,0x1d,0xa5,0x7e,0x4f,0x79,0x94,0x75,0x6c,0x35,0x3a,0xca, -0xb5,0x12,0xf6,0x8c,0xae,0x4f,0x0d,0xaa,0xcb,0x67,0xdb,0x2c, -0x73,0xb9,0x34,0xb0,0x64,0x93,0x56,0x35,0x8d,0x52,0x94,0x5a, -0x31,0xd3,0xec,0xf1,0x93,0x86,0xe3,0x33,0xe1,0x83,0x54,0x32, -0x0c,0xf2,0x41,0x5e,0xb5,0x4a,0x79,0xe6,0xd3,0x11,0x37,0xfb, -0xd5,0x62,0xa8,0xfa,0xd5,0xe2,0xc6,0xfb,0x10,0xcf,0xaf,0xee, -0x4a,0x28,0xff,0x84,0x15,0xf2,0x6a,0x90,0xac,0xe3,0x32,0x8a, -0xe7,0x1e,0x76,0x35,0x05,0xf5,0x70,0x1e,0x1c,0x0b,0x95,0x88, -0x4e,0x8a,0x14,0x06,0x0b,0xc1,0xda,0x98,0x28,0x7f,0xef,0x87, -0x8c,0xc6,0xf7,0x74,0x28,0x55,0xe3,0x1c,0x96,0x4e,0x2d,0x3a, -0x7f,0xf5,0x2e,0x9f,0x2c,0xf4,0x23,0x50,0x91,0x7e,0xfd,0x4f, -0xa9,0xfd,0x36,0xf1,0x91,0x9e,0xa0,0x93,0xbf,0xbe,0xad,0x5e, -0xc1,0xbf,0xba,0xbb,0x84,0xb3,0xb0,0xc4,0x98,0x74,0xd7,0x23, -0x81,0xa1,0x41,0xe9,0xfa,0xb3,0xdf,0x59,0xb6,0x25,0x39,0xd7, -0xa9,0xd9,0x7e,0xe1,0xd7,0x3c,0x7b,0x1b,0xee,0xd1,0xb1,0x7e, -0x14,0x32,0x91,0xa3,0x2a,0x85,0x25,0x45,0x86,0x1f,0xb4,0xdb, -0x4a,0xb4,0xb9,0x57,0xb4,0xe3,0xf5,0x78,0x36,0x0f,0x2d,0x4d, -0xc8,0xdd,0x41,0x76,0xf6,0xc7,0x9b,0x0c,0xcb,0x52,0xe2,0xf0, -0xbb,0xc5,0x00,0x54,0x9a,0x44,0x35,0x0f,0xcc,0x5f,0x12,0x06, -0x45,0xd1,0x7d,0x19,0x26,0x98,0x3f,0xd3,0x9d,0xad,0xaa,0xac, -0xd3,0x9b,0xe6,0xb6,0x0b,0x78,0xac,0x6f,0xeb,0xe4,0x23,0x70, -0x1f,0x36,0x82,0x6b,0x41,0x22,0x1f,0xd8,0x6e,0x99,0x03,0xb4, -0xd2,0x5f,0x8d,0xe3,0x62,0xe3,0x22,0x4a,0x81,0xa5,0xc4,0x27, -0x7a,0xb9,0x9e,0xd6,0xcd,0x6e,0x7e,0xa0,0x07,0x4d,0x44,0xe4, -0xae,0xc8,0xcd,0x96,0xbf,0xd4,0xb1,0xca,0x59,0x5c,0xaa,0x00, -0xea,0x70,0x2f,0x71,0x1a,0x6e,0x05,0xec,0xe5,0xd0,0xe7,0x19, -0xd4,0x38,0xd3,0x50,0x75,0xe8,0xcd,0x4a,0xe8,0xd6,0x38,0x68, -0xff,0x31,0x64,0x83,0x4b,0x08,0xda,0x76,0xa2,0x9e,0xbc,0x66, -0xc3,0x37,0x14,0x42,0x6d,0xea,0x6d,0xd5,0xc9,0xb1,0xe6,0xec, -0x96,0x1e,0x12,0x11,0xb6,0x4a,0x9e,0x86,0x9a,0x39,0x61,0xc7, -0x43,0x10,0xdc,0xa0,0xcf,0xae,0xf4,0xf9,0xf4,0x46,0xa3,0xca, -0x8a,0x6b,0x9a,0xf9,0x08,0x9f,0xe9,0x62,0xfe,0x07,0x87,0x34, -0x9e,0x5c,0xa3,0xfb,0x78,0x51,0x44,0x6c,0x34,0x6a,0x1f,0x93, -0x02,0xe7,0x78,0xca,0xdd,0x35,0x0f,0xc6,0x1c,0xbe,0xbc,0x3d, -0x22,0xd2,0x68,0x6d,0x6e,0xea,0x5f,0x0c,0xad,0xfb,0x95,0xb2, -0xcf,0x19,0x63,0xb4,0xac,0xe1,0x52,0x71,0xb8,0x0b,0x7d,0xf4, -0x53,0x59,0xaa,0x29,0xe2,0xc4,0x40,0x97,0xf8,0xae,0x58,0xfc, -0xc5,0x5b,0xc8,0xd7,0x6b,0xe6,0x88,0x06,0x28,0x8f,0x5f,0x9a, -0x5b,0xcb,0xb7,0x5e,0x6a,0xb4,0x97,0x27,0xbf,0xa5,0x0f,0x64, -0xd2,0x33,0x8a,0x71,0x53,0xcc,0xb4,0xf7,0xd1,0x8e,0xd7,0xe3, -0x0a,0xb2,0x1f,0xbf,0x82,0x9f,0xca,0x21,0x8c,0x60,0x8c,0x11, -0x0e,0x35,0x3e,0xa5,0x19,0xe6,0xbe,0x3a,0x11,0x59,0x38,0x85, -0x2e,0x78,0x44,0x19,0x16,0x9b,0x09,0x07,0xd2,0x99,0x54,0xa8, -0xc4,0x9e,0xdf,0x56,0x23,0xa9,0x22,0x67,0x65,0x9f,0xe9,0x8b, -0xe9,0x15,0xa8,0x89,0x96,0x1c,0xb5,0x9e,0x3c,0x2b,0x5c,0x84, -0x4c,0x31,0x0e,0xf3,0xd7,0xdb,0x6f,0x94,0x5f,0x76,0x85,0x6e, -0x67,0xe3,0x0d,0x9c,0xa1,0x4f,0xca,0xe7,0x48,0xff,0xc6,0xed, -0x22,0x6e,0x39,0x8c,0x5a,0x36,0xf4,0xe1,0xaa,0x38,0xb8,0x72, -0x22,0xb1,0x6a,0xde,0x19,0x43,0x34,0x6a,0xf4,0x2f,0xe4,0xed, -0x71,0x56,0x90,0xc2,0x12,0xcc,0x62,0x6f,0xfd,0x13,0x78,0x4e, -0x50,0x2a,0x04,0xc9,0x88,0x7c,0xb9,0xf5,0x8c,0x92,0xbb,0xc7, -0x42,0xdc,0x83,0xc1,0x88,0x2e,0x3b,0x9b,0xf4,0xa2,0x65,0x82, -0x36,0x0c,0xee,0xed,0x2e,0x59,0xaf,0x31,0x6d,0x26,0xb5,0x82, -0x15,0x67,0xe5,0x0a,0xf3,0x56,0x6f,0x69,0x6f,0xa5,0x47,0xce, -0xc0,0xff,0x51,0x2d,0x03,0x31,0x22,0x3b,0xf1,0xd5,0x6e,0xdc, -0xf1,0x08,0xc3,0x02,0x58,0xe4,0x76,0xb3,0xf7,0xbf,0x29,0x24, -0x55,0x95,0x4f,0xb4,0x64,0x43,0x2b,0x94,0x76,0xc8,0x11,0xef, -0x83,0x45,0x3b,0x0a,0xaf,0x29,0xb5,0x7a,0x0b,0xc6,0x88,0x8b, -0xe2,0x23,0x69,0xee,0x13,0x50,0x95,0x95,0x35,0xde,0x99,0x28, -0xe0,0xe3,0x37,0xb4,0xa9,0xde,0x57,0x83,0x9c,0x3a,0x08,0x60, -0xdf,0x21,0xbd,0xad,0x62,0xe0,0x60,0x9c,0x9c,0xe2,0xa7,0x20, -0x6b,0x6d,0x7a,0x68,0x23,0x5f,0xca,0x50,0xe7,0x0a,0x13,0x51, -0xfc,0xe3,0x77,0xe0,0x1f,0x82,0x19,0x4c,0xc3,0xda,0x50,0xf5, -0x87,0x53,0xf1,0xd6,0x4f,0xf3,0x12,0xf9,0x12,0xf3,0x8e,0xdb, -0x6f,0x39,0xbd,0x59,0xc7,0xdd,0x9a,0xd1,0x67,0xa4,0x70,0xc1, -0x85,0x83,0xaa,0x76,0xd3,0x79,0xdc,0x90,0xe9,0x9a,0x0a,0x83, -0xd7,0xa3,0xa0,0x5c,0x72,0x22,0x17,0xf7,0x8c,0x88,0x83,0x70, -0x81,0x1e,0x4d,0x4a,0xeb,0xe0,0x9c,0xc1,0xa4,0x50,0x2a,0xa6, -0x1b,0x22,0x79,0x5b,0x44,0x42,0x68,0xcc,0x30,0xe8,0x37,0x07, -0xd4,0x9b,0x63,0x9b,0x9d,0xe9,0xa8,0x4c,0x28,0x3e,0xfa,0xaa, -0xff,0x5c,0xe3,0x33,0x9c,0x99,0x7e,0x6e,0x51,0x83,0x30,0x46, -0x48,0xe6,0x6c,0xcf,0xd2,0xa9,0x92,0xdf,0xab,0xf3,0x0a,0x2e, -0xbd,0x56,0x95,0xe5,0x18,0x24, +0x3a,0x2c,0x49,0x52,0x87,0x43,0x61,0x0a,0xfb,0xd5,0x51,0xf4, +0x8e,0x2b,0x29,0x50,0x3e,0xe1,0x0d,0x8b,0x26,0x2e,0x34,0x64, +0xa8,0x76,0x23,0x5f,0xf6,0x29,0xfa,0xab,0xfc,0xc8,0x10,0x6d, +0x76,0x4d,0x8b,0x8f,0x73,0x63,0xa6,0x73,0x9b,0xc8,0x86,0x8e, +0x61,0x65,0x9d,0xe9,0x5e,0xd1,0xb5,0x29,0x68,0xc9,0x2c,0x81, +0x7e,0x10,0xe4,0xc5,0x15,0x63,0x13,0xd7,0x3f,0x08,0x8a,0x5a, +0xc8,0x6f,0x3d,0x18,0xef,0xa9,0x48,0x0b,0x13,0x40,0xa9,0x98, +0x7d,0xaa,0x83,0x9b,0x4e,0xdc,0x0f,0xf3,0x98,0x80,0xb5,0xf9, +0x9c,0x9f,0x20,0xae,0x55,0x74,0x75,0xbb,0x4e,0xc3,0x14,0x97, +0x4d,0x78,0x08,0xdf,0x0a,0xf9,0xd2,0xab,0xd9,0x24,0x0c,0xd7, +0xf9,0x81,0x4b,0x95,0x36,0x18,0xd5,0xc7,0x24,0x2e,0x06,0xab, +0xbb,0x87,0x38,0x26,0x92,0xe9,0x72,0xa7,0x3c,0xd8,0xdb,0x7f, +0x57,0x2d,0xf4,0x61,0x34,0x8e,0x0b,0x51,0x9c,0x53,0x93,0xba, +0xc3,0x7f,0x74,0x67,0x68,0x5a,0x64,0xc5,0xea,0xa7,0x46,0x63, +0x99,0xc4,0x06,0x14,0x85,0x8e,0x12,0x8d,0x8b,0xc1,0xbf,0xad, +0xd6,0x63,0xe0,0xf0,0x70,0xd7,0x9e,0xdd,0x67,0x88,0x9d,0xef, +0x97,0xd8,0x9d,0x1b,0xb5,0x92,0xed,0xcf,0xf8,0x28,0xef,0x1d, +0xdd,0xfe,0x2b,0xa9,0x61,0x48,0xf1,0x39,0x19,0x43,0x3a,0x84, +0xbe,0xb0,0x9e,0x19,0x94,0x63,0x79,0x4a,0x24,0x53,0x11,0x28, +0xf2,0x41,0x25,0x16,0xc9,0x8f,0xbd,0x06,0x6d,0xa6,0x53,0x4c, +0x94,0xee,0x27,0xb7,0xe2,0x33,0xee,0x34,0xe6,0xc6,0x57,0xd1, +0xbe,0xc5,0xe7,0xa6,0x98,0x3b,0x59,0xbe,0xfe,0x4c,0xd0,0xd6, +0x32,0x15,0xa7,0x74,0xf5,0xf4,0x75,0x73,0x54,0xd9,0x28,0x88, +0xd0,0xb6,0xe7,0x08,0x63,0xbb,0x2a,0x82,0x10,0x2b,0xb8,0x52, +0x25,0x5e,0xe8,0x13,0x68,0x0c,0x10,0xca,0xd5,0x38,0xac,0x45, +0x37,0xe3,0x1b,0xca,0x9a,0x43,0x08,0x4f,0xd9,0xf6,0xaa,0x27, +0x22,0x67,0xd9,0x2c,0xb3,0x48,0xa2,0xf9,0x53,0x78,0x62,0x31, +0x5e,0x9a,0x2c,0x1a,0xb3,0x0c,0x76,0x1c,0x1a,0x45,0x95,0xad, +0x7b,0xf4,0x4c,0xec,0x81,0x35,0x21,0x36,0x86,0x5b,0x6a,0xc3, +0xce,0x93,0x7a,0x0e,0xa9,0xb2,0x8b,0x93,0x79,0x09,0xa7,0x6e, +0xde,0x4a,0x84,0xc8,0xc2,0xc8,0x24,0x0c,0x14,0x01,0x53,0xc3, +0xb8,0x33,0x0d,0xc9,0x83,0x9f,0x78,0x37,0x54,0x25,0xba,0x89, +0x2b,0x9c,0x30,0x63,0x14,0x30,0xeb,0xdd,0x2f,0x3c,0x85,0x8a, +0xfe,0x90,0xd2,0xa3,0xa9,0x2f,0xba,0x16,0xf2,0xaf,0xbb,0x6a, +0xd8,0xd9,0x1c,0xf3,0x64,0xa5,0x68,0xb1,0x0d,0xbb,0x22,0xbf, +0x97,0x4c,0xa2,0xa4,0x5c,0xf1,0x19,0x84,0x86,0x3b,0xb9,0x95, +0xa6,0xce,0x05,0x2b,0xa3,0x63,0xef,0x47,0x52,0xf5,0xfe,0x1e, +0xe8,0xf5,0x1f,0xdb,0x0a,0x5e,0x8f,0xbc,0x50,0x19,0x62,0x57, +0x49,0xc5,0x2e,0x9d,0x43,0xbd,0x9b,0xf8,0x15,0x5a,0x8d,0xf1, +0xda,0xcd,0x66,0x29,0xa9,0xc4,0xf9,0xc8,0xc9,0xf3,0xf9,0xc8, +0xb4,0x1b,0x49,0x27,0x56,0xdc,0xdc,0xb1,0x96,0xf5,0x3a,0x82, +0x9f,0xa5,0xe9,0xa3,0xef,0x85,0xc2,0x12,0xa8,0xa0,0x98,0xe1, +0x8c,0xd6,0x7a,0xf9,0x69,0x17,0xaf,0x31,0x3b,0xf7,0xac,0x19, +0x44,0x65,0x4c,0xbe,0x6e,0x32,0x1f,0xe7,0xe9,0x90,0x3b,0x29, +0xb9,0x27,0x62,0xfe,0xea,0x6f,0xeb,0x62,0x5f,0xd2,0xec,0x2b, +0x85,0x01,0x3a,0x02,0x64,0x81,0xfe,0xc8,0x58,0xb4,0x61,0x12, +0x43,0xff,0xbe,0xbb,0x96,0xdd,0x8b,0x44,0xf6,0x66,0xb0,0xf4, +0x39,0xc4,0x44,0x81,0x6d,0xe0,0xc3,0x19,0x1f,0xc3,0xa1,0x2d, +0xdb,0xdf,0x48,0xd1,0x42,0xdb,0x6d,0x24,0x24,0x4a,0x9c,0xf2, +0x94,0xc2,0x5f,0xb7,0x91,0x9f,0x44,0x63,0x0b,0xc8,0x63,0x04, +0x7d,0x32,0x74,0xf9,0x5a,0x78,0xb9,0x95,0x5d,0x68,0x4c,0x57, +0x81,0xa2,0xce,0x18,0xa8,0x7f,0x3a,0x77,0x68,0xa7,0x1a,0x62, +0x96,0xe2,0x4d,0xce,0xf2,0x0d,0x26,0x14,0x26,0xb4,0x43,0x4c, +0xf2,0x9f,0xe1,0x6e,0x16,0x04,0x46,0x2e,0x64,0x8d,0xd3,0x71, +0xbb,0xaf,0x78,0x5a,0x61,0xf6,0xa1,0x92,0x92,0x87,0xa2,0xb2, +0x3c,0x2a,0xca,0x53,0xfb,0x83,0x76,0x2e,0x30,0x38,0x53,0xe7, +0xc7,0x89,0xa3,0xa8,0x77,0x45,0x86,0x6f,0x87,0xc3,0xf5,0x2b, +0x27,0xbe,0x44,0x63,0x2a,0xb9,0x74,0xe2,0xc9,0x9a,0xa4,0x85, +0x69,0x9b,0x03,0xd7,0x80,0x38,0xca,0xd4,0x05,0xb5,0xf9,0x6b, +0xae,0x4a,0x6b,0xb5,0x22,0xc2,0x77,0x88,0x23,0xd6,0xb5,0xf5, +0xe6,0x39,0x0c,0x3a,0xaa,0x6b,0x11,0xb8,0x85,0xa9,0xb0,0x75, +0x92,0x39,0x3a,0x86,0xe4,0x5e,0xdf,0xc7,0x07,0x77,0xa3,0x21, +0x4f,0xe7,0x3f,0x19,0x8c,0xaa,0xbd,0xb1,0xfd,0x12,0xfb,0x73, +0x96,0xe7,0x5a,0x1c,0xdd,0xa3,0x51,0xd4,0xdc,0x74,0x63,0xec, +0x50,0xec,0x55,0x15,0xe3,0x26,0xa6,0xb6,0x8c,0x7e,0x32,0xea, +0xd9,0x69,0x2f,0x7c,0xdb,0x2f,0xde,0x96,0x53,0x19,0xa7,0xed, +0x0b,0x37,0x47,0x13,0x57,0x11,0x21,0x19,0xe9,0x96,0x8b,0x4c, +0x76,0x88,0x6e,0x6d,0x56,0x5c,0x0f,0xe2,0x6f,0x01,0x70,0x16, +0x2b,0xf5,0x67,0xb5,0xf2,0xd9,0x25,0x53,0x13,0xfd,0x93,0x8d, +0x49,0x1b,0x2c,0xbe,0xbd,0x5a,0x6a,0x50,0xbb,0xa2,0x30,0xcb, +0xb1,0xac,0x01,0xdd,0x6a,0x4c,0xeb,0xa9,0x04,0x7b,0x7b,0xe7, +0x63,0x62,0x34,0xea,0xa2,0x70,0x66,0x19,0xb5,0x47,0xbd,0x09, +0x36,0x9d,0x3e,0x9d,0x56,0xca,0x56,0x84,0x79,0xfe,0x47,0x53, +0x7f,0x03,0x41,0x56,0x99,0x4e,0xa8,0x96,0xa2,0x1b,0x80,0x65, +0xa4,0xee,0xa6,0xd7,0x2a,0x73,0x5c,0xe3,0x1a,0x43,0x70,0x66, +0x84,0xaa,0x33,0x95,0x2e,0x7b,0x7f,0x3d,0x34,0x0b,0xc2,0xdb, +0xa7,0x7d,0xb4,0xd5,0xcd,0x67,0xd3,0xab,0xb8,0x5f,0x36,0x96, +0xf7,0x17,0x61,0xb0,0x4a,0x26,0x2c,0xb5,0xb3,0x2f,0xf8,0x4c, +0xae,0x31,0x67,0x4e,0xe5,0x19,0xfc,0x11,0x42,0x0f,0xf8,0xa3, +0x11,0x4e,0x56,0xa6,0x86,0xb4,0xa8,0x14,0x9d,0xfc,0xfa,0x81, +0xa0,0x87,0xb6,0x0a,0x9c,0x07,0xff,0xe5,0x28,0x4c,0xc5,0x5a, +0x02,0xd2,0xc5,0xd2,0xd1,0x9a,0x52,0xe2,0xb2,0xe3,0x02,0xd4, +0x5d,0x7e,0x93,0x12,0xfa,0x2d,0xd9,0x57,0xf1,0x07,0x4f,0x7a, +0xac,0x78,0xa0,0x26,0x6f,0x40,0x82,0x3a,0xc9,0x8d,0xb2,0x94, +0x8b,0x4a,0x75,0xc8,0x70,0xf3,0x66,0xb3,0xcd,0xd5,0xbd,0x16, +0x3f,0x7c,0xe5,0x4b,0x44,0x44,0x2d,0x2c,0x70,0xa4,0x54,0x84, +0xb5,0xf2,0xd6,0xba,0x50,0x25,0x11,0x3c,0x44,0x27,0x68,0xce, +0x28,0xd8,0xb6,0x24,0x52,0x39,0xff,0xf6,0x28,0xb0,0xb6,0x21, +0xd5,0x76,0x8b,0x95,0x61,0xc2,0x48,0x92,0x4e,0xf5,0x0c,0x73, +0x33,0x76,0x6d,0x6f,0x52,0xce,0xc6,0x1b,0x62,0xaa,0x5e,0x6a, +0x10,0x6e,0xaa,0x67,0xa0,0xc0,0x13,0x0b,0xfc,0x39,0x24,0x91, +0xa2,0x30,0x05,0x06,0xf3,0x0f,0x60,0xa8,0x22,0xf0,0x7c,0x7f, +0x48,0xff,0x7d,0xba,0x97,0xe0,0x5e,0xcd,0x97,0x8a,0x1f,0xf9, +0x47,0xe6,0x5a,0x7d,0x19,0x14,0x9d,0xc4,0x61,0x12,0xbb,0xa7, +0xf1,0x8d,0xf3,0xc9,0x25,0xdb,0xa9,0x5d,0x58,0x90,0xc7,0x9f, +0x27,0x04,0x54,0xb2,0xa9,0x14,0x3c,0xdd,0x27,0x10,0x32,0x81, +0x91,0x50,0x50,0x87,0x6a,0xf3,0x6a,0x75,0x1c,0x44,0xc6,0x70, +0xae,0x6a,0xd9,0x48,0xe3,0xe3,0x21,0x64,0x0f,0x6d,0xc2,0x04, +0xf0,0xa9,0x28,0x29,0xd6,0xa7,0xc7,0x70,0x8e,0xdd,0x48,0xdb, +0x49,0x0c,0x84,0x29,0xc3,0x85,0xd9,0xd3,0x33,0x2c,0xbe,0x5b, +0x3c,0x1c,0xdc,0x74,0x7c,0xce,0xf6,0x14,0x29,0xcc,0xef,0x38, +0x77,0xf1,0x2d,0x73,0x9f,0x6e,0x25,0xa4,0xa8,0xc9,0xe2,0x76, +0x32,0xb3,0xcb,0xcd,0x83,0x44,0x2a,0xce,0x76,0x16,0x71,0x33, +0x83,0xdb,0xf7,0x7f,0x3e,0xbf,0xc1,0x00,0x4a,0xe4,0xb9,0x3f, +0x72,0x9d,0x19,0xc8,0xde,0xa4,0x3d,0xea,0xb9,0x31,0x86,0xfc, +0x59,0x18,0xb6,0x98,0x88,0xa0,0xf4,0x36,0xa3,0x77,0x7a,0x8b, +0x18,0x86,0x99, }; -#define FALCON1024_SIGLEN 1266 +#define FALCON1024_SIGLEN 1275 static wc_test_ret_t falcon_verify_kat(byte level, const byte* pk, word32 pkLen, @@ -57352,7 +57353,7 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t falcon_test(void) { /* Native keygen -> sign -> verify round-trip (no liboqs). */ static const byte falconLvls[2] = { FALCON_LEVEL1, FALCON_LEVEL5 }; - const char* falconMsg = "wolfSSL native FN-DSA self test"; + const char* falconMsg = "wolfSSL native Falcon self test"; word32 falconMsgLen = (word32)XSTRLEN(falconMsg); WC_RNG rng; int li; diff --git a/wolfssl/wolfcrypt/settings.h b/wolfssl/wolfcrypt/settings.h index 67b2b762e5..b676afae7e 100644 --- a/wolfssl/wolfcrypt/settings.h +++ b/wolfssl/wolfcrypt/settings.h @@ -5029,9 +5029,9 @@ blinding by defining WC_BLINDING_NO_RNG_ACKNOWLEDGE_WEAKNESS." #endif #endif -/* Falcon (the pre-standardization name for FN-DSA / FIPS 206) is provided by the - * native wolfCrypt implementation in falcon.[ch] + wc_falcon*.[ch]; it no longer - * requires liboqs. HAVE_FALCON is the build gate. */ +/* Falcon is provided by the native wolfCrypt implementation in falcon.[ch] + + * wc_falcon*.[ch]; it no longer requires liboqs. HAVE_FALCON is the build + * gate. */ #if (defined(HAVE_FALCON) || \ defined(WOLFSSL_DUAL_ALG_CERTS) || \ diff --git a/wolfssl/wolfcrypt/wc_falcon_bigint.h b/wolfssl/wolfcrypt/wc_falcon_bigint.h index 0766fe130d..b690ecf4b3 100644 --- a/wolfssl/wolfcrypt/wc_falcon_bigint.h +++ b/wolfssl/wolfcrypt/wc_falcon_bigint.h @@ -23,10 +23,10 @@ \file wolfssl/wolfcrypt/wc_falcon_bigint.h */ -/* Self-contained big-integer / RNS arithmetic for native FN-DSA (Falcon) +/* Self-contained big-integer / RNS arithmetic for native Falcon * key generation. * - * FN-DSA key generation solves the NTRU equation g*F - f*G = q, which is + * Falcon key generation solves the NTRU equation g*F - f*G = q, which is * performed by the Falcon "ntru_solve" routine. That routine relies on a * specialized integer-only big-number layer using a residue number system * (RNS) of 31-bit prime moduli, with a small-modulus NTT for fast diff --git a/wolfssl/wolfcrypt/wc_falcon_codec.h b/wolfssl/wolfcrypt/wc_falcon_codec.h index 8f70f1c2e5..317b21451e 100644 --- a/wolfssl/wolfcrypt/wc_falcon_codec.h +++ b/wolfssl/wolfcrypt/wc_falcon_codec.h @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA */ -/* FN-DSA (FIPS 206 draft) / Falcon encode/decode routines for the +/* Falcon encode/decode routines for the * signing and key-generation paths. The verification-side decoders * (modq_decode, comp_decode) live as statics in wc_falcon.c and are not * referenced here. */ diff --git a/wolfssl/wolfcrypt/wc_falcon_fft.h b/wolfssl/wolfcrypt/wc_falcon_fft.h index ac17105e49..fe3e955f18 100644 --- a/wolfssl/wolfcrypt/wc_falcon_fft.h +++ b/wolfssl/wolfcrypt/wc_falcon_fft.h @@ -23,7 +23,7 @@ \file wolfssl/wolfcrypt/wc_falcon_fft.h */ -/* FN-DSA / Falcon FFT over the fpr seam. A real polynomial of n coefficients is +/* Falcon FFT over the fpr seam. A real polynomial of n coefficients is * carried as n fpr values: the n/2 complex evaluations at the roots of x^n+1, * real parts in [0, n/2), imaginary parts in [n/2, n). Used by the Gaussian * sampler and signing; not needed for verification. */ diff --git a/wolfssl/wolfcrypt/wc_falcon_fpr.h b/wolfssl/wolfcrypt/wc_falcon_fpr.h index 539e9de730..744a8fa928 100644 --- a/wolfssl/wolfcrypt/wc_falcon_fpr.h +++ b/wolfssl/wolfcrypt/wc_falcon_fpr.h @@ -23,7 +23,7 @@ \file wolfssl/wolfcrypt/wc_falcon_fpr.h */ -/* The FN-DSA / Falcon floating-point primitive seam. +/* The Falcon floating-point primitive seam. * * Everything above this seam (FFT, Gaussian samplers, ffSampling, parts of * keygen) is written ONCE against the abstract fpr_* API declared here, and is diff --git a/wolfssl/wolfcrypt/wc_falcon_keygen.h b/wolfssl/wolfcrypt/wc_falcon_keygen.h index 38e6329056..1106e982b6 100644 --- a/wolfssl/wolfcrypt/wc_falcon_keygen.h +++ b/wolfssl/wolfcrypt/wc_falcon_keygen.h @@ -23,7 +23,7 @@ \file wolfssl/wolfcrypt/wc_falcon_keygen.h */ -/* FN-DSA / Falcon key-pair generation. +/* Falcon key-pair generation. * * Generates an (f, g, F, G) NTRU lattice basis together with the public key * h = g/f mod q. The procedure is a faithful port of the key-generation half @@ -55,7 +55,7 @@ extern "C" { #endif -/* Generate a complete FN-DSA / Falcon key pair of degree n = 2^logn. +/* Generate a complete Falcon key pair of degree n = 2^logn. * * rng initialized WC_RNG used to seed the SHAKE256 sampler stream. * f,g output secret polynomials (n signed coefficients each). @@ -64,7 +64,7 @@ * h output public key polynomial (n coefficients in [0, q)); may be * NULL if only the (f,g,F,G) basis is required. * logn base-2 logarithm of the ring degree (1..10; 9 and 10 are the - * standardized FN-DSA-512 and FN-DSA-1024 levels). + * Falcon-512 and Falcon-1024 levels). * * The routine loops, drawing fresh (f,g) until every acceptance test passes * and the NTRU equation is solved, exactly as the reference does. Returns 0 diff --git a/wolfssl/wolfcrypt/wc_falcon_poly.h b/wolfssl/wolfcrypt/wc_falcon_poly.h index 74ea480b79..e5cac5dfad 100644 --- a/wolfssl/wolfcrypt/wc_falcon_poly.h +++ b/wolfssl/wolfcrypt/wc_falcon_poly.h @@ -23,7 +23,7 @@ \file wolfssl/wolfcrypt/wc_falcon_poly.h */ -/* FN-DSA / Falcon FFT-domain polynomial operations over the fpr seam. A real +/* Falcon FFT-domain polynomial operations over the fpr seam. A real * polynomial of n coefficients is carried as n fpr values: the n/2 complex * evaluations at the roots of x^n+1, real parts in [0, n/2), imaginary parts in * [n/2, n) (see wc_falcon_fft.h). These primitives feed ffSampling and signing; diff --git a/wolfssl/wolfcrypt/wc_falcon_sampler.h b/wolfssl/wolfcrypt/wc_falcon_sampler.h index 7f55892e8d..8e8868cbf3 100644 --- a/wolfssl/wolfcrypt/wc_falcon_sampler.h +++ b/wolfssl/wolfcrypt/wc_falcon_sampler.h @@ -23,7 +23,7 @@ \file wolfssl/wolfcrypt/wc_falcon_sampler.h */ -/* Discrete Gaussian sampler for FN-DSA / Falcon signing (SamplerZ). +/* Discrete Gaussian sampler for Falcon signing (SamplerZ). * * This is a faithful port of the constant-time reference sampler by Thomas * Pornin (MIT-licensed Falcon reference implementation; the same code ships in diff --git a/wolfssl/wolfcrypt/wc_falcon_sign.h b/wolfssl/wolfcrypt/wc_falcon_sign.h index cdbaa40706..4ab08d9996 100644 --- a/wolfssl/wolfcrypt/wc_falcon_sign.h +++ b/wolfssl/wolfcrypt/wc_falcon_sign.h @@ -23,7 +23,7 @@ \file wolfssl/wolfcrypt/wc_falcon_sign.h */ -/* FN-DSA / Falcon signing orchestration (the "tree" signer). +/* Falcon signing orchestration (the "tree" signer). * * Faithful port of the signature-generation core of the MIT-licensed Falcon * reference implementation sign.c (Thomas Pornin, Falcon Project, 2017-2019):