.
# Architecture-specific implementations (only AVX2)
├── Additional_Implementations
│   ├── README.md
│   └── avx2
        # Variant FAEST-128f
│       ├── faest_128f
│       │   ├── KeccakHash.c
│       │   ├── KeccakHash.h
│       │   ├── KeccakHashtimes4.c
│       │   ├── KeccakHashtimes4.h
│       │   ├── KeccakP-1600-64.macros
│       │   ├── KeccakP-1600-AVX2.s
│       │   ├── KeccakP-1600-SnP.h
│       │   ├── KeccakP-1600-times2-SIMD128.c
│       │   ├── KeccakP-1600-times2-SnP.h
│       │   ├── KeccakP-1600-times4-SIMD256.c
│       │   ├── KeccakP-1600-times4-SnP.h
│       │   ├── KeccakP-1600-times8-SnP.h
│       │   ├── KeccakP-1600-times8-on4.c
│       │   ├── KeccakP-1600-unrolling.macros
│       │   ├── KeccakSponge.c
│       │   ├── KeccakSponge.h
│       │   ├── KeccakSponge.inc
│       │   ├── KeccakSpongetimes4.c
│       │   ├── KeccakSpongetimes4.h
│       │   ├── KeccakSpongetimes4.inc
│       │   ├── Makefile
│       │   ├── PQCgenKAT_sign.c
│       │   ├── PlSnP-Fallback.inc
│       │   ├── SIMD128-config.h
│       │   ├── SIMD256-config.h
│       │   ├── SnP-Relaned.h
│       │   ├── aes.c
│       │   ├── aes.h
│       │   ├── aes_impl.c
│       │   ├── aes_impl.h
│       │   ├── align.h
│       │   ├── api.c
│       │   ├── api.h
│       │   ├── api_test.c
│       │   ├── block.c
│       │   ├── block.h
│       │   ├── block_impl.c
│       │   ├── block_impl.h
│       │   ├── brg_endian.h
│       │   ├── config.h
│       │   ├── faest.c
│       │   ├── faest.h
│       │   ├── faest_details.h
│       │   ├── hash.c
│       │   ├── hash.h
│       │   ├── owf_proof.c
│       │   ├── owf_proof.h
│       │   ├── polynomials.c
│       │   ├── polynomials.h
│       │   ├── polynomials_impl.c
│       │   ├── polynomials_impl.h
│       │   ├── prgs.c
│       │   ├── prgs.h
│       │   ├── quicksilver.c
│       │   ├── quicksilver.h
│       │   ├── randomness.h
│       │   ├── randomness_os.c
│       │   ├── randomness_randombytes.c
│       │   ├── rng.c
│       │   ├── rng.h
│       │   ├── small_vole.c
│       │   ├── small_vole.h
│       │   ├── transpose.c
│       │   ├── transpose.h
│       │   ├── transpose_impl.h
│       │   ├── universal_hash.c
│       │   ├── universal_hash.h
│       │   ├── util.c
│       │   ├── util.h
│       │   ├── util_impl.h
│       │   ├── vector_com.c
│       │   ├── vector_com.h
│       │   ├── vole_check.c
│       │   ├── vole_check.h
│       │   ├── vole_commit.c
│       │   ├── vole_commit.h
│       │   └── vole_params.h
        # Variant FAEST-128s
│       ├── faest_128s
│       │   ├── KeccakHash.c
│       │   ├── KeccakHash.h
│       │   ├── KeccakHashtimes4.c
│       │   ├── KeccakHashtimes4.h
│       │   ├── KeccakP-1600-64.macros
│       │   ├── KeccakP-1600-AVX2.s
│       │   ├── KeccakP-1600-SnP.h
│       │   ├── KeccakP-1600-times2-SIMD128.c
│       │   ├── KeccakP-1600-times2-SnP.h
│       │   ├── KeccakP-1600-times4-SIMD256.c
│       │   ├── KeccakP-1600-times4-SnP.h
│       │   ├── KeccakP-1600-times8-SnP.h
│       │   ├── KeccakP-1600-times8-on4.c
│       │   ├── KeccakP-1600-unrolling.macros
│       │   ├── KeccakSponge.c
│       │   ├── KeccakSponge.h
│       │   ├── KeccakSponge.inc
│       │   ├── KeccakSpongetimes4.c
│       │   ├── KeccakSpongetimes4.h
│       │   ├── KeccakSpongetimes4.inc
│       │   ├── Makefile
│       │   ├── PQCgenKAT_sign.c
│       │   ├── PlSnP-Fallback.inc
│       │   ├── SIMD128-config.h
│       │   ├── SIMD256-config.h
│       │   ├── SnP-Relaned.h
│       │   ├── aes.c
│       │   ├── aes.h
│       │   ├── aes_impl.c
│       │   ├── aes_impl.h
│       │   ├── align.h
│       │   ├── api.c
│       │   ├── api.h
│       │   ├── api_test.c
│       │   ├── block.c
│       │   ├── block.h
│       │   ├── block_impl.c
│       │   ├── block_impl.h
│       │   ├── brg_endian.h
│       │   ├── config.h
│       │   ├── faest.c
│       │   ├── faest.h
│       │   ├── faest_details.h
│       │   ├── hash.c
│       │   ├── hash.h
│       │   ├── owf_proof.c
│       │   ├── owf_proof.h
│       │   ├── polynomials.c
│       │   ├── polynomials.h
│       │   ├── polynomials_impl.c
│       │   ├── polynomials_impl.h
│       │   ├── prgs.c
│       │   ├── prgs.h
│       │   ├── quicksilver.c
│       │   ├── quicksilver.h
│       │   ├── randomness.h
│       │   ├── randomness_os.c
│       │   ├── randomness_randombytes.c
│       │   ├── rng.c
│       │   ├── rng.h
│       │   ├── small_vole.c
│       │   ├── small_vole.h
│       │   ├── transpose.c
│       │   ├── transpose.h
│       │   ├── transpose_impl.h
│       │   ├── universal_hash.c
│       │   ├── universal_hash.h
│       │   ├── util.c
│       │   ├── util.h
│       │   ├── util_impl.h
│       │   ├── vector_com.c
│       │   ├── vector_com.h
│       │   ├── vole_check.c
│       │   ├── vole_check.h
│       │   ├── vole_commit.c
│       │   ├── vole_commit.h
│       │   └── vole_params.h
        # Variant FAEST-192f
│       ├── faest_192f
│       │   ├── KeccakHash.c
│       │   ├── KeccakHash.h
│       │   ├── KeccakHashtimes4.c
│       │   ├── KeccakHashtimes4.h
│       │   ├── KeccakP-1600-64.macros
│       │   ├── KeccakP-1600-AVX2.s
│       │   ├── KeccakP-1600-SnP.h
│       │   ├── KeccakP-1600-times2-SIMD128.c
│       │   ├── KeccakP-1600-times2-SnP.h
│       │   ├── KeccakP-1600-times4-SIMD256.c
│       │   ├── KeccakP-1600-times4-SnP.h
│       │   ├── KeccakP-1600-times8-SnP.h
│       │   ├── KeccakP-1600-times8-on4.c
│       │   ├── KeccakP-1600-unrolling.macros
│       │   ├── KeccakSponge.c
│       │   ├── KeccakSponge.h
│       │   ├── KeccakSponge.inc
│       │   ├── KeccakSpongetimes4.c
│       │   ├── KeccakSpongetimes4.h
│       │   ├── KeccakSpongetimes4.inc
│       │   ├── Makefile
│       │   ├── PQCgenKAT_sign.c
│       │   ├── PlSnP-Fallback.inc
│       │   ├── SIMD128-config.h
│       │   ├── SIMD256-config.h
│       │   ├── SnP-Relaned.h
│       │   ├── aes.c
│       │   ├── aes.h
│       │   ├── aes_impl.c
│       │   ├── aes_impl.h
│       │   ├── align.h
│       │   ├── api.c
│       │   ├── api.h
│       │   ├── api_test.c
│       │   ├── block.c
│       │   ├── block.h
│       │   ├── block_impl.c
│       │   ├── block_impl.h
│       │   ├── brg_endian.h
│       │   ├── config.h
│       │   ├── faest.c
│       │   ├── faest.h
│       │   ├── faest_details.h
│       │   ├── hash.c
│       │   ├── hash.h
│       │   ├── owf_proof.c
│       │   ├── owf_proof.h
│       │   ├── polynomials.c
│       │   ├── polynomials.h
│       │   ├── polynomials_impl.c
│       │   ├── polynomials_impl.h
│       │   ├── prgs.c
│       │   ├── prgs.h
│       │   ├── quicksilver.c
│       │   ├── quicksilver.h
│       │   ├── randomness.h
│       │   ├── randomness_os.c
│       │   ├── randomness_randombytes.c
│       │   ├── rng.c
│       │   ├── rng.h
│       │   ├── small_vole.c
│       │   ├── small_vole.h
│       │   ├── transpose.c
│       │   ├── transpose.h
│       │   ├── transpose_impl.h
│       │   ├── universal_hash.c
│       │   ├── universal_hash.h
│       │   ├── util.c
│       │   ├── util.h
│       │   ├── util_impl.h
│       │   ├── vector_com.c
│       │   ├── vector_com.h
│       │   ├── vole_check.c
│       │   ├── vole_check.h
│       │   ├── vole_commit.c
│       │   ├── vole_commit.h
│       │   └── vole_params.h
        # Variant FAEST-192s
│       ├── faest_192s
│       │   ├── KeccakHash.c
│       │   ├── KeccakHash.h
│       │   ├── KeccakHashtimes4.c
│       │   ├── KeccakHashtimes4.h
│       │   ├── KeccakP-1600-64.macros
│       │   ├── KeccakP-1600-AVX2.s
│       │   ├── KeccakP-1600-SnP.h
│       │   ├── KeccakP-1600-times2-SIMD128.c
│       │   ├── KeccakP-1600-times2-SnP.h
│       │   ├── KeccakP-1600-times4-SIMD256.c
│       │   ├── KeccakP-1600-times4-SnP.h
│       │   ├── KeccakP-1600-times8-SnP.h
│       │   ├── KeccakP-1600-times8-on4.c
│       │   ├── KeccakP-1600-unrolling.macros
│       │   ├── KeccakSponge.c
│       │   ├── KeccakSponge.h
│       │   ├── KeccakSponge.inc
│       │   ├── KeccakSpongetimes4.c
│       │   ├── KeccakSpongetimes4.h
│       │   ├── KeccakSpongetimes4.inc
│       │   ├── Makefile
│       │   ├── PQCgenKAT_sign.c
│       │   ├── PlSnP-Fallback.inc
│       │   ├── SIMD128-config.h
│       │   ├── SIMD256-config.h
│       │   ├── SnP-Relaned.h
│       │   ├── aes.c
│       │   ├── aes.h
│       │   ├── aes_impl.c
│       │   ├── aes_impl.h
│       │   ├── align.h
│       │   ├── api.c
│       │   ├── api.h
│       │   ├── api_test.c
│       │   ├── block.c
│       │   ├── block.h
│       │   ├── block_impl.c
│       │   ├── block_impl.h
│       │   ├── brg_endian.h
│       │   ├── config.h
│       │   ├── faest.c
│       │   ├── faest.h
│       │   ├── faest_details.h
│       │   ├── hash.c
│       │   ├── hash.h
│       │   ├── owf_proof.c
│       │   ├── owf_proof.h
│       │   ├── polynomials.c
│       │   ├── polynomials.h
│       │   ├── polynomials_impl.c
│       │   ├── polynomials_impl.h
│       │   ├── prgs.c
│       │   ├── prgs.h
│       │   ├── quicksilver.c
│       │   ├── quicksilver.h
│       │   ├── randomness.h
│       │   ├── randomness_os.c
│       │   ├── randomness_randombytes.c
│       │   ├── rng.c
│       │   ├── rng.h
│       │   ├── small_vole.c
│       │   ├── small_vole.h
│       │   ├── transpose.c
│       │   ├── transpose.h
│       │   ├── transpose_impl.h
│       │   ├── universal_hash.c
│       │   ├── universal_hash.h
│       │   ├── util.c
│       │   ├── util.h
│       │   ├── util_impl.h
│       │   ├── vector_com.c
│       │   ├── vector_com.h
│       │   ├── vole_check.c
│       │   ├── vole_check.h
│       │   ├── vole_commit.c
│       │   ├── vole_commit.h
│       │   └── vole_params.h
        # Variant FAEST-256f
│       ├── faest_256f
│       │   ├── KeccakHash.c
│       │   ├── KeccakHash.h
│       │   ├── KeccakHashtimes4.c
│       │   ├── KeccakHashtimes4.h
│       │   ├── KeccakP-1600-64.macros
│       │   ├── KeccakP-1600-AVX2.s
│       │   ├── KeccakP-1600-SnP.h
│       │   ├── KeccakP-1600-times2-SIMD128.c
│       │   ├── KeccakP-1600-times2-SnP.h
│       │   ├── KeccakP-1600-times4-SIMD256.c
│       │   ├── KeccakP-1600-times4-SnP.h
│       │   ├── KeccakP-1600-times8-SnP.h
│       │   ├── KeccakP-1600-times8-on4.c
│       │   ├── KeccakP-1600-unrolling.macros
│       │   ├── KeccakSponge.c
│       │   ├── KeccakSponge.h
│       │   ├── KeccakSponge.inc
│       │   ├── KeccakSpongetimes4.c
│       │   ├── KeccakSpongetimes4.h
│       │   ├── KeccakSpongetimes4.inc
│       │   ├── Makefile
│       │   ├── PQCgenKAT_sign.c
│       │   ├── PlSnP-Fallback.inc
│       │   ├── SIMD128-config.h
│       │   ├── SIMD256-config.h
│       │   ├── SnP-Relaned.h
│       │   ├── aes.c
│       │   ├── aes.h
│       │   ├── aes_impl.c
│       │   ├── aes_impl.h
│       │   ├── align.h
│       │   ├── api.c
│       │   ├── api.h
│       │   ├── api_test.c
│       │   ├── block.c
│       │   ├── block.h
│       │   ├── block_impl.c
│       │   ├── block_impl.h
│       │   ├── brg_endian.h
│       │   ├── config.h
│       │   ├── faest.c
│       │   ├── faest.h
│       │   ├── faest_details.h
│       │   ├── hash.c
│       │   ├── hash.h
│       │   ├── owf_proof.c
│       │   ├── owf_proof.h
│       │   ├── polynomials.c
│       │   ├── polynomials.h
│       │   ├── polynomials_impl.c
│       │   ├── polynomials_impl.h
│       │   ├── prgs.c
│       │   ├── prgs.h
│       │   ├── quicksilver.c
│       │   ├── quicksilver.h
│       │   ├── randomness.h
│       │   ├── randomness_os.c
│       │   ├── randomness_randombytes.c
│       │   ├── rng.c
│       │   ├── rng.h
│       │   ├── small_vole.c
│       │   ├── small_vole.h
│       │   ├── transpose.c
│       │   ├── transpose.h
│       │   ├── transpose_impl.h
│       │   ├── universal_hash.c
│       │   ├── universal_hash.h
│       │   ├── util.c
│       │   ├── util.h
│       │   ├── util_impl.h
│       │   ├── vector_com.c
│       │   ├── vector_com.h
│       │   ├── vole_check.c
│       │   ├── vole_check.h
│       │   ├── vole_commit.c
│       │   ├── vole_commit.h
│       │   └── vole_params.h
        # Variant FAEST-256s
│       ├── faest_256s
│       │   ├── KeccakHash.c
│       │   ├── KeccakHash.h
│       │   ├── KeccakHashtimes4.c
│       │   ├── KeccakHashtimes4.h
│       │   ├── KeccakP-1600-64.macros
│       │   ├── KeccakP-1600-AVX2.s
│       │   ├── KeccakP-1600-SnP.h
│       │   ├── KeccakP-1600-times2-SIMD128.c
│       │   ├── KeccakP-1600-times2-SnP.h
│       │   ├── KeccakP-1600-times4-SIMD256.c
│       │   ├── KeccakP-1600-times4-SnP.h
│       │   ├── KeccakP-1600-times8-SnP.h
│       │   ├── KeccakP-1600-times8-on4.c
│       │   ├── KeccakP-1600-unrolling.macros
│       │   ├── KeccakSponge.c
│       │   ├── KeccakSponge.h
│       │   ├── KeccakSponge.inc
│       │   ├── KeccakSpongetimes4.c
│       │   ├── KeccakSpongetimes4.h
│       │   ├── KeccakSpongetimes4.inc
│       │   ├── Makefile
│       │   ├── PQCgenKAT_sign.c
│       │   ├── PlSnP-Fallback.inc
│       │   ├── SIMD128-config.h
│       │   ├── SIMD256-config.h
│       │   ├── SnP-Relaned.h
│       │   ├── aes.c
│       │   ├── aes.h
│       │   ├── aes_impl.c
│       │   ├── aes_impl.h
│       │   ├── align.h
│       │   ├── api.c
│       │   ├── api.h
│       │   ├── api_test.c
│       │   ├── block.c
│       │   ├── block.h
│       │   ├── block_impl.c
│       │   ├── block_impl.h
│       │   ├── brg_endian.h
│       │   ├── config.h
│       │   ├── faest.c
│       │   ├── faest.h
│       │   ├── faest_details.h
│       │   ├── hash.c
│       │   ├── hash.h
│       │   ├── owf_proof.c
│       │   ├── owf_proof.h
│       │   ├── polynomials.c
│       │   ├── polynomials.h
│       │   ├── polynomials_impl.c
│       │   ├── polynomials_impl.h
│       │   ├── prgs.c
│       │   ├── prgs.h
│       │   ├── quicksilver.c
│       │   ├── quicksilver.h
│       │   ├── randomness.h
│       │   ├── randomness_os.c
│       │   ├── randomness_randombytes.c
│       │   ├── rng.c
│       │   ├── rng.h
│       │   ├── small_vole.c
│       │   ├── small_vole.h
│       │   ├── transpose.c
│       │   ├── transpose.h
│       │   ├── transpose_impl.h
│       │   ├── universal_hash.c
│       │   ├── universal_hash.h
│       │   ├── util.c
│       │   ├── util.h
│       │   ├── util_impl.h
│       │   ├── vector_com.c
│       │   ├── vector_com.h
│       │   ├── vole_check.c
│       │   ├── vole_check.h
│       │   ├── vole_commit.c
│       │   ├── vole_commit.h
│       │   └── vole_params.h
        # Variant FAEST-EM-128f
│       ├── faest_em_128f
│       │   ├── KeccakHash.c
│       │   ├── KeccakHash.h
│       │   ├── KeccakHashtimes4.c
│       │   ├── KeccakHashtimes4.h
│       │   ├── KeccakP-1600-64.macros
│       │   ├── KeccakP-1600-AVX2.s
│       │   ├── KeccakP-1600-SnP.h
│       │   ├── KeccakP-1600-times2-SIMD128.c
│       │   ├── KeccakP-1600-times2-SnP.h
│       │   ├── KeccakP-1600-times4-SIMD256.c
│       │   ├── KeccakP-1600-times4-SnP.h
│       │   ├── KeccakP-1600-times8-SnP.h
│       │   ├── KeccakP-1600-times8-on4.c
│       │   ├── KeccakP-1600-unrolling.macros
│       │   ├── KeccakSponge.c
│       │   ├── KeccakSponge.h
│       │   ├── KeccakSponge.inc
│       │   ├── KeccakSpongetimes4.c
│       │   ├── KeccakSpongetimes4.h
│       │   ├── KeccakSpongetimes4.inc
│       │   ├── Makefile
│       │   ├── PQCgenKAT_sign.c
│       │   ├── PlSnP-Fallback.inc
│       │   ├── SIMD128-config.h
│       │   ├── SIMD256-config.h
│       │   ├── SnP-Relaned.h
│       │   ├── aes.c
│       │   ├── aes.h
│       │   ├── aes_impl.c
│       │   ├── aes_impl.h
│       │   ├── align.h
│       │   ├── api.c
│       │   ├── api.h
│       │   ├── api_test.c
│       │   ├── block.c
│       │   ├── block.h
│       │   ├── block_impl.c
│       │   ├── block_impl.h
│       │   ├── brg_endian.h
│       │   ├── config.h
│       │   ├── faest.c
│       │   ├── faest.h
│       │   ├── faest_details.h
│       │   ├── hash.c
│       │   ├── hash.h
│       │   ├── owf_proof.c
│       │   ├── owf_proof.h
│       │   ├── polynomials.c
│       │   ├── polynomials.h
│       │   ├── polynomials_impl.c
│       │   ├── polynomials_impl.h
│       │   ├── prgs.c
│       │   ├── prgs.h
│       │   ├── quicksilver.c
│       │   ├── quicksilver.h
│       │   ├── randomness.h
│       │   ├── randomness_os.c
│       │   ├── randomness_randombytes.c
│       │   ├── rng.c
│       │   ├── rng.h
│       │   ├── small_vole.c
│       │   ├── small_vole.h
│       │   ├── transpose.c
│       │   ├── transpose.h
│       │   ├── transpose_impl.h
│       │   ├── universal_hash.c
│       │   ├── universal_hash.h
│       │   ├── util.c
│       │   ├── util.h
│       │   ├── util_impl.h
│       │   ├── vector_com.c
│       │   ├── vector_com.h
│       │   ├── vole_check.c
│       │   ├── vole_check.h
│       │   ├── vole_commit.c
│       │   ├── vole_commit.h
│       │   └── vole_params.h
        # Variant FAEST-EM-128s
│       ├── faest_em_128s
│       │   ├── KeccakHash.c
│       │   ├── KeccakHash.h
│       │   ├── KeccakHashtimes4.c
│       │   ├── KeccakHashtimes4.h
│       │   ├── KeccakP-1600-64.macros
│       │   ├── KeccakP-1600-AVX2.s
│       │   ├── KeccakP-1600-SnP.h
│       │   ├── KeccakP-1600-times2-SIMD128.c
│       │   ├── KeccakP-1600-times2-SnP.h
│       │   ├── KeccakP-1600-times4-SIMD256.c
│       │   ├── KeccakP-1600-times4-SnP.h
│       │   ├── KeccakP-1600-times8-SnP.h
│       │   ├── KeccakP-1600-times8-on4.c
│       │   ├── KeccakP-1600-unrolling.macros
│       │   ├── KeccakSponge.c
│       │   ├── KeccakSponge.h
│       │   ├── KeccakSponge.inc
│       │   ├── KeccakSpongetimes4.c
│       │   ├── KeccakSpongetimes4.h
│       │   ├── KeccakSpongetimes4.inc
│       │   ├── Makefile
│       │   ├── PQCgenKAT_sign.c
│       │   ├── PlSnP-Fallback.inc
│       │   ├── SIMD128-config.h
│       │   ├── SIMD256-config.h
│       │   ├── SnP-Relaned.h
│       │   ├── aes.c
│       │   ├── aes.h
│       │   ├── aes_impl.c
│       │   ├── aes_impl.h
│       │   ├── align.h
│       │   ├── api.c
│       │   ├── api.h
│       │   ├── api_test.c
│       │   ├── block.c
│       │   ├── block.h
│       │   ├── block_impl.c
│       │   ├── block_impl.h
│       │   ├── brg_endian.h
│       │   ├── config.h
│       │   ├── faest.c
│       │   ├── faest.h
│       │   ├── faest_details.h
│       │   ├── hash.c
│       │   ├── hash.h
│       │   ├── owf_proof.c
│       │   ├── owf_proof.h
│       │   ├── polynomials.c
│       │   ├── polynomials.h
│       │   ├── polynomials_impl.c
│       │   ├── polynomials_impl.h
│       │   ├── prgs.c
│       │   ├── prgs.h
│       │   ├── quicksilver.c
│       │   ├── quicksilver.h
│       │   ├── randomness.h
│       │   ├── randomness_os.c
│       │   ├── randomness_randombytes.c
│       │   ├── rng.c
│       │   ├── rng.h
│       │   ├── small_vole.c
│       │   ├── small_vole.h
│       │   ├── transpose.c
│       │   ├── transpose.h
│       │   ├── transpose_impl.h
│       │   ├── universal_hash.c
│       │   ├── universal_hash.h
│       │   ├── util.c
│       │   ├── util.h
│       │   ├── util_impl.h
│       │   ├── vector_com.c
│       │   ├── vector_com.h
│       │   ├── vole_check.c
│       │   ├── vole_check.h
│       │   ├── vole_commit.c
│       │   ├── vole_commit.h
│       │   └── vole_params.h
        # Variant FAEST-EM-192f
│       ├── faest_em_192f
│       │   ├── KeccakHash.c
│       │   ├── KeccakHash.h
│       │   ├── KeccakHashtimes4.c
│       │   ├── KeccakHashtimes4.h
│       │   ├── KeccakP-1600-64.macros
│       │   ├── KeccakP-1600-AVX2.s
│       │   ├── KeccakP-1600-SnP.h
│       │   ├── KeccakP-1600-times2-SIMD128.c
│       │   ├── KeccakP-1600-times2-SnP.h
│       │   ├── KeccakP-1600-times4-SIMD256.c
│       │   ├── KeccakP-1600-times4-SnP.h
│       │   ├── KeccakP-1600-times8-SnP.h
│       │   ├── KeccakP-1600-times8-on4.c
│       │   ├── KeccakP-1600-unrolling.macros
│       │   ├── KeccakSponge.c
│       │   ├── KeccakSponge.h
│       │   ├── KeccakSponge.inc
│       │   ├── KeccakSpongetimes4.c
│       │   ├── KeccakSpongetimes4.h
│       │   ├── KeccakSpongetimes4.inc
│       │   ├── Makefile
│       │   ├── PQCgenKAT_sign.c
│       │   ├── PlSnP-Fallback.inc
│       │   ├── SIMD128-config.h
│       │   ├── SIMD256-config.h
│       │   ├── SnP-Relaned.h
│       │   ├── aes.c
│       │   ├── aes.h
│       │   ├── aes_impl.c
│       │   ├── aes_impl.h
│       │   ├── align.h
│       │   ├── api.c
│       │   ├── api.h
│       │   ├── api_test.c
│       │   ├── block.c
│       │   ├── block.h
│       │   ├── block_impl.c
│       │   ├── block_impl.h
│       │   ├── brg_endian.h
│       │   ├── config.h
│       │   ├── faest.c
│       │   ├── faest.h
│       │   ├── faest_details.h
│       │   ├── hash.c
│       │   ├── hash.h
│       │   ├── owf_proof.c
│       │   ├── owf_proof.h
│       │   ├── polynomials.c
│       │   ├── polynomials.h
│       │   ├── polynomials_impl.c
│       │   ├── polynomials_impl.h
│       │   ├── prgs.c
│       │   ├── prgs.h
│       │   ├── quicksilver.c
│       │   ├── quicksilver.h
│       │   ├── randomness.h
│       │   ├── randomness_os.c
│       │   ├── randomness_randombytes.c
│       │   ├── rng.c
│       │   ├── rng.h
│       │   ├── small_vole.c
│       │   ├── small_vole.h
│       │   ├── transpose.c
│       │   ├── transpose.h
│       │   ├── transpose_impl.h
│       │   ├── universal_hash.c
│       │   ├── universal_hash.h
│       │   ├── util.c
│       │   ├── util.h
│       │   ├── util_impl.h
│       │   ├── vector_com.c
│       │   ├── vector_com.h
│       │   ├── vole_check.c
│       │   ├── vole_check.h
│       │   ├── vole_commit.c
│       │   ├── vole_commit.h
│       │   └── vole_params.h
        # Variant FAEST-EM-192s
│       ├── faest_em_192s
│       │   ├── KeccakHash.c
│       │   ├── KeccakHash.h
│       │   ├── KeccakHashtimes4.c
│       │   ├── KeccakHashtimes4.h
│       │   ├── KeccakP-1600-64.macros
│       │   ├── KeccakP-1600-AVX2.s
│       │   ├── KeccakP-1600-SnP.h
│       │   ├── KeccakP-1600-times2-SIMD128.c
│       │   ├── KeccakP-1600-times2-SnP.h
│       │   ├── KeccakP-1600-times4-SIMD256.c
│       │   ├── KeccakP-1600-times4-SnP.h
│       │   ├── KeccakP-1600-times8-SnP.h
│       │   ├── KeccakP-1600-times8-on4.c
│       │   ├── KeccakP-1600-unrolling.macros
│       │   ├── KeccakSponge.c
│       │   ├── KeccakSponge.h
│       │   ├── KeccakSponge.inc
│       │   ├── KeccakSpongetimes4.c
│       │   ├── KeccakSpongetimes4.h
│       │   ├── KeccakSpongetimes4.inc
│       │   ├── Makefile
│       │   ├── PQCgenKAT_sign.c
│       │   ├── PlSnP-Fallback.inc
│       │   ├── SIMD128-config.h
│       │   ├── SIMD256-config.h
│       │   ├── SnP-Relaned.h
│       │   ├── aes.c
│       │   ├── aes.h
│       │   ├── aes_impl.c
│       │   ├── aes_impl.h
│       │   ├── align.h
│       │   ├── api.c
│       │   ├── api.h
│       │   ├── api_test.c
│       │   ├── block.c
│       │   ├── block.h
│       │   ├── block_impl.c
│       │   ├── block_impl.h
│       │   ├── brg_endian.h
│       │   ├── config.h
│       │   ├── faest.c
│       │   ├── faest.h
│       │   ├── faest_details.h
│       │   ├── hash.c
│       │   ├── hash.h
│       │   ├── owf_proof.c
│       │   ├── owf_proof.h
│       │   ├── polynomials.c
│       │   ├── polynomials.h
│       │   ├── polynomials_impl.c
│       │   ├── polynomials_impl.h
│       │   ├── prgs.c
│       │   ├── prgs.h
│       │   ├── quicksilver.c
│       │   ├── quicksilver.h
│       │   ├── randomness.h
│       │   ├── randomness_os.c
│       │   ├── randomness_randombytes.c
│       │   ├── rng.c
│       │   ├── rng.h
│       │   ├── small_vole.c
│       │   ├── small_vole.h
│       │   ├── transpose.c
│       │   ├── transpose.h
│       │   ├── transpose_impl.h
│       │   ├── universal_hash.c
│       │   ├── universal_hash.h
│       │   ├── util.c
│       │   ├── util.h
│       │   ├── util_impl.h
│       │   ├── vector_com.c
│       │   ├── vector_com.h
│       │   ├── vole_check.c
│       │   ├── vole_check.h
│       │   ├── vole_commit.c
│       │   ├── vole_commit.h
│       │   └── vole_params.h
        # Variant FAEST-EM-256f
│       ├── faest_em_256f
│       │   ├── KeccakHash.c
│       │   ├── KeccakHash.h
│       │   ├── KeccakHashtimes4.c
│       │   ├── KeccakHashtimes4.h
│       │   ├── KeccakP-1600-64.macros
│       │   ├── KeccakP-1600-AVX2.s
│       │   ├── KeccakP-1600-SnP.h
│       │   ├── KeccakP-1600-times2-SIMD128.c
│       │   ├── KeccakP-1600-times2-SnP.h
│       │   ├── KeccakP-1600-times4-SIMD256.c
│       │   ├── KeccakP-1600-times4-SnP.h
│       │   ├── KeccakP-1600-times8-SnP.h
│       │   ├── KeccakP-1600-times8-on4.c
│       │   ├── KeccakP-1600-unrolling.macros
│       │   ├── KeccakSponge.c
│       │   ├── KeccakSponge.h
│       │   ├── KeccakSponge.inc
│       │   ├── KeccakSpongetimes4.c
│       │   ├── KeccakSpongetimes4.h
│       │   ├── KeccakSpongetimes4.inc
│       │   ├── Makefile
│       │   ├── PQCgenKAT_sign.c
│       │   ├── PlSnP-Fallback.inc
│       │   ├── SIMD128-config.h
│       │   ├── SIMD256-config.h
│       │   ├── SnP-Relaned.h
│       │   ├── aes.c
│       │   ├── aes.h
│       │   ├── aes_impl.c
│       │   ├── aes_impl.h
│       │   ├── align.h
│       │   ├── api.c
│       │   ├── api.h
│       │   ├── api_test.c
│       │   ├── block.c
│       │   ├── block.h
│       │   ├── block_impl.c
│       │   ├── block_impl.h
│       │   ├── brg_endian.h
│       │   ├── config.h
│       │   ├── faest.c
│       │   ├── faest.h
│       │   ├── faest_details.h
│       │   ├── hash.c
│       │   ├── hash.h
│       │   ├── owf_proof.c
│       │   ├── owf_proof.h
│       │   ├── polynomials.c
│       │   ├── polynomials.h
│       │   ├── polynomials_impl.c
│       │   ├── polynomials_impl.h
│       │   ├── prgs.c
│       │   ├── prgs.h
│       │   ├── quicksilver.c
│       │   ├── quicksilver.h
│       │   ├── randomness.h
│       │   ├── randomness_os.c
│       │   ├── randomness_randombytes.c
│       │   ├── rng.c
│       │   ├── rng.h
│       │   ├── small_vole.c
│       │   ├── small_vole.h
│       │   ├── transpose.c
│       │   ├── transpose.h
│       │   ├── transpose_impl.h
│       │   ├── universal_hash.c
│       │   ├── universal_hash.h
│       │   ├── util.c
│       │   ├── util.h
│       │   ├── util_impl.h
│       │   ├── vector_com.c
│       │   ├── vector_com.h
│       │   ├── vole_check.c
│       │   ├── vole_check.h
│       │   ├── vole_commit.c
│       │   ├── vole_commit.h
│       │   └── vole_params.h
        # Variant FAEST-EM-256s
│       └── faest_em_256s
│           ├── KeccakHash.c
│           ├── KeccakHash.h
│           ├── KeccakHashtimes4.c
│           ├── KeccakHashtimes4.h
│           ├── KeccakP-1600-64.macros
│           ├── KeccakP-1600-AVX2.s
│           ├── KeccakP-1600-SnP.h
│           ├── KeccakP-1600-times2-SIMD128.c
│           ├── KeccakP-1600-times2-SnP.h
│           ├── KeccakP-1600-times4-SIMD256.c
│           ├── KeccakP-1600-times4-SnP.h
│           ├── KeccakP-1600-times8-SnP.h
│           ├── KeccakP-1600-times8-on4.c
│           ├── KeccakP-1600-unrolling.macros
│           ├── KeccakSponge.c
│           ├── KeccakSponge.h
│           ├── KeccakSponge.inc
│           ├── KeccakSpongetimes4.c
│           ├── KeccakSpongetimes4.h
│           ├── KeccakSpongetimes4.inc
│           ├── Makefile
│           ├── PQCgenKAT_sign.c
│           ├── PlSnP-Fallback.inc
│           ├── SIMD128-config.h
│           ├── SIMD256-config.h
│           ├── SnP-Relaned.h
│           ├── aes.c
│           ├── aes.h
│           ├── aes_impl.c
│           ├── aes_impl.h
│           ├── align.h
│           ├── api.c
│           ├── api.h
│           ├── api_test.c
│           ├── block.c
│           ├── block.h
│           ├── block_impl.c
│           ├── block_impl.h
│           ├── brg_endian.h
│           ├── config.h
│           ├── faest.c
│           ├── faest.h
│           ├── faest_details.h
│           ├── hash.c
│           ├── hash.h
│           ├── owf_proof.c
│           ├── owf_proof.h
│           ├── polynomials.c
│           ├── polynomials.h
│           ├── polynomials_impl.c
│           ├── polynomials_impl.h
│           ├── prgs.c
│           ├── prgs.h
│           ├── quicksilver.c
│           ├── quicksilver.h
│           ├── randomness.h
│           ├── randomness_os.c
│           ├── randomness_randombytes.c
│           ├── rng.c
│           ├── rng.h
│           ├── small_vole.c
│           ├── small_vole.h
│           ├── transpose.c
│           ├── transpose.h
│           ├── transpose_impl.h
│           ├── universal_hash.c
│           ├── universal_hash.h
│           ├── util.c
│           ├── util.h
│           ├── util_impl.h
│           ├── vector_com.c
│           ├── vector_com.h
│           ├── vole_check.c
│           ├── vole_check.h
│           ├── vole_commit.c
│           ├── vole_commit.h
│           └── vole_params.h
    # Intellectual property statements by the authors
├── IP_Statements
│   ├── ChristianRechberger-IP-Statement-2D1.pdf
│   ├── EmmanuelaOrsini-IP-Statement-2D1.pdf
│   ├── Michael-IP-Statement-2D1.pdf
│   ├── SebastianRamacher-2D1.pdf
│   ├── SebastianRamacher-2D3.pdf
│   ├── Shibam-IP-Statement-2D1.pdf
│   ├── Shibam-IP-Statement-2D3.pdf
│   ├── carstenbaum.pdf
│   ├── christianmajenz.pdf
│   ├── cypriendelpechdesaintguilhem.pdf
│   ├── lawrence roy imp signed.pdf
│   ├── lawrence roy signed.pdf
│   ├── lennartbraun.pdf
│   └── peterscholl.pdf
    # Known answer test vectors
├── KAT
│   ├── faest_128f
│   │   ├── PQCsignKAT_faest_128f.req
│   │   └── PQCsignKAT_faest_128f.rsp
│   ├── faest_128s
│   │   ├── PQCsignKAT_faest_128s.req
│   │   └── PQCsignKAT_faest_128s.rsp
│   ├── faest_192f
│   │   ├── PQCsignKAT_faest_192f.req
│   │   └── PQCsignKAT_faest_192f.rsp
│   ├── faest_192s
│   │   ├── PQCsignKAT_faest_192s.req
│   │   └── PQCsignKAT_faest_192s.rsp
│   ├── faest_256f
│   │   ├── PQCsignKAT_faest_256f.req
│   │   └── PQCsignKAT_faest_256f.rsp
│   ├── faest_256s
│   │   ├── PQCsignKAT_faest_256s.req
│   │   └── PQCsignKAT_faest_256s.rsp
│   ├── faest_em_128f
│   │   ├── PQCsignKAT_faest_em_128f.req
│   │   └── PQCsignKAT_faest_em_128f.rsp
│   ├── faest_em_128s
│   │   ├── PQCsignKAT_faest_em_128s.req
│   │   └── PQCsignKAT_faest_em_128s.rsp
│   ├── faest_em_192f
│   │   ├── PQCsignKAT_faest_em_192f.req
│   │   └── PQCsignKAT_faest_em_192f.rsp
│   ├── faest_em_192s
│   │   ├── PQCsignKAT_faest_em_192s.req
│   │   └── PQCsignKAT_faest_em_192s.rsp
│   ├── faest_em_256f
│   │   ├── PQCsignKAT_faest_em_256f.req
│   │   └── PQCsignKAT_faest_em_256f.rsp
│   └── faest_em_256s
│       ├── PQCsignKAT_faest_em_256s.req
│       └── PQCsignKAT_faest_em_256s.rsp
# Optimized implementation is the same as the reference implementation
├── Optimized_Implementation
│   └── README
# This file
├── README
# Reference implementation
├── Reference_Implementation
    # Variant FAEST-128f
│   ├── faest_128f
│   │   ├── Makefile
│   │   ├── NIST-KATs
│   │   │   ├── PQCgenKAT_sign.c
│   │   │   ├── rng.c
│   │   │   └── rng.h
│   │   ├── aes.c
│   │   ├── aes.h
│   │   ├── api.h
│   │   ├── compat.c
│   │   ├── compat.h
│   │   ├── crypto_sign.c
│   │   ├── crypto_sign.h
│   │   ├── endian_compat.h
│   │   ├── faest.c
│   │   ├── faest.h
│   │   ├── faest_128f.c
│   │   ├── faest_128f.h
│   │   ├── faest_aes.c
│   │   ├── faest_aes.h
│   │   ├── faest_defines.h
│   │   ├── fields.c
│   │   ├── fields.h
│   │   ├── hash_shake.h
│   │   ├── instances.c
│   │   ├── instances.h
│   │   ├── macros.h
│   │   ├── owf.c
│   │   ├── owf.h
│   │   ├── parameters.h
│   │   ├── random_oracle.c
│   │   ├── random_oracle.h
│   │   ├── randomness.c
│   │   ├── randomness.h
│   │   ├── sha3
│   │   │   ├── KeccakHash.c
│   │   │   ├── KeccakHash.h
│   │   │   ├── KeccakHashtimes4.c
│   │   │   ├── KeccakHashtimes4.h
│   │   │   ├── KeccakP-1600-64.macros
│   │   │   ├── KeccakP-1600-SnP.h
│   │   │   ├── KeccakP-1600-opt64-config.h
│   │   │   ├── KeccakP-1600-opt64.c
│   │   │   ├── KeccakP-1600-times4-SnP.h
│   │   │   ├── KeccakP-1600-times4-on1.c
│   │   │   ├── KeccakP-1600-unrolling.macros
│   │   │   ├── KeccakSponge.c
│   │   │   ├── KeccakSponge.h
│   │   │   ├── KeccakSponge.inc
│   │   │   ├── KeccakSpongetimes4.c
│   │   │   ├── KeccakSpongetimes4.h
│   │   │   ├── KeccakSpongetimes4.inc
│   │   │   ├── PlSnP-Fallback.inc
│   │   │   ├── SnP-Relaned.h
│   │   │   ├── align.h
│   │   │   ├── brg_endian.h
│   │   │   ├── config.h
│   │   │   └── s390_cpacf.h
│   │   ├── tests
│   │   │   └── api_test.c
│   │   ├── universal_hashing.c
│   │   ├── universal_hashing.h
│   │   ├── utils.c
│   │   ├── utils.h
│   │   ├── vc.c
│   │   ├── vc.h
│   │   ├── vole.c
│   │   └── vole.h
    # Variant FAEST-128s
│   ├── faest_128s
│   │   ├── Makefile
│   │   ├── NIST-KATs
│   │   │   ├── PQCgenKAT_sign.c
│   │   │   ├── rng.c
│   │   │   └── rng.h
│   │   ├── aes.c
│   │   ├── aes.h
│   │   ├── api.h
│   │   ├── compat.c
│   │   ├── compat.h
│   │   ├── crypto_sign.c
│   │   ├── crypto_sign.h
│   │   ├── endian_compat.h
│   │   ├── faest.c
│   │   ├── faest.h
│   │   ├── faest_128s.c
│   │   ├── faest_128s.h
│   │   ├── faest_aes.c
│   │   ├── faest_aes.h
│   │   ├── faest_defines.h
│   │   ├── fields.c
│   │   ├── fields.h
│   │   ├── hash_shake.h
│   │   ├── instances.c
│   │   ├── instances.h
│   │   ├── macros.h
│   │   ├── owf.c
│   │   ├── owf.h
│   │   ├── parameters.h
│   │   ├── random_oracle.c
│   │   ├── random_oracle.h
│   │   ├── randomness.c
│   │   ├── randomness.h
│   │   ├── sha3
│   │   │   ├── KeccakHash.c
│   │   │   ├── KeccakHash.h
│   │   │   ├── KeccakHashtimes4.c
│   │   │   ├── KeccakHashtimes4.h
│   │   │   ├── KeccakP-1600-64.macros
│   │   │   ├── KeccakP-1600-SnP.h
│   │   │   ├── KeccakP-1600-opt64-config.h
│   │   │   ├── KeccakP-1600-opt64.c
│   │   │   ├── KeccakP-1600-times4-SnP.h
│   │   │   ├── KeccakP-1600-times4-on1.c
│   │   │   ├── KeccakP-1600-unrolling.macros
│   │   │   ├── KeccakSponge.c
│   │   │   ├── KeccakSponge.h
│   │   │   ├── KeccakSponge.inc
│   │   │   ├── KeccakSpongetimes4.c
│   │   │   ├── KeccakSpongetimes4.h
│   │   │   ├── KeccakSpongetimes4.inc
│   │   │   ├── PlSnP-Fallback.inc
│   │   │   ├── SnP-Relaned.h
│   │   │   ├── align.h
│   │   │   ├── brg_endian.h
│   │   │   ├── config.h
│   │   │   └── s390_cpacf.h
│   │   ├── tests
│   │   │   └── api_test.c
│   │   ├── universal_hashing.c
│   │   ├── universal_hashing.h
│   │   ├── utils.c
│   │   ├── utils.h
│   │   ├── vc.c
│   │   ├── vc.h
│   │   ├── vole.c
│   │   └── vole.h
    # Variant FAEST-192f
│   ├── faest_192f
│   │   ├── Makefile
│   │   ├── NIST-KATs
│   │   │   ├── PQCgenKAT_sign.c
│   │   │   ├── rng.c
│   │   │   └── rng.h
│   │   ├── aes.c
│   │   ├── aes.h
│   │   ├── api.h
│   │   ├── compat.c
│   │   ├── compat.h
│   │   ├── crypto_sign.c
│   │   ├── crypto_sign.h
│   │   ├── endian_compat.h
│   │   ├── faest.c
│   │   ├── faest.h
│   │   ├── faest_192f.c
│   │   ├── faest_192f.h
│   │   ├── faest_aes.c
│   │   ├── faest_aes.h
│   │   ├── faest_defines.h
│   │   ├── fields.c
│   │   ├── fields.h
│   │   ├── hash_shake.h
│   │   ├── instances.c
│   │   ├── instances.h
│   │   ├── macros.h
│   │   ├── owf.c
│   │   ├── owf.h
│   │   ├── parameters.h
│   │   ├── random_oracle.c
│   │   ├── random_oracle.h
│   │   ├── randomness.c
│   │   ├── randomness.h
│   │   ├── sha3
│   │   │   ├── KeccakHash.c
│   │   │   ├── KeccakHash.h
│   │   │   ├── KeccakHashtimes4.c
│   │   │   ├── KeccakHashtimes4.h
│   │   │   ├── KeccakP-1600-64.macros
│   │   │   ├── KeccakP-1600-SnP.h
│   │   │   ├── KeccakP-1600-opt64-config.h
│   │   │   ├── KeccakP-1600-opt64.c
│   │   │   ├── KeccakP-1600-times4-SnP.h
│   │   │   ├── KeccakP-1600-times4-on1.c
│   │   │   ├── KeccakP-1600-unrolling.macros
│   │   │   ├── KeccakSponge.c
│   │   │   ├── KeccakSponge.h
│   │   │   ├── KeccakSponge.inc
│   │   │   ├── KeccakSpongetimes4.c
│   │   │   ├── KeccakSpongetimes4.h
│   │   │   ├── KeccakSpongetimes4.inc
│   │   │   ├── PlSnP-Fallback.inc
│   │   │   ├── SnP-Relaned.h
│   │   │   ├── align.h
│   │   │   ├── brg_endian.h
│   │   │   ├── config.h
│   │   │   └── s390_cpacf.h
│   │   ├── tests
│   │   │   └── api_test.c
│   │   ├── universal_hashing.c
│   │   ├── universal_hashing.h
│   │   ├── utils.c
│   │   ├── utils.h
│   │   ├── vc.c
│   │   ├── vc.h
│   │   ├── vole.c
│   │   └── vole.h
    # Variant FAEST-192s
│   ├── faest_192s
│   │   ├── Makefile
│   │   ├── NIST-KATs
│   │   │   ├── PQCgenKAT_sign.c
│   │   │   ├── rng.c
│   │   │   └── rng.h
│   │   ├── aes.c
│   │   ├── aes.h
│   │   ├── api.h
│   │   ├── compat.c
│   │   ├── compat.h
│   │   ├── crypto_sign.c
│   │   ├── crypto_sign.h
│   │   ├── endian_compat.h
│   │   ├── faest.c
│   │   ├── faest.h
│   │   ├── faest_192s.c
│   │   ├── faest_192s.h
│   │   ├── faest_aes.c
│   │   ├── faest_aes.h
│   │   ├── faest_defines.h
│   │   ├── fields.c
│   │   ├── fields.h
│   │   ├── hash_shake.h
│   │   ├── instances.c
│   │   ├── instances.h
│   │   ├── macros.h
│   │   ├── owf.c
│   │   ├── owf.h
│   │   ├── parameters.h
│   │   ├── random_oracle.c
│   │   ├── random_oracle.h
│   │   ├── randomness.c
│   │   ├── randomness.h
│   │   ├── sha3
│   │   │   ├── KeccakHash.c
│   │   │   ├── KeccakHash.h
│   │   │   ├── KeccakHashtimes4.c
│   │   │   ├── KeccakHashtimes4.h
│   │   │   ├── KeccakP-1600-64.macros
│   │   │   ├── KeccakP-1600-SnP.h
│   │   │   ├── KeccakP-1600-opt64-config.h
│   │   │   ├── KeccakP-1600-opt64.c
│   │   │   ├── KeccakP-1600-times4-SnP.h
│   │   │   ├── KeccakP-1600-times4-on1.c
│   │   │   ├── KeccakP-1600-unrolling.macros
│   │   │   ├── KeccakSponge.c
│   │   │   ├── KeccakSponge.h
│   │   │   ├── KeccakSponge.inc
│   │   │   ├── KeccakSpongetimes4.c
│   │   │   ├── KeccakSpongetimes4.h
│   │   │   ├── KeccakSpongetimes4.inc
│   │   │   ├── PlSnP-Fallback.inc
│   │   │   ├── SnP-Relaned.h
│   │   │   ├── align.h
│   │   │   ├── brg_endian.h
│   │   │   ├── config.h
│   │   │   └── s390_cpacf.h
│   │   ├── tests
│   │   │   └── api_test.c
│   │   ├── universal_hashing.c
│   │   ├── universal_hashing.h
│   │   ├── utils.c
│   │   ├── utils.h
│   │   ├── vc.c
│   │   ├── vc.h
│   │   ├── vole.c
│   │   └── vole.h
    # Variant FAEST-256f
│   ├── faest_256f
│   │   ├── Makefile
│   │   ├── NIST-KATs
│   │   │   ├── PQCgenKAT_sign.c
│   │   │   ├── rng.c
│   │   │   └── rng.h
│   │   ├── aes.c
│   │   ├── aes.h
│   │   ├── api.h
│   │   ├── compat.c
│   │   ├── compat.h
│   │   ├── crypto_sign.c
│   │   ├── crypto_sign.h
│   │   ├── endian_compat.h
│   │   ├── faest.c
│   │   ├── faest.h
│   │   ├── faest_256f.c
│   │   ├── faest_256f.h
│   │   ├── faest_aes.c
│   │   ├── faest_aes.h
│   │   ├── faest_defines.h
│   │   ├── fields.c
│   │   ├── fields.h
│   │   ├── hash_shake.h
│   │   ├── instances.c
│   │   ├── instances.h
│   │   ├── macros.h
│   │   ├── owf.c
│   │   ├── owf.h
│   │   ├── parameters.h
│   │   ├── random_oracle.c
│   │   ├── random_oracle.h
│   │   ├── randomness.c
│   │   ├── randomness.h
│   │   ├── sha3
│   │   │   ├── KeccakHash.c
│   │   │   ├── KeccakHash.h
│   │   │   ├── KeccakHashtimes4.c
│   │   │   ├── KeccakHashtimes4.h
│   │   │   ├── KeccakP-1600-64.macros
│   │   │   ├── KeccakP-1600-SnP.h
│   │   │   ├── KeccakP-1600-opt64-config.h
│   │   │   ├── KeccakP-1600-opt64.c
│   │   │   ├── KeccakP-1600-times4-SnP.h
│   │   │   ├── KeccakP-1600-times4-on1.c
│   │   │   ├── KeccakP-1600-unrolling.macros
│   │   │   ├── KeccakSponge.c
│   │   │   ├── KeccakSponge.h
│   │   │   ├── KeccakSponge.inc
│   │   │   ├── KeccakSpongetimes4.c
│   │   │   ├── KeccakSpongetimes4.h
│   │   │   ├── KeccakSpongetimes4.inc
│   │   │   ├── PlSnP-Fallback.inc
│   │   │   ├── SnP-Relaned.h
│   │   │   ├── align.h
│   │   │   ├── brg_endian.h
│   │   │   ├── config.h
│   │   │   └── s390_cpacf.h
│   │   ├── tests
│   │   │   └── api_test.c
│   │   ├── universal_hashing.c
│   │   ├── universal_hashing.h
│   │   ├── utils.c
│   │   ├── utils.h
│   │   ├── vc.c
│   │   ├── vc.h
│   │   ├── vole.c
│   │   └── vole.h
    # Variant FAEST-256s
│   ├── faest_256s
│   │   ├── Makefile
│   │   ├── NIST-KATs
│   │   │   ├── PQCgenKAT_sign.c
│   │   │   ├── rng.c
│   │   │   └── rng.h
│   │   ├── aes.c
│   │   ├── aes.h
│   │   ├── api.h
│   │   ├── compat.c
│   │   ├── compat.h
│   │   ├── crypto_sign.c
│   │   ├── crypto_sign.h
│   │   ├── endian_compat.h
│   │   ├── faest.c
│   │   ├── faest.h
│   │   ├── faest_256s.c
│   │   ├── faest_256s.h
│   │   ├── faest_aes.c
│   │   ├── faest_aes.h
│   │   ├── faest_defines.h
│   │   ├── fields.c
│   │   ├── fields.h
│   │   ├── hash_shake.h
│   │   ├── instances.c
│   │   ├── instances.h
│   │   ├── macros.h
│   │   ├── owf.c
│   │   ├── owf.h
│   │   ├── parameters.h
│   │   ├── random_oracle.c
│   │   ├── random_oracle.h
│   │   ├── randomness.c
│   │   ├── randomness.h
│   │   ├── sha3
│   │   │   ├── KeccakHash.c
│   │   │   ├── KeccakHash.h
│   │   │   ├── KeccakHashtimes4.c
│   │   │   ├── KeccakHashtimes4.h
│   │   │   ├── KeccakP-1600-64.macros
│   │   │   ├── KeccakP-1600-SnP.h
│   │   │   ├── KeccakP-1600-opt64-config.h
│   │   │   ├── KeccakP-1600-opt64.c
│   │   │   ├── KeccakP-1600-times4-SnP.h
│   │   │   ├── KeccakP-1600-times4-on1.c
│   │   │   ├── KeccakP-1600-unrolling.macros
│   │   │   ├── KeccakSponge.c
│   │   │   ├── KeccakSponge.h
│   │   │   ├── KeccakSponge.inc
│   │   │   ├── KeccakSpongetimes4.c
│   │   │   ├── KeccakSpongetimes4.h
│   │   │   ├── KeccakSpongetimes4.inc
│   │   │   ├── PlSnP-Fallback.inc
│   │   │   ├── SnP-Relaned.h
│   │   │   ├── align.h
│   │   │   ├── brg_endian.h
│   │   │   ├── config.h
│   │   │   └── s390_cpacf.h
│   │   ├── tests
│   │   │   └── api_test.c
│   │   ├── universal_hashing.c
│   │   ├── universal_hashing.h
│   │   ├── utils.c
│   │   ├── utils.h
│   │   ├── vc.c
│   │   ├── vc.h
│   │   ├── vole.c
│   │   └── vole.h
│   ├── faest_em_128f
    # Variant FAEST-EM-128f
│   │   ├── Makefile
│   │   ├── NIST-KATs
│   │   │   ├── PQCgenKAT_sign.c
│   │   │   ├── rng.c
│   │   │   └── rng.h
│   │   ├── aes.c
│   │   ├── aes.h
│   │   ├── api.h
│   │   ├── compat.c
│   │   ├── compat.h
│   │   ├── crypto_sign.c
│   │   ├── crypto_sign.h
│   │   ├── endian_compat.h
│   │   ├── faest.c
│   │   ├── faest.h
│   │   ├── faest_aes.c
│   │   ├── faest_aes.h
│   │   ├── faest_defines.h
│   │   ├── faest_em_128f.c
│   │   ├── faest_em_128f.h
│   │   ├── fields.c
│   │   ├── fields.h
│   │   ├── hash_shake.h
│   │   ├── instances.c
│   │   ├── instances.h
│   │   ├── macros.h
│   │   ├── owf.c
│   │   ├── owf.h
│   │   ├── parameters.h
│   │   ├── random_oracle.c
│   │   ├── random_oracle.h
│   │   ├── randomness.c
│   │   ├── randomness.h
│   │   ├── sha3
│   │   │   ├── KeccakHash.c
│   │   │   ├── KeccakHash.h
│   │   │   ├── KeccakHashtimes4.c
│   │   │   ├── KeccakHashtimes4.h
│   │   │   ├── KeccakP-1600-64.macros
│   │   │   ├── KeccakP-1600-SnP.h
│   │   │   ├── KeccakP-1600-opt64-config.h
│   │   │   ├── KeccakP-1600-opt64.c
│   │   │   ├── KeccakP-1600-times4-SnP.h
│   │   │   ├── KeccakP-1600-times4-on1.c
│   │   │   ├── KeccakP-1600-unrolling.macros
│   │   │   ├── KeccakSponge.c
│   │   │   ├── KeccakSponge.h
│   │   │   ├── KeccakSponge.inc
│   │   │   ├── KeccakSpongetimes4.c
│   │   │   ├── KeccakSpongetimes4.h
│   │   │   ├── KeccakSpongetimes4.inc
│   │   │   ├── PlSnP-Fallback.inc
│   │   │   ├── SnP-Relaned.h
│   │   │   ├── align.h
│   │   │   ├── brg_endian.h
│   │   │   ├── config.h
│   │   │   └── s390_cpacf.h
│   │   ├── tests
│   │   │   └── api_test.c
│   │   ├── universal_hashing.c
│   │   ├── universal_hashing.h
│   │   ├── utils.c
│   │   ├── utils.h
│   │   ├── vc.c
│   │   ├── vc.h
│   │   ├── vole.c
│   │   └── vole.h
    # Variant FAEST-EM-128s
│   ├── faest_em_128s
│   │   ├── Makefile
│   │   ├── NIST-KATs
│   │   │   ├── PQCgenKAT_sign.c
│   │   │   ├── rng.c
│   │   │   └── rng.h
│   │   ├── aes.c
│   │   ├── aes.h
│   │   ├── api.h
│   │   ├── compat.c
│   │   ├── compat.h
│   │   ├── crypto_sign.c
│   │   ├── crypto_sign.h
│   │   ├── endian_compat.h
│   │   ├── faest.c
│   │   ├── faest.h
│   │   ├── faest_aes.c
│   │   ├── faest_aes.h
│   │   ├── faest_defines.h
│   │   ├── faest_em_128s.c
│   │   ├── faest_em_128s.h
│   │   ├── fields.c
│   │   ├── fields.h
│   │   ├── hash_shake.h
│   │   ├── instances.c
│   │   ├── instances.h
│   │   ├── macros.h
│   │   ├── owf.c
│   │   ├── owf.h
│   │   ├── parameters.h
│   │   ├── random_oracle.c
│   │   ├── random_oracle.h
│   │   ├── randomness.c
│   │   ├── randomness.h
│   │   ├── sha3
│   │   │   ├── KeccakHash.c
│   │   │   ├── KeccakHash.h
│   │   │   ├── KeccakHashtimes4.c
│   │   │   ├── KeccakHashtimes4.h
│   │   │   ├── KeccakP-1600-64.macros
│   │   │   ├── KeccakP-1600-SnP.h
│   │   │   ├── KeccakP-1600-opt64-config.h
│   │   │   ├── KeccakP-1600-opt64.c
│   │   │   ├── KeccakP-1600-times4-SnP.h
│   │   │   ├── KeccakP-1600-times4-on1.c
│   │   │   ├── KeccakP-1600-unrolling.macros
│   │   │   ├── KeccakSponge.c
│   │   │   ├── KeccakSponge.h
│   │   │   ├── KeccakSponge.inc
│   │   │   ├── KeccakSpongetimes4.c
│   │   │   ├── KeccakSpongetimes4.h
│   │   │   ├── KeccakSpongetimes4.inc
│   │   │   ├── PlSnP-Fallback.inc
│   │   │   ├── SnP-Relaned.h
│   │   │   ├── align.h
│   │   │   ├── brg_endian.h
│   │   │   ├── config.h
│   │   │   └── s390_cpacf.h
│   │   ├── tests
│   │   │   └── api_test.c
│   │   ├── universal_hashing.c
│   │   ├── universal_hashing.h
│   │   ├── utils.c
│   │   ├── utils.h
│   │   ├── vc.c
│   │   ├── vc.h
│   │   ├── vole.c
│   │   └── vole.h
    # Variant FAEST-EM-192f
│   ├── faest_em_192f
│   │   ├── Makefile
│   │   ├── NIST-KATs
│   │   │   ├── PQCgenKAT_sign.c
│   │   │   ├── rng.c
│   │   │   └── rng.h
│   │   ├── aes.c
│   │   ├── aes.h
│   │   ├── api.h
│   │   ├── compat.c
│   │   ├── compat.h
│   │   ├── crypto_sign.c
│   │   ├── crypto_sign.h
│   │   ├── endian_compat.h
│   │   ├── faest.c
│   │   ├── faest.h
│   │   ├── faest_aes.c
│   │   ├── faest_aes.h
│   │   ├── faest_defines.h
│   │   ├── faest_em_192f.c
│   │   ├── faest_em_192f.h
│   │   ├── fields.c
│   │   ├── fields.h
│   │   ├── hash_shake.h
│   │   ├── instances.c
│   │   ├── instances.h
│   │   ├── macros.h
│   │   ├── owf.c
│   │   ├── owf.h
│   │   ├── parameters.h
│   │   ├── random_oracle.c
│   │   ├── random_oracle.h
│   │   ├── randomness.c
│   │   ├── randomness.h
│   │   ├── sha3
│   │   │   ├── KeccakHash.c
│   │   │   ├── KeccakHash.h
│   │   │   ├── KeccakHashtimes4.c
│   │   │   ├── KeccakHashtimes4.h
│   │   │   ├── KeccakP-1600-64.macros
│   │   │   ├── KeccakP-1600-SnP.h
│   │   │   ├── KeccakP-1600-opt64-config.h
│   │   │   ├── KeccakP-1600-opt64.c
│   │   │   ├── KeccakP-1600-times4-SnP.h
│   │   │   ├── KeccakP-1600-times4-on1.c
│   │   │   ├── KeccakP-1600-unrolling.macros
│   │   │   ├── KeccakSponge.c
│   │   │   ├── KeccakSponge.h
│   │   │   ├── KeccakSponge.inc
│   │   │   ├── KeccakSpongetimes4.c
│   │   │   ├── KeccakSpongetimes4.h
│   │   │   ├── KeccakSpongetimes4.inc
│   │   │   ├── PlSnP-Fallback.inc
│   │   │   ├── SnP-Relaned.h
│   │   │   ├── align.h
│   │   │   ├── brg_endian.h
│   │   │   ├── config.h
│   │   │   └── s390_cpacf.h
│   │   ├── tests
│   │   │   └── api_test.c
│   │   ├── universal_hashing.c
│   │   ├── universal_hashing.h
│   │   ├── utils.c
│   │   ├── utils.h
│   │   ├── vc.c
│   │   ├── vc.h
│   │   ├── vole.c
│   │   └── vole.h
    # Variant FAEST-EM-192s
│   ├── faest_em_192s
│   │   ├── Makefile
│   │   ├── NIST-KATs
│   │   │   ├── PQCgenKAT_sign.c
│   │   │   ├── rng.c
│   │   │   └── rng.h
│   │   ├── aes.c
│   │   ├── aes.h
│   │   ├── api.h
│   │   ├── compat.c
│   │   ├── compat.h
│   │   ├── crypto_sign.c
│   │   ├── crypto_sign.h
│   │   ├── endian_compat.h
│   │   ├── faest.c
│   │   ├── faest.h
│   │   ├── faest_aes.c
│   │   ├── faest_aes.h
│   │   ├── faest_defines.h
│   │   ├── faest_em_192s.c
│   │   ├── faest_em_192s.h
│   │   ├── fields.c
│   │   ├── fields.h
│   │   ├── hash_shake.h
│   │   ├── instances.c
│   │   ├── instances.h
│   │   ├── macros.h
│   │   ├── owf.c
│   │   ├── owf.h
│   │   ├── parameters.h
│   │   ├── random_oracle.c
│   │   ├── random_oracle.h
│   │   ├── randomness.c
│   │   ├── randomness.h
│   │   ├── sha3
│   │   │   ├── KeccakHash.c
│   │   │   ├── KeccakHash.h
│   │   │   ├── KeccakHashtimes4.c
│   │   │   ├── KeccakHashtimes4.h
│   │   │   ├── KeccakP-1600-64.macros
│   │   │   ├── KeccakP-1600-SnP.h
│   │   │   ├── KeccakP-1600-opt64-config.h
│   │   │   ├── KeccakP-1600-opt64.c
│   │   │   ├── KeccakP-1600-times4-SnP.h
│   │   │   ├── KeccakP-1600-times4-on1.c
│   │   │   ├── KeccakP-1600-unrolling.macros
│   │   │   ├── KeccakSponge.c
│   │   │   ├── KeccakSponge.h
│   │   │   ├── KeccakSponge.inc
│   │   │   ├── KeccakSpongetimes4.c
│   │   │   ├── KeccakSpongetimes4.h
│   │   │   ├── KeccakSpongetimes4.inc
│   │   │   ├── PlSnP-Fallback.inc
│   │   │   ├── SnP-Relaned.h
│   │   │   ├── align.h
│   │   │   ├── brg_endian.h
│   │   │   ├── config.h
│   │   │   └── s390_cpacf.h
│   │   ├── tests
│   │   │   └── api_test.c
│   │   ├── universal_hashing.c
│   │   ├── universal_hashing.h
│   │   ├── utils.c
│   │   ├── utils.h
│   │   ├── vc.c
│   │   ├── vc.h
│   │   ├── vole.c
│   │   └── vole.h
    # Variant FAEST-EM-256f
│   ├── faest_em_256f
│   │   ├── Makefile
│   │   ├── NIST-KATs
│   │   │   ├── PQCgenKAT_sign.c
│   │   │   ├── rng.c
│   │   │   └── rng.h
│   │   ├── aes.c
│   │   ├── aes.h
│   │   ├── api.h
│   │   ├── compat.c
│   │   ├── compat.h
│   │   ├── crypto_sign.c
│   │   ├── crypto_sign.h
│   │   ├── endian_compat.h
│   │   ├── faest.c
│   │   ├── faest.h
│   │   ├── faest_aes.c
│   │   ├── faest_aes.h
│   │   ├── faest_defines.h
│   │   ├── faest_em_256f.c
│   │   ├── faest_em_256f.h
│   │   ├── fields.c
│   │   ├── fields.h
│   │   ├── hash_shake.h
│   │   ├── instances.c
│   │   ├── instances.h
│   │   ├── macros.h
│   │   ├── owf.c
│   │   ├── owf.h
│   │   ├── parameters.h
│   │   ├── random_oracle.c
│   │   ├── random_oracle.h
│   │   ├── randomness.c
│   │   ├── randomness.h
│   │   ├── sha3
│   │   │   ├── KeccakHash.c
│   │   │   ├── KeccakHash.h
│   │   │   ├── KeccakHashtimes4.c
│   │   │   ├── KeccakHashtimes4.h
│   │   │   ├── KeccakP-1600-64.macros
│   │   │   ├── KeccakP-1600-SnP.h
│   │   │   ├── KeccakP-1600-opt64-config.h
│   │   │   ├── KeccakP-1600-opt64.c
│   │   │   ├── KeccakP-1600-times4-SnP.h
│   │   │   ├── KeccakP-1600-times4-on1.c
│   │   │   ├── KeccakP-1600-unrolling.macros
│   │   │   ├── KeccakSponge.c
│   │   │   ├── KeccakSponge.h
│   │   │   ├── KeccakSponge.inc
│   │   │   ├── KeccakSpongetimes4.c
│   │   │   ├── KeccakSpongetimes4.h
│   │   │   ├── KeccakSpongetimes4.inc
│   │   │   ├── PlSnP-Fallback.inc
│   │   │   ├── SnP-Relaned.h
│   │   │   ├── align.h
│   │   │   ├── brg_endian.h
│   │   │   ├── config.h
│   │   │   └── s390_cpacf.h
│   │   ├── tests
│   │   │   └── api_test.c
│   │   ├── universal_hashing.c
│   │   ├── universal_hashing.h
│   │   ├── utils.c
│   │   ├── utils.h
│   │   ├── vc.c
│   │   ├── vc.h
│   │   ├── vole.c
│   │   └── vole.h
    # Variant FAEST-EM-256s
│   └── faest_em_256s
│       ├── Makefile
│       ├── NIST-KATs
│       │   ├── PQCgenKAT_sign.c
│       │   ├── rng.c
│       │   └── rng.h
│       ├── aes.c
│       ├── aes.h
│       ├── api.h
│       ├── compat.c
│       ├── compat.h
│       ├── crypto_sign.c
│       ├── crypto_sign.h
│       ├── endian_compat.h
│       ├── faest.c
│       ├── faest.h
│       ├── faest_aes.c
│       ├── faest_aes.h
│       ├── faest_defines.h
│       ├── faest_em_256s.c
│       ├── faest_em_256s.h
│       ├── fields.c
│       ├── fields.h
│       ├── hash_shake.h
│       ├── instances.c
│       ├── instances.h
│       ├── macros.h
│       ├── owf.c
│       ├── owf.h
│       ├── parameters.h
│       ├── random_oracle.c
│       ├── random_oracle.h
│       ├── randomness.c
│       ├── randomness.h
│       ├── sha3
│       │   ├── KeccakHash.c
│       │   ├── KeccakHash.h
│       │   ├── KeccakHashtimes4.c
│       │   ├── KeccakHashtimes4.h
│       │   ├── KeccakP-1600-64.macros
│       │   ├── KeccakP-1600-SnP.h
│       │   ├── KeccakP-1600-opt64-config.h
│       │   ├── KeccakP-1600-opt64.c
│       │   ├── KeccakP-1600-times4-SnP.h
│       │   ├── KeccakP-1600-times4-on1.c
│       │   ├── KeccakP-1600-unrolling.macros
│       │   ├── KeccakSponge.c
│       │   ├── KeccakSponge.h
│       │   ├── KeccakSponge.inc
│       │   ├── KeccakSpongetimes4.c
│       │   ├── KeccakSpongetimes4.h
│       │   ├── KeccakSpongetimes4.inc
│       │   ├── PlSnP-Fallback.inc
│       │   ├── SnP-Relaned.h
│       │   ├── align.h
│       │   ├── brg_endian.h
│       │   ├── config.h
│       │   └── s390_cpacf.h
│       ├── tests
│       │   └── api_test.c
│       ├── universal_hashing.c
│       ├── universal_hashing.h
│       ├── utils.c
│       ├── utils.h
│       ├── vc.c
│       ├── vc.h
│       ├── vole.c
│       └── vole.h
# Algorithm specifications for FAEST
├── Supporting_Documentation
│   └── FAEST.pdf
# Cover sheet
└── cover_sheet.pdf

80 directories, 1735 files
