pq_crypto 0.6.1 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/SECURITY.md +7 -0
- data/ext/pqcrypto/pqcrypto_version.h +1 -1
- data/ext/pqcrypto/vendor/.vendored +4 -4
- data/ext/pqcrypto/vendor/mldsa-native/README.md +23 -10
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/README.md +23 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native.c +114 -58
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native.h +498 -461
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native_asm.S +145 -85
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native_config.h +456 -422
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/cbmc.h +47 -25
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/common.h +26 -14
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/ct.h +56 -81
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/debug.h +17 -24
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202.c +33 -40
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202.h +67 -87
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202x4.c +19 -14
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202x4.h +13 -5
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/keccakf1600.c +84 -10
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/keccakf1600.h +10 -5
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/auto.h +6 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/fips202_native_aarch64.h +22 -15
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x1_scalar_aarch64_asm.S +376 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x1_v84a_aarch64_asm.S +204 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x2_v84a_aarch64_asm.S +259 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_aarch64_asm.S +1077 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_aarch64_asm.S +987 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccakf1600_round_constants.c +16 -10
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x1_scalar.h +2 -1
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x1_v84a.h +1 -1
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x2_v84a.h +4 -2
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x4_v8a_scalar.h +2 -2
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x4_v8a_v84a_scalar.h +1 -1
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/api.h +60 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/mve.h +48 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/fips202_native_armv81m.h +18 -1
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S +658 -582
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.c +5 -100
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/keccakf1600_round_constants.c +26 -25
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/state_extract_bytes_x4_mve.S +334 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/state_xor_bytes_x4_mve.S +355 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/auto.h +8 -3
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/{xkcp.h → keccak_f1600_x4_avx2.h} +11 -8
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/src/fips202_native_x86_64.h +44 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/src/keccak_f1600_x4_avx2_asm.S +454 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/src/keccakf1600_constants.c +52 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/meta.h +37 -28
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/aarch64_zetas.c +213 -196
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/arith_native_aarch64.h +248 -64
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/intt_aarch64_asm.S +753 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l4_aarch64_asm.S +129 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l5_aarch64_asm.S +145 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l7_aarch64_asm.S +177 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/ntt_aarch64_asm.S +653 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/pointwise_montgomery_aarch64_asm.S +84 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_caddq_aarch64_asm.S +53 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_chknorm_aarch64_asm.S +55 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_decompose_32_aarch64_asm.S +86 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_decompose_88_aarch64_asm.S +86 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_use_hint_32_aarch64_asm.S +103 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_use_hint_88_aarch64_asm.S +111 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_17_aarch64_asm.S +75 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_19_aarch64_asm.S +72 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_table.c +23 -11
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_aarch64_asm.S +189 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta2_aarch64_asm.S +137 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta4_aarch64_asm.S +130 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta_table.c +520 -516
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_table.c +34 -33
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/api.h +202 -242
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/meta.h +25 -17
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/arith_native_x86_64.h +112 -28
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/consts.c +1 -1
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/consts.h +1 -1
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/intt_avx2_asm.S +2311 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/ntt_avx2_asm.S +2383 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/nttunpack_avx2_asm.S +238 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l4_avx2_asm.S +139 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l5_avx2_asm.S +155 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l7_avx2_asm.S +187 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_avx2_asm.S +130 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_caddq_avx2_asm.S +190 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_decompose_32_avx2.c +6 -4
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_decompose_88_avx2.c +6 -4
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_use_hint_32_avx2.c +9 -8
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_use_hint_88_avx2.c +10 -9
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/polyz_unpack_17_avx2.c +8 -5
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/polyz_unpack_19_avx2.c +8 -5
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/rej_uniform_eta2_avx2.c +6 -4
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/rej_uniform_eta4_avx2.c +6 -4
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/rej_uniform_table.c +130 -129
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/packing.c +109 -180
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/packing.h +169 -150
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly.c +56 -40
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly.h +149 -164
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly_kl.c +52 -57
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly_kl.h +132 -167
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/polyvec.c +57 -424
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/polyvec.h +167 -474
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/polyvec_lazy.c +308 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/polyvec_lazy.h +653 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/reduce.h +22 -29
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/rounding.h +37 -43
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/sign.c +511 -367
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/sign.h +456 -417
- data/lib/pq_crypto/version.rb +1 -1
- data/script/vendor_libs.rb +3 -3
- metadata +41 -35
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x1_scalar_asm.S +0 -376
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x1_v84a_asm.S +0 -204
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x2_v84a_asm.S +0 -259
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_asm.S +0 -1077
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_asm.S +0 -987
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/src/KeccakP_1600_times4_SIMD256.c +0 -488
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/src/KeccakP_1600_times4_SIMD256.h +0 -16
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/intt.S +0 -753
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l4.S +0 -129
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l5.S +0 -145
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l7.S +0 -177
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/ntt.S +0 -653
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/pointwise_montgomery.S +0 -79
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_caddq_asm.S +0 -53
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_chknorm_asm.S +0 -55
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_decompose_32_asm.S +0 -85
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_decompose_88_asm.S +0 -85
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_use_hint_32_asm.S +0 -102
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_use_hint_88_asm.S +0 -110
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_17_asm.S +0 -72
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_19_asm.S +0 -69
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_asm.S +0 -189
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta2_asm.S +0 -135
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta4_asm.S +0 -128
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/intt.S +0 -2311
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/ntt.S +0 -2383
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/nttunpack.S +0 -239
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise.S +0 -131
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l4.S +0 -139
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l5.S +0 -155
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l7.S +0 -187
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_caddq_avx2.c +0 -61
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 94d0fc254c0169b1e49ce177e0bf9830c9a1140dc425be9e917e8b2acfb870ed
|
|
4
|
+
data.tar.gz: 148381930753a4d6eb850522619ddf43b602cf9ae9966190c91f276c56f0d426
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bb8d4c4683429e99d0147ece542dabdb2276ec3933482d03e3dae81a8bd55b3ed2e617c89221dcdec4dbc34c134027dc406ab7d5e814af2ceef91aa1fb1a0240
|
|
7
|
+
data.tar.gz: 1e911b991634858610ceea12d5cb3a7efbb3a2f480f7ccb531e9afd1e4d01befe673ebec0f1935500dafed37b595d9c9a11a5b9a12adf1ff0720a0a76bf95c96
|
data/CHANGELOG.md
CHANGED
data/SECURITY.md
CHANGED
|
@@ -23,6 +23,13 @@ PKCS#8 encodings where the linked OpenSSL exposes the corresponding ML-KEM /
|
|
|
23
23
|
ML-DSA EVP support. These tests improve compatibility coverage but are not a
|
|
24
24
|
substitute for a security audit.
|
|
25
25
|
|
|
26
|
+
The test surface also includes libFuzzer targets for PKCS#8 DER/PEM decoding
|
|
27
|
+
and pq_crypto-local container decoding, built with AddressSanitizer and
|
|
28
|
+
UndefinedBehaviorSanitizer. A representative clang-17 run executed
|
|
29
|
+
approximately 253 million inputs across these targets and produced no crash
|
|
30
|
+
artifacts. This improves malformed-input parser coverage but is not a proof of
|
|
31
|
+
memory safety and is not a substitute for a security audit.
|
|
32
|
+
|
|
26
33
|
## Algorithm notes
|
|
27
34
|
|
|
28
35
|
### ML-KEM / ML-DSA
|
|
@@ -6,7 +6,7 @@ mlkem_native_ref=v1.1.0
|
|
|
6
6
|
mlkem_native_commit=d2cae2be522a67bfae26100fdb520576f1b2ef90
|
|
7
7
|
mlkem_native_tree_sha256=c225de87a69e6d6360cddc4b5839b03e65fa9d5a1112a5f19700c905b7e74512
|
|
8
8
|
mldsa_native_repo=https://github.com/pq-code-package/mldsa-native.git
|
|
9
|
-
mldsa_native_ref=v1.0.0-
|
|
10
|
-
mldsa_native_commit=
|
|
11
|
-
mldsa_native_tree_sha256=
|
|
12
|
-
manifest_sha256=
|
|
9
|
+
mldsa_native_ref=v1.0.0-beta2
|
|
10
|
+
mldsa_native_commit=9b0ee84f4cf399043eca59eca4e5f8531ca1d61b
|
|
11
|
+
mldsa_native_tree_sha256=2887f59926c18a877e8c5a5e30727e84497c357032093d00d7135aedf53f011e
|
|
12
|
+
manifest_sha256=cfcf998232945760d5fd66cc3ec0af54925e13844e1758f559eeb1c7ecf16ffc
|
|
@@ -59,19 +59,14 @@ mldsa-native is used in
|
|
|
59
59
|
|
|
60
60
|
We use the [C Bounded Model Checker (CBMC)](https://github.com/diffblue/cbmc) to prove absence of various classes of undefined behaviour in C, including out of bounds memory accesses and integer overflows. The proofs cover all C code in [mldsa/src/*](mldsa) and [mldsa/src/fips202/*](mldsa/src/fips202) involved in running mldsa-native with its C backend. See [proofs/cbmc](proofs/cbmc) for details.
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
HOL-Light functional correctness proofs can be found in [proofs/hol_light](proofs/hol_light). So far, the following functions have been proven correct:
|
|
65
|
-
|
|
66
|
-
- AArch64 poly_caddq [poly_caddq_asm.S](mldsa/src/native/aarch64/src/poly_caddq_asm.S)
|
|
67
|
-
- x86_64 NTT [ntt.S](mldsa/src/native/x86_64/src/ntt.S)
|
|
68
|
-
|
|
69
|
-
These proofs utilize the verification infrastructure in [s2n-bignum](https://github.com/awslabs/s2n-bignum).
|
|
62
|
+
HOL-Light functional correctness proofs can be found in [proofs/hol_light](proofs/hol_light). See the [HOL-Light README](proofs/hol_light/README.md) for the list of functions that have been proven correct. These proofs utilize the verification infrastructure in [s2n-bignum](https://github.com/awslabs/s2n-bignum).
|
|
70
63
|
|
|
71
64
|
Finally, [proofs/isabelle](proofs/isabelle/compress) contains proofs in [Isabelle/HOL](https://isabelle.in.tum.de/) of the correctness of
|
|
72
65
|
different approaches for computing the scalar decomposition routines used in ML-DSA. Those are still experimental and do not yet operate
|
|
73
66
|
on the source level.
|
|
74
67
|
|
|
68
|
+
**NOTE:** Formal Verification is never absolute. See [SOUNDNESS.md](SOUNDNESS.md) for an analysis of the scope, assumptions and risks of the formal verification efforts around mldsa-native.
|
|
69
|
+
|
|
75
70
|
## Security
|
|
76
71
|
|
|
77
72
|
All assembly in mldsa-native is constant-time in the sense that it is free of secret-dependent control flow, memory access,
|
|
@@ -81,6 +76,8 @@ timing side channels through suitable barriers and constant-time patterns.
|
|
|
81
76
|
Absence of secret-dependent branches, memory-access patterns and variable-latency instructions is also tested using `valgrind`
|
|
82
77
|
with various combinations of compilers and compilation options.
|
|
83
78
|
|
|
79
|
+
**Other attacks.** mldsa-native targets resistance against timing side-channels only. Other attack classes, such as power and electromagnetic side-channels, microarchitectural side-channels (e.g. speculative execution), or fault-injection attacks, are currently out of scope.
|
|
80
|
+
|
|
84
81
|
## Design
|
|
85
82
|
|
|
86
83
|
mldsa-native is split into a _frontend_ and two _backends_ for arithmetic and FIPS202 / SHA3. The frontend is
|
|
@@ -98,9 +95,12 @@ mldsa-native currently offers the following backends:
|
|
|
98
95
|
|
|
99
96
|
If you'd like contribute new backends, please reach out!
|
|
100
97
|
|
|
101
|
-
##
|
|
98
|
+
## Test Vectors
|
|
99
|
+
|
|
100
|
+
mldsa-native is tested against all official ACVP ML-DSA test vectors[^ACVP] and the
|
|
101
|
+
Wycheproof[^wycheproof] ML-DSA test vectors.
|
|
102
102
|
|
|
103
|
-
|
|
103
|
+
### ACVP
|
|
104
104
|
|
|
105
105
|
You can run ACVP tests using the [`tests`](./scripts/tests) script or the [ACVP client](./test/acvp/acvp_client.py) directly:
|
|
106
106
|
|
|
@@ -122,6 +122,18 @@ python3 ./test/acvp/acvp_client.py \
|
|
|
122
122
|
-e ./test/acvp/.acvp-data/v1.1.0.41/files/ML-DSA-sigVer-FIPS204/expectedResults.json
|
|
123
123
|
```
|
|
124
124
|
|
|
125
|
+
### Wycheproof
|
|
126
|
+
|
|
127
|
+
You can run Wycheproof[^wycheproof] tests using the [`tests`](./scripts/tests) script or the [Wycheproof client](./test/wycheproof/wycheproof_client.py) directly:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
# Using the tests script
|
|
131
|
+
./scripts/tests wycheproof
|
|
132
|
+
|
|
133
|
+
# Using the Wycheproof client directly
|
|
134
|
+
python3 ./test/wycheproof/wycheproof_client.py
|
|
135
|
+
```
|
|
136
|
+
|
|
125
137
|
## Benchmarking
|
|
126
138
|
|
|
127
139
|
You can measure performance, memory usage, and binary size using the [`tests`](./scripts/tests) script:
|
|
@@ -219,3 +231,4 @@ through the [PQCA Discord](https://discord.com/invite/xyVnwzfg5R). See also [CON
|
|
|
219
231
|
[^NIST_FIPS204_SEC6]: National Institute of Standards and Technology: FIPS 204 Section 6 Guidance, [https://csrc.nist.gov/csrc/media/Projects/post-quantum-cryptography/documents/faq/fips204-sec6-03192025.pdf](https://csrc.nist.gov/csrc/media/Projects/post-quantum-cryptography/documents/faq/fips204-sec6-03192025.pdf)
|
|
220
232
|
[^REF]: Bai, Ducas, Kiltz, Lepoint, Lyubashevsky, Schwabe, Seiler, Stehlé: CRYSTALS-Dilithium reference implementation, [https://github.com/pq-crystals/dilithium/tree/master/ref](https://github.com/pq-crystals/dilithium/tree/master/ref)
|
|
221
233
|
[^tiny_sha3]: Markku-Juhani O. Saarinen: tiny_sha3, [https://github.com/mjosaarinen/tiny_sha3](https://github.com/mjosaarinen/tiny_sha3)
|
|
234
|
+
[^wycheproof]: Community Cryptography Specification Project: Project Wycheproof, [https://github.com/C2SP/wycheproof](https://github.com/C2SP/wycheproof)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
[//]: # (SPDX-License-Identifier: CC-BY-4.0)
|
|
2
|
+
|
|
3
|
+
# mldsa-native source tree
|
|
4
|
+
|
|
5
|
+
This is the main source tree of mldsa-native.
|
|
6
|
+
|
|
7
|
+
## Building
|
|
8
|
+
|
|
9
|
+
To build mldsa-native for a fixed parameter set (ML-DSA-44/65/87), build the compilation units in `src/*` separately, and link to an RNG and your application. See [examples/basic](../examples/basic) for a simple example.
|
|
10
|
+
|
|
11
|
+
Alternatively, you can use the auto-generated helper files [mldsa_native.c](mldsa_native.c) and [mldsa_native_asm.S](mldsa_native_asm.S), which bundle all *.c and *.S files together. See [examples/monolithic_build](../examples/monolithic_build) and [examples/monolithic_build_native](../examples/monolithic_build_native) for examples with and without native code.
|
|
12
|
+
|
|
13
|
+
## Configuration
|
|
14
|
+
|
|
15
|
+
The build is configured by [mldsa_native_config.h](mldsa_native_config.h), or by the file pointed to by `MLD_CONFIG_FILE`. Note in particular `MLD_CONFIG_PARAMETER_SET` and `MLD_CONFIG_NAMESPACE_PREFIX`, which set the parameter set and namespace prefix, respectively.
|
|
16
|
+
|
|
17
|
+
## API
|
|
18
|
+
|
|
19
|
+
The public API is defined in [mldsa_native.h](mldsa_native.h).
|
|
20
|
+
|
|
21
|
+
## Supporting multiple parameter sets
|
|
22
|
+
|
|
23
|
+
If you want to support multiple parameter sets, build the library once per parameter set you want to support. Set `MLD_CONFIG_MULTILEVEL_WITH_SHARED` for one of the builds, and `MLD_CONFIG_MULTILEVEL_NO_SHARED` for the others, to avoid duplicating shared functionality. Finally, link with RNG and your application as before. This is demonstrated in the examples [examples/multilevel_build](../examples/multilevel_build), [examples/multilevel_build_native](../examples/multilevel_build_native), [examples/monolithic_build_multilevel](../examples/monolithic_build_multilevel) and [examples/monolithic_build_multilevel_native](../examples/monolithic_build_multilevel_native).
|
|
@@ -65,6 +65,7 @@
|
|
|
65
65
|
#include "src/poly.c"
|
|
66
66
|
#include "src/poly_kl.c"
|
|
67
67
|
#include "src/polyvec.c"
|
|
68
|
+
#include "src/polyvec_lazy.c"
|
|
68
69
|
#include "src/sign.c"
|
|
69
70
|
|
|
70
71
|
#if !defined(MLD_CONFIG_FIPS202_CUSTOM_HEADER)
|
|
@@ -82,7 +83,6 @@
|
|
|
82
83
|
#endif /* MLD_SYS_AARCH64 */
|
|
83
84
|
#if defined(MLD_SYS_X86_64)
|
|
84
85
|
#include "src/native/x86_64/src/consts.c"
|
|
85
|
-
#include "src/native/x86_64/src/poly_caddq_avx2.c"
|
|
86
86
|
#include "src/native/x86_64/src/poly_chknorm_avx2.c"
|
|
87
87
|
#include "src/native/x86_64/src/poly_decompose_32_avx2.c"
|
|
88
88
|
#include "src/native/x86_64/src/poly_decompose_88_avx2.c"
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
#include "src/fips202/native/aarch64/src/keccakf1600_round_constants.c"
|
|
103
103
|
#endif
|
|
104
104
|
#if defined(MLD_SYS_X86_64)
|
|
105
|
-
#include "src/fips202/native/x86_64/src/
|
|
105
|
+
#include "src/fips202/native/x86_64/src/keccakf1600_constants.c"
|
|
106
106
|
#endif
|
|
107
107
|
#if defined(MLD_SYS_ARMV81M_MVE)
|
|
108
108
|
#include "src/fips202/native/armv81m/src/keccak_f1600_x4_mve.c"
|
|
@@ -175,8 +175,10 @@
|
|
|
175
175
|
#undef MLD_ERR_FAIL
|
|
176
176
|
#undef MLD_ERR_OUT_OF_MEMORY
|
|
177
177
|
#undef MLD_ERR_RNG_FAIL
|
|
178
|
+
#undef MLD_ERR_SIGN_ATTEMPTS_EXHAUSTED
|
|
178
179
|
#undef MLD_H
|
|
179
180
|
#undef MLD_MAX3_
|
|
181
|
+
#undef MLD_MAX4_
|
|
180
182
|
#undef MLD_PREHASH_NONE
|
|
181
183
|
#undef MLD_PREHASH_SHA2_224
|
|
182
184
|
#undef MLD_PREHASH_SHA2_256
|
|
@@ -194,18 +196,21 @@
|
|
|
194
196
|
#undef MLD_TOTAL_ALLOC_44_KEYPAIR
|
|
195
197
|
#undef MLD_TOTAL_ALLOC_44_KEYPAIR_NO_PCT
|
|
196
198
|
#undef MLD_TOTAL_ALLOC_44_KEYPAIR_PCT
|
|
199
|
+
#undef MLD_TOTAL_ALLOC_44_PK_FROM_SK
|
|
197
200
|
#undef MLD_TOTAL_ALLOC_44_SIGN
|
|
198
201
|
#undef MLD_TOTAL_ALLOC_44_VERIFY
|
|
199
202
|
#undef MLD_TOTAL_ALLOC_65
|
|
200
203
|
#undef MLD_TOTAL_ALLOC_65_KEYPAIR
|
|
201
204
|
#undef MLD_TOTAL_ALLOC_65_KEYPAIR_NO_PCT
|
|
202
205
|
#undef MLD_TOTAL_ALLOC_65_KEYPAIR_PCT
|
|
206
|
+
#undef MLD_TOTAL_ALLOC_65_PK_FROM_SK
|
|
203
207
|
#undef MLD_TOTAL_ALLOC_65_SIGN
|
|
204
208
|
#undef MLD_TOTAL_ALLOC_65_VERIFY
|
|
205
209
|
#undef MLD_TOTAL_ALLOC_87
|
|
206
210
|
#undef MLD_TOTAL_ALLOC_87_KEYPAIR
|
|
207
211
|
#undef MLD_TOTAL_ALLOC_87_KEYPAIR_NO_PCT
|
|
208
212
|
#undef MLD_TOTAL_ALLOC_87_KEYPAIR_PCT
|
|
213
|
+
#undef MLD_TOTAL_ALLOC_87_PK_FROM_SK
|
|
209
214
|
#undef MLD_TOTAL_ALLOC_87_SIGN
|
|
210
215
|
#undef MLD_TOTAL_ALLOC_87_VERIFY
|
|
211
216
|
#undef crypto_sign
|
|
@@ -216,6 +221,7 @@
|
|
|
216
221
|
/* mldsa/src/common.h */
|
|
217
222
|
#undef MLD_ADD_PARAM_SET
|
|
218
223
|
#undef MLD_ALLOC
|
|
224
|
+
#undef MLD_ANY_ERROR
|
|
219
225
|
#undef MLD_APPLY
|
|
220
226
|
#undef MLD_ASM_FN_SIZE
|
|
221
227
|
#undef MLD_ASM_FN_SYMBOL
|
|
@@ -238,27 +244,30 @@
|
|
|
238
244
|
#undef MLD_ERR_FAIL
|
|
239
245
|
#undef MLD_ERR_OUT_OF_MEMORY
|
|
240
246
|
#undef MLD_ERR_RNG_FAIL
|
|
247
|
+
#undef MLD_ERR_SIGN_ATTEMPTS_EXHAUSTED
|
|
241
248
|
#undef MLD_EXTERNAL_API
|
|
242
249
|
#undef MLD_FIPS202X4_HEADER_FILE
|
|
243
250
|
#undef MLD_FIPS202_HEADER_FILE
|
|
244
251
|
#undef MLD_FREE
|
|
245
252
|
#undef MLD_INTERNAL_API
|
|
253
|
+
#undef MLD_INTERNAL_DATA_DECLARATION
|
|
254
|
+
#undef MLD_INTERNAL_DATA_DEFINITION
|
|
246
255
|
#undef MLD_MULTILEVEL_BUILD
|
|
247
256
|
#undef MLD_NAMESPACE
|
|
248
257
|
#undef MLD_NAMESPACE_KL
|
|
249
258
|
#undef MLD_NAMESPACE_PREFIX
|
|
250
259
|
#undef MLD_NAMESPACE_PREFIX_KL
|
|
251
|
-
#undef MLD_UNION_OR_STRUCT
|
|
252
260
|
#undef mld_memcpy
|
|
253
261
|
#undef mld_memset
|
|
254
262
|
/* mldsa/src/packing.h */
|
|
255
263
|
#undef MLD_PACKING_H
|
|
256
|
-
#undef
|
|
257
|
-
#undef
|
|
264
|
+
#undef mld_pack_sig_c
|
|
265
|
+
#undef mld_pack_sig_h
|
|
258
266
|
#undef mld_pack_sig_z
|
|
259
|
-
#undef
|
|
260
|
-
#undef
|
|
261
|
-
#undef
|
|
267
|
+
#undef mld_pack_sk_rho_key_tr_s2
|
|
268
|
+
#undef mld_pack_sk_s1
|
|
269
|
+
#undef mld_sig_unpack_hints
|
|
270
|
+
#undef mld_unpack_pk_t1
|
|
262
271
|
#undef mld_unpack_sk
|
|
263
272
|
/* mldsa/src/params.h */
|
|
264
273
|
#undef MLDSA_BETA
|
|
@@ -293,7 +302,6 @@
|
|
|
293
302
|
#undef MLD_POLY_KL_H
|
|
294
303
|
#undef mld_poly_challenge
|
|
295
304
|
#undef mld_poly_decompose
|
|
296
|
-
#undef mld_poly_make_hint
|
|
297
305
|
#undef mld_poly_uniform_eta
|
|
298
306
|
#undef mld_poly_uniform_eta_4x
|
|
299
307
|
#undef mld_poly_uniform_gamma1
|
|
@@ -306,29 +314,16 @@
|
|
|
306
314
|
#undef mld_polyz_unpack
|
|
307
315
|
/* mldsa/src/polyvec.h */
|
|
308
316
|
#undef MLD_POLYVEC_H
|
|
309
|
-
#undef mld_polymat
|
|
310
|
-
#undef mld_polymat_get_row
|
|
311
|
-
#undef mld_polyvec_matrix_expand
|
|
312
|
-
#undef mld_polyvec_matrix_pointwise_montgomery
|
|
313
317
|
#undef mld_polyveck
|
|
314
|
-
#undef mld_polyveck_add
|
|
315
318
|
#undef mld_polyveck_caddq
|
|
316
319
|
#undef mld_polyveck_chknorm
|
|
317
320
|
#undef mld_polyveck_decompose
|
|
318
321
|
#undef mld_polyveck_invntt_tomont
|
|
319
|
-
#undef mld_polyveck_make_hint
|
|
320
322
|
#undef mld_polyveck_ntt
|
|
321
323
|
#undef mld_polyveck_pack_eta
|
|
322
|
-
#undef mld_polyveck_pack_t0
|
|
323
324
|
#undef mld_polyveck_pack_w1
|
|
324
|
-
#undef mld_polyveck_pointwise_poly_montgomery
|
|
325
|
-
#undef mld_polyveck_power2round
|
|
326
325
|
#undef mld_polyveck_reduce
|
|
327
|
-
#undef mld_polyveck_shiftl
|
|
328
|
-
#undef mld_polyveck_sub
|
|
329
326
|
#undef mld_polyveck_unpack_eta
|
|
330
|
-
#undef mld_polyveck_unpack_t0
|
|
331
|
-
#undef mld_polyveck_use_hint
|
|
332
327
|
#undef mld_polyvecl
|
|
333
328
|
#undef mld_polyvecl_chknorm
|
|
334
329
|
#undef mld_polyvecl_ntt
|
|
@@ -337,6 +332,58 @@
|
|
|
337
332
|
#undef mld_polyvecl_uniform_gamma1
|
|
338
333
|
#undef mld_polyvecl_unpack_eta
|
|
339
334
|
#undef mld_polyvecl_unpack_z
|
|
335
|
+
/* mldsa/src/polyvec_lazy.h */
|
|
336
|
+
#undef MLD_POLYVEC_LAZY_H
|
|
337
|
+
#undef mld_poly_permute_bitrev_to_custom_optional
|
|
338
|
+
#undef mld_polymat
|
|
339
|
+
#undef mld_polymat_eager
|
|
340
|
+
#undef mld_polymat_lazy
|
|
341
|
+
#undef mld_polyvec_matrix_expand
|
|
342
|
+
#undef mld_polyvec_matrix_expand_eager
|
|
343
|
+
#undef mld_polyvec_matrix_expand_lazy
|
|
344
|
+
#undef mld_polyvec_matrix_pointwise_montgomery
|
|
345
|
+
#undef mld_polyvec_matrix_pointwise_montgomery_row
|
|
346
|
+
#undef mld_polyvec_matrix_pointwise_montgomery_row_eager
|
|
347
|
+
#undef mld_polyvec_matrix_pointwise_montgomery_row_lazy
|
|
348
|
+
#undef mld_polyvec_matrix_pointwise_montgomery_yvec
|
|
349
|
+
#undef mld_polyvec_matrix_pointwise_montgomery_yvec_eager
|
|
350
|
+
#undef mld_polyvec_matrix_pointwise_montgomery_yvec_lazy
|
|
351
|
+
#undef mld_sk_s1hat
|
|
352
|
+
#undef mld_sk_s1hat_eager
|
|
353
|
+
#undef mld_sk_s1hat_get_poly
|
|
354
|
+
#undef mld_sk_s1hat_get_poly_eager
|
|
355
|
+
#undef mld_sk_s1hat_get_poly_lazy
|
|
356
|
+
#undef mld_sk_s1hat_lazy
|
|
357
|
+
#undef mld_sk_s2hat
|
|
358
|
+
#undef mld_sk_s2hat_eager
|
|
359
|
+
#undef mld_sk_s2hat_get_poly
|
|
360
|
+
#undef mld_sk_s2hat_get_poly_eager
|
|
361
|
+
#undef mld_sk_s2hat_get_poly_lazy
|
|
362
|
+
#undef mld_sk_s2hat_lazy
|
|
363
|
+
#undef mld_sk_t0hat
|
|
364
|
+
#undef mld_sk_t0hat_eager
|
|
365
|
+
#undef mld_sk_t0hat_get_poly
|
|
366
|
+
#undef mld_sk_t0hat_get_poly_eager
|
|
367
|
+
#undef mld_sk_t0hat_get_poly_lazy
|
|
368
|
+
#undef mld_sk_t0hat_lazy
|
|
369
|
+
#undef mld_unpack_sk_s1hat
|
|
370
|
+
#undef mld_unpack_sk_s1hat_eager
|
|
371
|
+
#undef mld_unpack_sk_s1hat_lazy
|
|
372
|
+
#undef mld_unpack_sk_s2hat
|
|
373
|
+
#undef mld_unpack_sk_s2hat_eager
|
|
374
|
+
#undef mld_unpack_sk_s2hat_lazy
|
|
375
|
+
#undef mld_unpack_sk_t0hat
|
|
376
|
+
#undef mld_unpack_sk_t0hat_eager
|
|
377
|
+
#undef mld_unpack_sk_t0hat_lazy
|
|
378
|
+
#undef mld_yvec
|
|
379
|
+
#undef mld_yvec_eager
|
|
380
|
+
#undef mld_yvec_get_poly
|
|
381
|
+
#undef mld_yvec_get_poly_eager
|
|
382
|
+
#undef mld_yvec_get_poly_lazy
|
|
383
|
+
#undef mld_yvec_init
|
|
384
|
+
#undef mld_yvec_init_eager
|
|
385
|
+
#undef mld_yvec_init_lazy
|
|
386
|
+
#undef mld_yvec_lazy
|
|
340
387
|
/* mldsa/src/rounding.h */
|
|
341
388
|
#undef MLD_2_POW_D
|
|
342
389
|
#undef MLD_ROUNDING_H
|
|
@@ -539,11 +586,11 @@
|
|
|
539
586
|
#undef MLD_FIPS202_NATIVE_AARCH64_AUTO_H
|
|
540
587
|
/* mldsa/src/fips202/native/aarch64/src/fips202_native_aarch64.h */
|
|
541
588
|
#undef MLD_FIPS202_NATIVE_AARCH64_SRC_FIPS202_NATIVE_AARCH64_H
|
|
542
|
-
#undef
|
|
543
|
-
#undef
|
|
544
|
-
#undef
|
|
545
|
-
#undef
|
|
546
|
-
#undef
|
|
589
|
+
#undef mld_keccak_f1600_x1_scalar_aarch64_asm
|
|
590
|
+
#undef mld_keccak_f1600_x1_v84a_aarch64_asm
|
|
591
|
+
#undef mld_keccak_f1600_x2_v84a_aarch64_asm
|
|
592
|
+
#undef mld_keccak_f1600_x4_v8a_scalar_hybrid_aarch64_asm
|
|
593
|
+
#undef mld_keccak_f1600_x4_v8a_v84a_scalar_hybrid_aarch64_asm
|
|
547
594
|
#undef mld_keccakf1600_round_constants
|
|
548
595
|
/* mldsa/src/fips202/native/aarch64/x1_scalar.h */
|
|
549
596
|
#undef MLD_FIPS202_AARCH64_NEED_X1_SCALAR
|
|
@@ -570,13 +617,16 @@
|
|
|
570
617
|
/*
|
|
571
618
|
* Undefine macros from native code (FIPS202, x86_64)
|
|
572
619
|
*/
|
|
573
|
-
/* mldsa/src/fips202/native/x86_64/
|
|
574
|
-
#undef
|
|
575
|
-
#undef
|
|
576
|
-
/* mldsa/src/fips202/native/x86_64/xkcp.h */
|
|
577
|
-
#undef MLD_FIPS202_NATIVE_X86_64_XKCP_H
|
|
578
|
-
#undef MLD_FIPS202_X86_64_XKCP
|
|
620
|
+
/* mldsa/src/fips202/native/x86_64/keccak_f1600_x4_avx2.h */
|
|
621
|
+
#undef MLD_FIPS202_NATIVE_X86_64_KECCAK_F1600_X4_AVX2_H
|
|
622
|
+
#undef MLD_FIPS202_X86_64_NEED_X4_AVX2
|
|
579
623
|
#undef MLD_USE_FIPS202_X4_NATIVE
|
|
624
|
+
/* mldsa/src/fips202/native/x86_64/src/fips202_native_x86_64.h */
|
|
625
|
+
#undef MLD_FIPS202_NATIVE_X86_64_SRC_FIPS202_NATIVE_X86_64_H
|
|
626
|
+
#undef mld_keccak_f1600_x4_avx2_asm
|
|
627
|
+
#undef mld_keccak_rho56
|
|
628
|
+
#undef mld_keccak_rho8
|
|
629
|
+
#undef mld_keccakf1600_round_constants
|
|
580
630
|
#endif /* MLD_SYS_X86_64 */
|
|
581
631
|
#if defined(MLD_SYS_ARMV81M_MVE)
|
|
582
632
|
/*
|
|
@@ -586,11 +636,17 @@
|
|
|
586
636
|
#undef MLD_FIPS202_ARMV81M_NEED_X4
|
|
587
637
|
#undef MLD_FIPS202_NATIVE_ARMV81M
|
|
588
638
|
#undef MLD_FIPS202_NATIVE_ARMV81M_MVE_H
|
|
639
|
+
#undef MLD_USE_FIPS202_X4_EXTRACT_BYTES_NATIVE
|
|
589
640
|
#undef MLD_USE_FIPS202_X4_NATIVE
|
|
641
|
+
#undef MLD_USE_FIPS202_X4_XOR_BYTES_NATIVE
|
|
590
642
|
#undef mld_keccak_f1600_x4_native_impl
|
|
643
|
+
#undef mld_keccak_f1600_x4_state_extract_bytes
|
|
644
|
+
#undef mld_keccak_f1600_x4_state_xor_bytes
|
|
591
645
|
/* mldsa/src/fips202/native/armv81m/src/fips202_native_armv81m.h */
|
|
592
646
|
#undef MLD_FIPS202_NATIVE_ARMV81M_SRC_FIPS202_NATIVE_ARMV81M_H
|
|
593
647
|
#undef mld_keccak_f1600_x4_mve_asm
|
|
648
|
+
#undef mld_keccak_f1600_x4_state_extract_bytes_asm
|
|
649
|
+
#undef mld_keccak_f1600_x4_state_xor_bytes_asm
|
|
594
650
|
#undef mld_keccakf1600_round_constants
|
|
595
651
|
#endif /* MLD_SYS_ARMV81M_MVE */
|
|
596
652
|
#endif /* MLD_CONFIG_USE_NATIVE_BACKEND_FIPS202 */
|
|
@@ -636,25 +692,25 @@
|
|
|
636
692
|
#undef mld_aarch64_intt_zetas_layer78
|
|
637
693
|
#undef mld_aarch64_ntt_zetas_layer123456
|
|
638
694
|
#undef mld_aarch64_ntt_zetas_layer78
|
|
639
|
-
#undef
|
|
640
|
-
#undef
|
|
641
|
-
#undef
|
|
642
|
-
#undef
|
|
643
|
-
#undef
|
|
644
|
-
#undef
|
|
645
|
-
#undef
|
|
646
|
-
#undef
|
|
647
|
-
#undef
|
|
648
|
-
#undef
|
|
649
|
-
#undef
|
|
650
|
-
#undef
|
|
651
|
-
#undef
|
|
695
|
+
#undef mld_intt_aarch64_asm
|
|
696
|
+
#undef mld_ntt_aarch64_asm
|
|
697
|
+
#undef mld_poly_caddq_aarch64_asm
|
|
698
|
+
#undef mld_poly_chknorm_aarch64_asm
|
|
699
|
+
#undef mld_poly_decompose_32_aarch64_asm
|
|
700
|
+
#undef mld_poly_decompose_88_aarch64_asm
|
|
701
|
+
#undef mld_poly_pointwise_montgomery_aarch64_asm
|
|
702
|
+
#undef mld_poly_use_hint_32_aarch64_asm
|
|
703
|
+
#undef mld_poly_use_hint_88_aarch64_asm
|
|
704
|
+
#undef mld_polyvecl_pointwise_acc_montgomery_l4_aarch64_asm
|
|
705
|
+
#undef mld_polyvecl_pointwise_acc_montgomery_l5_aarch64_asm
|
|
706
|
+
#undef mld_polyvecl_pointwise_acc_montgomery_l7_aarch64_asm
|
|
707
|
+
#undef mld_polyz_unpack_17_aarch64_asm
|
|
652
708
|
#undef mld_polyz_unpack_17_indices
|
|
653
|
-
#undef
|
|
709
|
+
#undef mld_polyz_unpack_19_aarch64_asm
|
|
654
710
|
#undef mld_polyz_unpack_19_indices
|
|
655
|
-
#undef
|
|
656
|
-
#undef
|
|
657
|
-
#undef
|
|
711
|
+
#undef mld_rej_uniform_aarch64_asm
|
|
712
|
+
#undef mld_rej_uniform_eta2_aarch64_asm
|
|
713
|
+
#undef mld_rej_uniform_eta4_aarch64_asm
|
|
658
714
|
#undef mld_rej_uniform_eta_table
|
|
659
715
|
#undef mld_rej_uniform_table
|
|
660
716
|
#endif /* MLD_SYS_AARCH64 */
|
|
@@ -688,14 +744,14 @@
|
|
|
688
744
|
#undef MLD_AVX2_REJ_UNIFORM_ETA2_BUFLEN
|
|
689
745
|
#undef MLD_AVX2_REJ_UNIFORM_ETA4_BUFLEN
|
|
690
746
|
#undef MLD_NATIVE_X86_64_SRC_ARITH_NATIVE_X86_64_H
|
|
691
|
-
#undef
|
|
692
|
-
#undef
|
|
693
|
-
#undef
|
|
694
|
-
#undef
|
|
695
|
-
#undef
|
|
696
|
-
#undef
|
|
697
|
-
#undef
|
|
698
|
-
#undef
|
|
747
|
+
#undef mld_invntt_avx2_asm
|
|
748
|
+
#undef mld_ntt_avx2_asm
|
|
749
|
+
#undef mld_nttunpack_avx2_asm
|
|
750
|
+
#undef mld_pointwise_acc_l4_avx2_asm
|
|
751
|
+
#undef mld_pointwise_acc_l5_avx2_asm
|
|
752
|
+
#undef mld_pointwise_acc_l7_avx2_asm
|
|
753
|
+
#undef mld_pointwise_avx2_asm
|
|
754
|
+
#undef mld_poly_caddq_avx2_asm
|
|
699
755
|
#undef mld_poly_chknorm_avx2
|
|
700
756
|
#undef mld_poly_decompose_32_avx2
|
|
701
757
|
#undef mld_poly_decompose_88_avx2
|