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.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/SECURITY.md +7 -0
  4. data/ext/pqcrypto/pqcrypto_version.h +1 -1
  5. data/ext/pqcrypto/vendor/.vendored +4 -4
  6. data/ext/pqcrypto/vendor/mldsa-native/README.md +23 -10
  7. data/ext/pqcrypto/vendor/mldsa-native/mldsa/README.md +23 -0
  8. data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native.c +114 -58
  9. data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native.h +498 -461
  10. data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native_asm.S +145 -85
  11. data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native_config.h +456 -422
  12. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/cbmc.h +47 -25
  13. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/common.h +26 -14
  14. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/ct.h +56 -81
  15. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/debug.h +17 -24
  16. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202.c +33 -40
  17. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202.h +67 -87
  18. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202x4.c +19 -14
  19. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202x4.h +13 -5
  20. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/keccakf1600.c +84 -10
  21. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/keccakf1600.h +10 -5
  22. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/auto.h +6 -0
  23. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/fips202_native_aarch64.h +22 -15
  24. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x1_scalar_aarch64_asm.S +376 -0
  25. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x1_v84a_aarch64_asm.S +204 -0
  26. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x2_v84a_aarch64_asm.S +259 -0
  27. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_aarch64_asm.S +1077 -0
  28. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_aarch64_asm.S +987 -0
  29. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccakf1600_round_constants.c +16 -10
  30. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x1_scalar.h +2 -1
  31. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x1_v84a.h +1 -1
  32. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x2_v84a.h +4 -2
  33. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x4_v8a_scalar.h +2 -2
  34. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x4_v8a_v84a_scalar.h +1 -1
  35. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/api.h +60 -0
  36. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/mve.h +48 -0
  37. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/fips202_native_armv81m.h +18 -1
  38. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S +658 -582
  39. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.c +5 -100
  40. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/keccakf1600_round_constants.c +26 -25
  41. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/state_extract_bytes_x4_mve.S +334 -0
  42. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/state_xor_bytes_x4_mve.S +355 -0
  43. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/auto.h +8 -3
  44. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/{xkcp.h → keccak_f1600_x4_avx2.h} +11 -8
  45. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/src/fips202_native_x86_64.h +44 -0
  46. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/src/keccak_f1600_x4_avx2_asm.S +454 -0
  47. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/src/keccakf1600_constants.c +52 -0
  48. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/meta.h +37 -28
  49. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/aarch64_zetas.c +213 -196
  50. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/arith_native_aarch64.h +248 -64
  51. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/intt_aarch64_asm.S +753 -0
  52. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l4_aarch64_asm.S +129 -0
  53. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l5_aarch64_asm.S +145 -0
  54. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l7_aarch64_asm.S +177 -0
  55. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/ntt_aarch64_asm.S +653 -0
  56. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/pointwise_montgomery_aarch64_asm.S +84 -0
  57. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_caddq_aarch64_asm.S +53 -0
  58. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_chknorm_aarch64_asm.S +55 -0
  59. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_decompose_32_aarch64_asm.S +86 -0
  60. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_decompose_88_aarch64_asm.S +86 -0
  61. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_use_hint_32_aarch64_asm.S +103 -0
  62. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_use_hint_88_aarch64_asm.S +111 -0
  63. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_17_aarch64_asm.S +75 -0
  64. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_19_aarch64_asm.S +72 -0
  65. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_table.c +23 -11
  66. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_aarch64_asm.S +189 -0
  67. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta2_aarch64_asm.S +137 -0
  68. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta4_aarch64_asm.S +130 -0
  69. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta_table.c +520 -516
  70. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_table.c +34 -33
  71. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/api.h +202 -242
  72. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/meta.h +25 -17
  73. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/arith_native_x86_64.h +112 -28
  74. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/consts.c +1 -1
  75. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/consts.h +1 -1
  76. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/intt_avx2_asm.S +2311 -0
  77. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/ntt_avx2_asm.S +2383 -0
  78. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/nttunpack_avx2_asm.S +238 -0
  79. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l4_avx2_asm.S +139 -0
  80. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l5_avx2_asm.S +155 -0
  81. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l7_avx2_asm.S +187 -0
  82. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_avx2_asm.S +130 -0
  83. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_caddq_avx2_asm.S +190 -0
  84. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_decompose_32_avx2.c +6 -4
  85. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_decompose_88_avx2.c +6 -4
  86. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_use_hint_32_avx2.c +9 -8
  87. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_use_hint_88_avx2.c +10 -9
  88. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/polyz_unpack_17_avx2.c +8 -5
  89. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/polyz_unpack_19_avx2.c +8 -5
  90. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/rej_uniform_eta2_avx2.c +6 -4
  91. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/rej_uniform_eta4_avx2.c +6 -4
  92. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/rej_uniform_table.c +130 -129
  93. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/packing.c +109 -180
  94. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/packing.h +169 -150
  95. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly.c +56 -40
  96. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly.h +149 -164
  97. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly_kl.c +52 -57
  98. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly_kl.h +132 -167
  99. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/polyvec.c +57 -424
  100. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/polyvec.h +167 -474
  101. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/polyvec_lazy.c +308 -0
  102. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/polyvec_lazy.h +653 -0
  103. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/reduce.h +22 -29
  104. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/rounding.h +37 -43
  105. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/sign.c +511 -367
  106. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/sign.h +456 -417
  107. data/lib/pq_crypto/version.rb +1 -1
  108. data/script/vendor_libs.rb +3 -3
  109. metadata +41 -35
  110. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x1_scalar_asm.S +0 -376
  111. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x1_v84a_asm.S +0 -204
  112. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x2_v84a_asm.S +0 -259
  113. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_asm.S +0 -1077
  114. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_asm.S +0 -987
  115. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/src/KeccakP_1600_times4_SIMD256.c +0 -488
  116. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/src/KeccakP_1600_times4_SIMD256.h +0 -16
  117. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/intt.S +0 -753
  118. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l4.S +0 -129
  119. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l5.S +0 -145
  120. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l7.S +0 -177
  121. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/ntt.S +0 -653
  122. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/pointwise_montgomery.S +0 -79
  123. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_caddq_asm.S +0 -53
  124. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_chknorm_asm.S +0 -55
  125. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_decompose_32_asm.S +0 -85
  126. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_decompose_88_asm.S +0 -85
  127. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_use_hint_32_asm.S +0 -102
  128. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_use_hint_88_asm.S +0 -110
  129. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_17_asm.S +0 -72
  130. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_19_asm.S +0 -69
  131. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_asm.S +0 -189
  132. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta2_asm.S +0 -135
  133. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta4_asm.S +0 -128
  134. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/intt.S +0 -2311
  135. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/ntt.S +0 -2383
  136. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/nttunpack.S +0 -239
  137. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise.S +0 -131
  138. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l4.S +0 -139
  139. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l5.S +0 -155
  140. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l7.S +0 -187
  141. 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: 78b11d409c22bfd37c2afcf11cfdeb8bc7e825a1e4ebf8b0a94c655afbd59f78
4
- data.tar.gz: 0206a99c5b364c812176c3d31629e5eb1490dcf694a2c8902b9537fd1ab16ebc
3
+ metadata.gz: 94d0fc254c0169b1e49ce177e0bf9830c9a1140dc425be9e917e8b2acfb870ed
4
+ data.tar.gz: 148381930753a4d6eb850522619ddf43b602cf9ae9966190c91f276c56f0d426
5
5
  SHA512:
6
- metadata.gz: d79069163427ae03428e5ff8d01af39315cef796d498f59ca8e021c92f6a987b6a1a6d04c8e6826529a85df1af428f80086dc1f56cda74b0866e16aca27b8901
7
- data.tar.gz: 552eb1abce00c25fc1313690c5df3a4a341b158caa3aa3ec2e37b604499c43c514fd2e0b82b245961acc4e73895dcbc1b7637112958660a91e0a32b8e3e91134
6
+ metadata.gz: bb8d4c4683429e99d0147ece542dabdb2276ec3933482d03e3dae81a8bd55b3ed2e617c89221dcdec4dbc34c134027dc406ab7d5e814af2ceef91aa1fb1a0240
7
+ data.tar.gz: 1e911b991634858610ceea12d5cb3a7efbb3a2f480f7ccb531e9afd1e4d01befe673ebec0f1935500dafed37b595d9c9a11a5b9a12adf1ff0720a0a76bf95c96
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.6.2] - 2026-05-24
4
+
5
+ ### Changed
6
+ - update native mldsa `v1.0.0-beta` → `v1.0.0-beta2`
7
+
3
8
  ## [0.6.1] - 2026-05-14
4
9
 
5
10
  ### Security
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
@@ -2,6 +2,6 @@
2
2
  #ifndef PQCRYPTO_VERSION_H
3
3
  #define PQCRYPTO_VERSION_H
4
4
 
5
- #define PQCRYPTO_VERSION "0.6.1"
5
+ #define PQCRYPTO_VERSION "0.6.2"
6
6
 
7
7
  #endif
@@ -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-beta
10
- mldsa_native_commit=db65535319d9750d75d34c6d170677415f9d2c46
11
- mldsa_native_tree_sha256=3b2cb648dade4540191f08d606b422042bf781fb37b434934ab02b58a0121f5c
12
- manifest_sha256=aeb28860537e30f4da0d28dc2961ba6bb06e700195a56f1648e5caddf1b6e1be
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
- **Note:** The `MLD_CONFIG_REDUCE_RAM` configuration option is not currently covered by CBMC proofs.
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
- ## ACVP Testing
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
- mldsa-native is tested against all official ACVP ML-DSA test vectors[^ACVP].
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/KeccakP_1600_times4_SIMD256.c"
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 mld_pack_pk
257
- #undef mld_pack_sig_c_h
264
+ #undef mld_pack_sig_c
265
+ #undef mld_pack_sig_h
258
266
  #undef mld_pack_sig_z
259
- #undef mld_pack_sk
260
- #undef mld_unpack_pk
261
- #undef mld_unpack_sig
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 mld_keccak_f1600_x1_scalar_asm
543
- #undef mld_keccak_f1600_x1_v84a_asm
544
- #undef mld_keccak_f1600_x2_v84a_asm
545
- #undef mld_keccak_f1600_x4_v8a_scalar_hybrid_asm
546
- #undef mld_keccak_f1600_x4_v8a_v84a_scalar_hybrid_asm
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/src/KeccakP_1600_times4_SIMD256.h */
574
- #undef MLD_FIPS202_NATIVE_X86_64_SRC_KECCAKP_1600_TIMES4_SIMD256_H
575
- #undef mld_keccakf1600x4_permute24
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 mld_intt_asm
640
- #undef mld_ntt_asm
641
- #undef mld_poly_caddq_asm
642
- #undef mld_poly_chknorm_asm
643
- #undef mld_poly_decompose_32_asm
644
- #undef mld_poly_decompose_88_asm
645
- #undef mld_poly_pointwise_montgomery_asm
646
- #undef mld_poly_use_hint_32_asm
647
- #undef mld_poly_use_hint_88_asm
648
- #undef mld_polyvecl_pointwise_acc_montgomery_l4_asm
649
- #undef mld_polyvecl_pointwise_acc_montgomery_l5_asm
650
- #undef mld_polyvecl_pointwise_acc_montgomery_l7_asm
651
- #undef mld_polyz_unpack_17_asm
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 mld_polyz_unpack_19_asm
709
+ #undef mld_polyz_unpack_19_aarch64_asm
654
710
  #undef mld_polyz_unpack_19_indices
655
- #undef mld_rej_uniform_asm
656
- #undef mld_rej_uniform_eta2_asm
657
- #undef mld_rej_uniform_eta4_asm
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 mld_invntt_avx2
692
- #undef mld_ntt_avx2
693
- #undef mld_nttunpack_avx2
694
- #undef mld_pointwise_acc_l4_avx2
695
- #undef mld_pointwise_acc_l5_avx2
696
- #undef mld_pointwise_acc_l7_avx2
697
- #undef mld_pointwise_avx2
698
- #undef mld_poly_caddq_avx2
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