pq_crypto 0.4.2 → 0.5.1

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 (410) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +27 -2
  3. data/CHANGELOG.md +59 -0
  4. data/GET_STARTED.md +21 -16
  5. data/README.md +26 -0
  6. data/SECURITY.md +22 -16
  7. data/ext/pqcrypto/extconf.rb +183 -99
  8. data/ext/pqcrypto/mldsa_api.h +1 -118
  9. data/ext/pqcrypto/mlkem_api.h +1 -42
  10. data/ext/pqcrypto/pq_externalmu.c +88 -216
  11. data/ext/pqcrypto/pqcrypto_native_api.h +132 -0
  12. data/ext/pqcrypto/pqcrypto_ruby_secure.c +234 -12
  13. data/ext/pqcrypto/pqcrypto_secure.c +429 -334
  14. data/ext/pqcrypto/pqcrypto_secure.h +13 -45
  15. data/ext/pqcrypto/pqcrypto_version.h +1 -1
  16. data/ext/pqcrypto/randombytes.h +9 -0
  17. data/ext/pqcrypto/vendor/.vendored +12 -5
  18. data/ext/pqcrypto/vendor/mldsa-native/BUILDING.md +105 -0
  19. data/ext/pqcrypto/vendor/mldsa-native/LICENSE +286 -0
  20. data/ext/pqcrypto/vendor/mldsa-native/META.yml +24 -0
  21. data/ext/pqcrypto/vendor/mldsa-native/README.md +221 -0
  22. data/ext/pqcrypto/vendor/mldsa-native/SECURITY.md +8 -0
  23. data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native.c +721 -0
  24. data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native.h +975 -0
  25. data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native_asm.S +724 -0
  26. data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native_config.h +723 -0
  27. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/cbmc.h +166 -0
  28. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/common.h +321 -0
  29. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/ct.c +21 -0
  30. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/ct.h +385 -0
  31. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/debug.c +73 -0
  32. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/debug.h +130 -0
  33. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202.c +277 -0
  34. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202.h +244 -0
  35. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202x4.c +182 -0
  36. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202x4.h +117 -0
  37. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/keccakf1600.c +438 -0
  38. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/keccakf1600.h +105 -0
  39. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/auto.h +71 -0
  40. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/fips202_native_aarch64.h +62 -0
  41. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x1_scalar_asm.S +376 -0
  42. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x1_v84a_asm.S +204 -0
  43. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x2_v84a_asm.S +259 -0
  44. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_asm.S +1077 -0
  45. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_asm.S +987 -0
  46. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccakf1600_round_constants.c +41 -0
  47. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x1_scalar.h +26 -0
  48. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x1_v84a.h +35 -0
  49. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x2_v84a.h +37 -0
  50. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x4_v8a_scalar.h +27 -0
  51. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x4_v8a_v84a_scalar.h +36 -0
  52. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/api.h +69 -0
  53. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/README.md +10 -0
  54. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/mve.h +32 -0
  55. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/fips202_native_armv81m.h +20 -0
  56. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S +638 -0
  57. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.c +136 -0
  58. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/keccakf1600_round_constants.c +52 -0
  59. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/auto.h +29 -0
  60. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/src/KeccakP_1600_times4_SIMD256.c +488 -0
  61. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/src/KeccakP_1600_times4_SIMD256.h +16 -0
  62. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/xkcp.h +31 -0
  63. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/meta.h +247 -0
  64. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/aarch64_zetas.c +231 -0
  65. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/arith_native_aarch64.h +150 -0
  66. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/intt.S +753 -0
  67. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l4.S +129 -0
  68. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l5.S +145 -0
  69. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l7.S +177 -0
  70. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/ntt.S +653 -0
  71. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/pointwise_montgomery.S +79 -0
  72. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_caddq_asm.S +53 -0
  73. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_chknorm_asm.S +55 -0
  74. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_decompose_32_asm.S +85 -0
  75. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_decompose_88_asm.S +85 -0
  76. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_use_hint_32_asm.S +102 -0
  77. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_use_hint_88_asm.S +110 -0
  78. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_17_asm.S +72 -0
  79. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_19_asm.S +69 -0
  80. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_table.c +40 -0
  81. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_asm.S +189 -0
  82. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta2_asm.S +135 -0
  83. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta4_asm.S +128 -0
  84. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta_table.c +543 -0
  85. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_table.c +62 -0
  86. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/api.h +649 -0
  87. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/meta.h +23 -0
  88. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/meta.h +315 -0
  89. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/arith_native_x86_64.h +124 -0
  90. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/consts.c +157 -0
  91. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/consts.h +27 -0
  92. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/intt.S +2311 -0
  93. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/ntt.S +2383 -0
  94. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/nttunpack.S +239 -0
  95. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise.S +131 -0
  96. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l4.S +139 -0
  97. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l5.S +155 -0
  98. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l7.S +187 -0
  99. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_caddq_avx2.c +61 -0
  100. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_chknorm_avx2.c +52 -0
  101. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_decompose_32_avx2.c +155 -0
  102. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_decompose_88_avx2.c +155 -0
  103. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_use_hint_32_avx2.c +102 -0
  104. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_use_hint_88_avx2.c +104 -0
  105. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/polyz_unpack_17_avx2.c +91 -0
  106. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/polyz_unpack_19_avx2.c +93 -0
  107. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/rej_uniform_avx2.c +126 -0
  108. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/rej_uniform_eta2_avx2.c +155 -0
  109. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/rej_uniform_eta4_avx2.c +139 -0
  110. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/rej_uniform_table.c +160 -0
  111. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/packing.c +293 -0
  112. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/packing.h +224 -0
  113. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/params.h +77 -0
  114. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly.c +991 -0
  115. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly.h +393 -0
  116. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly_kl.c +946 -0
  117. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly_kl.h +360 -0
  118. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/polyvec.c +877 -0
  119. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/polyvec.h +725 -0
  120. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/randombytes.h +26 -0
  121. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/reduce.h +139 -0
  122. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/rounding.h +249 -0
  123. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/sign.c +1511 -0
  124. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/sign.h +806 -0
  125. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/symmetric.h +68 -0
  126. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/sys.h +268 -0
  127. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/zetas.inc +55 -0
  128. data/ext/pqcrypto/vendor/mlkem-native/BUILDING.md +104 -0
  129. data/ext/pqcrypto/vendor/mlkem-native/LICENSE +294 -0
  130. data/ext/pqcrypto/vendor/mlkem-native/META.yml +30 -0
  131. data/ext/pqcrypto/vendor/mlkem-native/README.md +223 -0
  132. data/ext/pqcrypto/vendor/mlkem-native/RELEASE.md +86 -0
  133. data/ext/pqcrypto/vendor/mlkem-native/SECURITY.md +8 -0
  134. data/ext/pqcrypto/vendor/mlkem-native/mlkem/README.md +23 -0
  135. data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native.c +660 -0
  136. data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native.h +538 -0
  137. data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native_asm.S +681 -0
  138. data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native_config.h +709 -0
  139. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/cbmc.h +174 -0
  140. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/common.h +274 -0
  141. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/compress.c +717 -0
  142. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/compress.h +688 -0
  143. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/debug.c +64 -0
  144. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/debug.h +128 -0
  145. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/fips202.c +251 -0
  146. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/fips202.h +158 -0
  147. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/fips202x4.c +208 -0
  148. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/fips202x4.h +80 -0
  149. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/keccakf1600.c +463 -0
  150. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/keccakf1600.h +98 -0
  151. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/auto.h +70 -0
  152. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/fips202_native_aarch64.h +69 -0
  153. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x1_scalar_asm.S +375 -0
  154. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x1_v84a_asm.S +203 -0
  155. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x2_v84a_asm.S +258 -0
  156. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_asm.S +1076 -0
  157. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_asm.S +986 -0
  158. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccakf1600_round_constants.c +46 -0
  159. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x1_scalar.h +25 -0
  160. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x1_v84a.h +34 -0
  161. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x2_v84a.h +35 -0
  162. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x4_v8a_scalar.h +26 -0
  163. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x4_v8a_v84a_scalar.h +35 -0
  164. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/api.h +117 -0
  165. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/README.md +10 -0
  166. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/mve.h +79 -0
  167. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h +35 -0
  168. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S +667 -0
  169. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.c +40 -0
  170. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/keccakf1600_round_constants.c +51 -0
  171. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x4_mve.S +290 -0
  172. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x4_mve.S +314 -0
  173. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/auto.h +28 -0
  174. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/keccak_f1600_x4_avx2.h +33 -0
  175. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/src/fips202_native_x86_64.h +41 -0
  176. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/src/keccak_f1600_x4_avx2.S +451 -0
  177. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/src/keccakf1600_constants.c +51 -0
  178. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/indcpa.c +622 -0
  179. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/indcpa.h +156 -0
  180. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/kem.c +446 -0
  181. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/kem.h +326 -0
  182. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/README.md +16 -0
  183. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/meta.h +122 -0
  184. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/aarch64_zetas.c +174 -0
  185. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/arith_native_aarch64.h +177 -0
  186. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/intt.S +628 -0
  187. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/ntt.S +562 -0
  188. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/poly_mulcache_compute_asm.S +127 -0
  189. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/poly_reduce_asm.S +150 -0
  190. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/poly_tobytes_asm.S +117 -0
  191. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/poly_tomont_asm.S +98 -0
  192. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/polyvec_basemul_acc_montgomery_cached_asm_k2.S +261 -0
  193. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/polyvec_basemul_acc_montgomery_cached_asm_k3.S +314 -0
  194. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/polyvec_basemul_acc_montgomery_cached_asm_k4.S +368 -0
  195. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/rej_uniform_asm.S +226 -0
  196. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/rej_uniform_table.c +542 -0
  197. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/api.h +637 -0
  198. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/meta.h +25 -0
  199. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/README.md +11 -0
  200. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/meta.h +128 -0
  201. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/arith_native_riscv64.h +45 -0
  202. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_debug.c +81 -0
  203. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_debug.h +145 -0
  204. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_izetas.inc +27 -0
  205. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_poly.c +805 -0
  206. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_zetas.inc +27 -0
  207. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_zetas_basemul.inc +39 -0
  208. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/README.md +4 -0
  209. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/meta.h +304 -0
  210. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/arith_native_x86_64.h +309 -0
  211. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/compress_consts.c +94 -0
  212. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/compress_consts.h +45 -0
  213. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/consts.c +102 -0
  214. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/consts.h +25 -0
  215. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/intt.S +719 -0
  216. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mulcache_compute.S +90 -0
  217. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/ntt.S +639 -0
  218. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/nttfrombytes.S +193 -0
  219. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/ntttobytes.S +181 -0
  220. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/nttunpack.S +174 -0
  221. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_compress_d10.S +382 -0
  222. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_compress_d11.S +448 -0
  223. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_compress_d4.S +163 -0
  224. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_compress_d5.S +220 -0
  225. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_decompress_d10.S +228 -0
  226. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_decompress_d11.S +277 -0
  227. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_decompress_d4.S +180 -0
  228. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_decompress_d5.S +192 -0
  229. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/polyvec_basemul_acc_montgomery_cached_asm_k2.S +502 -0
  230. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/polyvec_basemul_acc_montgomery_cached_asm_k3.S +750 -0
  231. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/polyvec_basemul_acc_montgomery_cached_asm_k4.S +998 -0
  232. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/reduce.S +218 -0
  233. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/rej_uniform_asm.S +103 -0
  234. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/rej_uniform_table.c +544 -0
  235. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/tomont.S +155 -0
  236. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/params.h +76 -0
  237. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly.c +572 -0
  238. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly.h +317 -0
  239. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly_k.c +502 -0
  240. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly_k.h +668 -0
  241. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/randombytes.h +60 -0
  242. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/sampling.c +362 -0
  243. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/sampling.h +118 -0
  244. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/symmetric.h +70 -0
  245. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/sys.h +260 -0
  246. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/verify.c +20 -0
  247. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/verify.h +464 -0
  248. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/zetas.inc +30 -0
  249. data/lib/pq_crypto/hybrid_kem.rb +10 -1
  250. data/lib/pq_crypto/version.rb +1 -1
  251. data/lib/pq_crypto.rb +5 -1
  252. data/script/vendor_libs.rb +228 -154
  253. metadata +236 -160
  254. data/ext/pqcrypto/vendor/pqclean/common/aes.c +0 -639
  255. data/ext/pqcrypto/vendor/pqclean/common/aes.h +0 -64
  256. data/ext/pqcrypto/vendor/pqclean/common/compat.h +0 -73
  257. data/ext/pqcrypto/vendor/pqclean/common/crypto_declassify.h +0 -7
  258. data/ext/pqcrypto/vendor/pqclean/common/fips202.c +0 -928
  259. data/ext/pqcrypto/vendor/pqclean/common/fips202.h +0 -166
  260. data/ext/pqcrypto/vendor/pqclean/common/keccak2x/feat.S +0 -168
  261. data/ext/pqcrypto/vendor/pqclean/common/keccak2x/fips202x2.c +0 -684
  262. data/ext/pqcrypto/vendor/pqclean/common/keccak2x/fips202x2.h +0 -60
  263. data/ext/pqcrypto/vendor/pqclean/common/keccak4x/KeccakP-1600-times4-SIMD256.c +0 -1028
  264. data/ext/pqcrypto/vendor/pqclean/common/keccak4x/KeccakP-1600-times4-SnP.h +0 -50
  265. data/ext/pqcrypto/vendor/pqclean/common/keccak4x/KeccakP-1600-unrolling.macros +0 -198
  266. data/ext/pqcrypto/vendor/pqclean/common/keccak4x/Makefile +0 -8
  267. data/ext/pqcrypto/vendor/pqclean/common/keccak4x/Makefile.Microsoft_nmake +0 -8
  268. data/ext/pqcrypto/vendor/pqclean/common/keccak4x/SIMD256-config.h +0 -3
  269. data/ext/pqcrypto/vendor/pqclean/common/keccak4x/align.h +0 -34
  270. data/ext/pqcrypto/vendor/pqclean/common/keccak4x/brg_endian.h +0 -142
  271. data/ext/pqcrypto/vendor/pqclean/common/nistseedexpander.c +0 -101
  272. data/ext/pqcrypto/vendor/pqclean/common/nistseedexpander.h +0 -39
  273. data/ext/pqcrypto/vendor/pqclean/common/randombytes.c +0 -355
  274. data/ext/pqcrypto/vendor/pqclean/common/randombytes.h +0 -27
  275. data/ext/pqcrypto/vendor/pqclean/common/sha2.c +0 -769
  276. data/ext/pqcrypto/vendor/pqclean/common/sha2.h +0 -173
  277. data/ext/pqcrypto/vendor/pqclean/common/sp800-185.c +0 -156
  278. data/ext/pqcrypto/vendor/pqclean/common/sp800-185.h +0 -27
  279. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/LICENSE +0 -5
  280. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/Makefile +0 -19
  281. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/Makefile.Microsoft_nmake +0 -23
  282. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/api.h +0 -18
  283. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/cbd.c +0 -83
  284. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/cbd.h +0 -11
  285. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/indcpa.c +0 -327
  286. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/indcpa.h +0 -22
  287. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/kem.c +0 -164
  288. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/kem.h +0 -23
  289. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/ntt.c +0 -146
  290. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/ntt.h +0 -14
  291. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/params.h +0 -36
  292. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/poly.c +0 -311
  293. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/poly.h +0 -37
  294. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/polyvec.c +0 -198
  295. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/polyvec.h +0 -26
  296. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/reduce.c +0 -41
  297. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/reduce.h +0 -13
  298. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/symmetric-shake.c +0 -71
  299. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/symmetric.h +0 -30
  300. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/verify.c +0 -67
  301. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/verify.h +0 -13
  302. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/LICENSE +0 -5
  303. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/Makefile +0 -19
  304. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/Makefile.Microsoft_nmake +0 -23
  305. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/api.h +0 -18
  306. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/cbd.c +0 -108
  307. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/cbd.h +0 -11
  308. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/indcpa.c +0 -327
  309. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/indcpa.h +0 -22
  310. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/kem.c +0 -164
  311. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/kem.h +0 -23
  312. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/ntt.c +0 -146
  313. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/ntt.h +0 -14
  314. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/params.h +0 -36
  315. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/poly.c +0 -299
  316. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/poly.h +0 -37
  317. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/polyvec.c +0 -188
  318. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/polyvec.h +0 -26
  319. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/reduce.c +0 -41
  320. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/reduce.h +0 -13
  321. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/symmetric-shake.c +0 -71
  322. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/symmetric.h +0 -30
  323. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/verify.c +0 -67
  324. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/verify.h +0 -13
  325. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/LICENSE +0 -5
  326. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/Makefile +0 -19
  327. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/Makefile.Microsoft_nmake +0 -23
  328. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/api.h +0 -18
  329. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/cbd.c +0 -83
  330. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/cbd.h +0 -11
  331. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/indcpa.c +0 -327
  332. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/indcpa.h +0 -22
  333. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/kem.c +0 -164
  334. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/kem.h +0 -23
  335. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/ntt.c +0 -146
  336. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/ntt.h +0 -14
  337. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/params.h +0 -36
  338. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/poly.c +0 -299
  339. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/poly.h +0 -37
  340. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/polyvec.c +0 -188
  341. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/polyvec.h +0 -26
  342. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/reduce.c +0 -41
  343. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/reduce.h +0 -13
  344. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/symmetric-shake.c +0 -71
  345. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/symmetric.h +0 -30
  346. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/verify.c +0 -67
  347. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/verify.h +0 -13
  348. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/LICENSE +0 -5
  349. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/Makefile +0 -19
  350. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/Makefile.Microsoft_nmake +0 -23
  351. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/api.h +0 -50
  352. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/ntt.c +0 -98
  353. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/ntt.h +0 -10
  354. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/packing.c +0 -261
  355. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/packing.h +0 -31
  356. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/params.h +0 -44
  357. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/poly.c +0 -848
  358. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/poly.h +0 -52
  359. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/polyvec.c +0 -415
  360. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/polyvec.h +0 -65
  361. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/reduce.c +0 -69
  362. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/reduce.h +0 -17
  363. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/rounding.c +0 -98
  364. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/rounding.h +0 -14
  365. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/sign.c +0 -407
  366. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/sign.h +0 -47
  367. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/symmetric-shake.c +0 -26
  368. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/symmetric.h +0 -34
  369. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/LICENSE +0 -5
  370. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/Makefile +0 -19
  371. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/Makefile.Microsoft_nmake +0 -23
  372. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/api.h +0 -50
  373. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/ntt.c +0 -98
  374. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/ntt.h +0 -10
  375. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/packing.c +0 -261
  376. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/packing.h +0 -31
  377. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/params.h +0 -44
  378. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/poly.c +0 -799
  379. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/poly.h +0 -52
  380. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/polyvec.c +0 -415
  381. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/polyvec.h +0 -65
  382. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/reduce.c +0 -69
  383. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/reduce.h +0 -17
  384. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/rounding.c +0 -92
  385. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/rounding.h +0 -14
  386. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/sign.c +0 -407
  387. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/sign.h +0 -47
  388. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/symmetric-shake.c +0 -26
  389. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/symmetric.h +0 -34
  390. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/LICENSE +0 -5
  391. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/Makefile +0 -19
  392. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/Makefile.Microsoft_nmake +0 -23
  393. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/api.h +0 -50
  394. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/ntt.c +0 -98
  395. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/ntt.h +0 -10
  396. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/packing.c +0 -261
  397. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/packing.h +0 -31
  398. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/params.h +0 -44
  399. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/poly.c +0 -823
  400. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/poly.h +0 -52
  401. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/polyvec.c +0 -415
  402. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/polyvec.h +0 -65
  403. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/reduce.c +0 -69
  404. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/reduce.h +0 -17
  405. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/rounding.c +0 -92
  406. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/rounding.h +0 -14
  407. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/sign.c +0 -407
  408. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/sign.h +0 -47
  409. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/symmetric-shake.c +0 -26
  410. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/symmetric.h +0 -34
@@ -0,0 +1,129 @@
1
+ /* Copyright (c) The mldsa-native project authors
2
+ * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT
3
+ */
4
+
5
+ #include "../../../common.h"
6
+ #if defined(MLD_ARITH_BACKEND_AARCH64) && !defined(MLD_CONFIG_MULTILEVEL_NO_SHARED) && \
7
+ (defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || MLDSA_L == 4)
8
+
9
+ /*
10
+ * WARNING: This file is auto-derived from the mldsa-native source file
11
+ * dev/aarch64_opt/src/mld_polyvecl_pointwise_acc_montgomery_l4.S using scripts/simpasm. Do not modify it directly.
12
+ */
13
+
14
+ #if defined(__ELF__)
15
+ .section .note.GNU-stack,"",@progbits
16
+ #endif
17
+
18
+ .text
19
+ .balign 4
20
+ .global MLD_ASM_NAMESPACE(polyvecl_pointwise_acc_montgomery_l4_asm)
21
+ MLD_ASM_FN_SYMBOL(polyvecl_pointwise_acc_montgomery_l4_asm)
22
+
23
+ .cfi_startproc
24
+ mov w3, #0xe001 // =57345
25
+ movk w3, #0x7f, lsl #16
26
+ dup v0.4s, w3
27
+ mov w3, #0x2001 // =8193
28
+ movk w3, #0x380, lsl #16
29
+ dup v1.4s, w3
30
+ mov x3, #0x40 // =64
31
+
32
+ Lpolyvecl_pointwise_acc_montgomery_l4_loop_start:
33
+ ldr q17, [x1, #0x10]
34
+ ldr q18, [x1, #0x20]
35
+ ldr q19, [x1, #0x30]
36
+ ldr q16, [x1], #0x40
37
+ ldr q21, [x2, #0x10]
38
+ ldr q22, [x2, #0x20]
39
+ ldr q23, [x2, #0x30]
40
+ ldr q20, [x2], #0x40
41
+ smull v24.2d, v16.2s, v20.2s
42
+ smull2 v25.2d, v16.4s, v20.4s
43
+ smull v26.2d, v17.2s, v21.2s
44
+ smull2 v27.2d, v17.4s, v21.4s
45
+ smull v28.2d, v18.2s, v22.2s
46
+ smull2 v29.2d, v18.4s, v22.4s
47
+ smull v30.2d, v19.2s, v23.2s
48
+ smull2 v31.2d, v19.4s, v23.4s
49
+ ldr q16, [x1, #0x3c0]
50
+ ldr q17, [x1, #0x3d0]
51
+ ldr q18, [x1, #0x3e0]
52
+ ldr q19, [x1, #0x3f0]
53
+ ldr q20, [x2, #0x3c0]
54
+ ldr q21, [x2, #0x3d0]
55
+ ldr q22, [x2, #0x3e0]
56
+ ldr q23, [x2, #0x3f0]
57
+ smlal v24.2d, v16.2s, v20.2s
58
+ smlal2 v25.2d, v16.4s, v20.4s
59
+ smlal v26.2d, v17.2s, v21.2s
60
+ smlal2 v27.2d, v17.4s, v21.4s
61
+ smlal v28.2d, v18.2s, v22.2s
62
+ smlal2 v29.2d, v18.4s, v22.4s
63
+ smlal v30.2d, v19.2s, v23.2s
64
+ smlal2 v31.2d, v19.4s, v23.4s
65
+ ldr q16, [x1, #0x7c0]
66
+ ldr q17, [x1, #0x7d0]
67
+ ldr q18, [x1, #0x7e0]
68
+ ldr q19, [x1, #0x7f0]
69
+ ldr q20, [x2, #0x7c0]
70
+ ldr q21, [x2, #0x7d0]
71
+ ldr q22, [x2, #0x7e0]
72
+ ldr q23, [x2, #0x7f0]
73
+ smlal v24.2d, v16.2s, v20.2s
74
+ smlal2 v25.2d, v16.4s, v20.4s
75
+ smlal v26.2d, v17.2s, v21.2s
76
+ smlal2 v27.2d, v17.4s, v21.4s
77
+ smlal v28.2d, v18.2s, v22.2s
78
+ smlal2 v29.2d, v18.4s, v22.4s
79
+ smlal v30.2d, v19.2s, v23.2s
80
+ smlal2 v31.2d, v19.4s, v23.4s
81
+ ldr q16, [x1, #0xbc0]
82
+ ldr q17, [x1, #0xbd0]
83
+ ldr q18, [x1, #0xbe0]
84
+ ldr q19, [x1, #0xbf0]
85
+ ldr q20, [x2, #0xbc0]
86
+ ldr q21, [x2, #0xbd0]
87
+ ldr q22, [x2, #0xbe0]
88
+ ldr q23, [x2, #0xbf0]
89
+ smlal v24.2d, v16.2s, v20.2s
90
+ smlal2 v25.2d, v16.4s, v20.4s
91
+ smlal v26.2d, v17.2s, v21.2s
92
+ smlal2 v27.2d, v17.4s, v21.4s
93
+ smlal v28.2d, v18.2s, v22.2s
94
+ smlal2 v29.2d, v18.4s, v22.4s
95
+ smlal v30.2d, v19.2s, v23.2s
96
+ smlal2 v31.2d, v19.4s, v23.4s
97
+ uzp1 v16.4s, v24.4s, v25.4s
98
+ mul v16.4s, v16.4s, v1.4s
99
+ smlsl v24.2d, v16.2s, v0.2s
100
+ smlsl2 v25.2d, v16.4s, v0.4s
101
+ uzp2 v16.4s, v24.4s, v25.4s
102
+ uzp1 v17.4s, v26.4s, v27.4s
103
+ mul v17.4s, v17.4s, v1.4s
104
+ smlsl v26.2d, v17.2s, v0.2s
105
+ smlsl2 v27.2d, v17.4s, v0.4s
106
+ uzp2 v17.4s, v26.4s, v27.4s
107
+ uzp1 v18.4s, v28.4s, v29.4s
108
+ mul v18.4s, v18.4s, v1.4s
109
+ smlsl v28.2d, v18.2s, v0.2s
110
+ smlsl2 v29.2d, v18.4s, v0.4s
111
+ uzp2 v18.4s, v28.4s, v29.4s
112
+ uzp1 v19.4s, v30.4s, v31.4s
113
+ mul v19.4s, v19.4s, v1.4s
114
+ smlsl v30.2d, v19.2s, v0.2s
115
+ smlsl2 v31.2d, v19.4s, v0.4s
116
+ uzp2 v19.4s, v30.4s, v31.4s
117
+ str q17, [x0, #0x10]
118
+ str q18, [x0, #0x20]
119
+ str q19, [x0, #0x30]
120
+ str q16, [x0], #0x40
121
+ subs x3, x3, #0x4
122
+ cbnz x3, Lpolyvecl_pointwise_acc_montgomery_l4_loop_start
123
+ ret
124
+ .cfi_endproc
125
+
126
+ MLD_ASM_FN_SIZE(polyvecl_pointwise_acc_montgomery_l4_asm)
127
+
128
+ #endif /* MLD_ARITH_BACKEND_AARCH64 && !MLD_CONFIG_MULTILEVEL_NO_SHARED && \
129
+ (MLD_CONFIG_MULTILEVEL_WITH_SHARED || MLDSA_L == 4) */
@@ -0,0 +1,145 @@
1
+ /* Copyright (c) The mldsa-native project authors
2
+ * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT
3
+ */
4
+
5
+ #include "../../../common.h"
6
+ #if defined(MLD_ARITH_BACKEND_AARCH64) && !defined(MLD_CONFIG_MULTILEVEL_NO_SHARED) && \
7
+ (defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || MLDSA_L == 5)
8
+
9
+ /*
10
+ * WARNING: This file is auto-derived from the mldsa-native source file
11
+ * dev/aarch64_opt/src/mld_polyvecl_pointwise_acc_montgomery_l5.S using scripts/simpasm. Do not modify it directly.
12
+ */
13
+
14
+ #if defined(__ELF__)
15
+ .section .note.GNU-stack,"",@progbits
16
+ #endif
17
+
18
+ .text
19
+ .balign 4
20
+ .global MLD_ASM_NAMESPACE(polyvecl_pointwise_acc_montgomery_l5_asm)
21
+ MLD_ASM_FN_SYMBOL(polyvecl_pointwise_acc_montgomery_l5_asm)
22
+
23
+ .cfi_startproc
24
+ mov w3, #0xe001 // =57345
25
+ movk w3, #0x7f, lsl #16
26
+ dup v0.4s, w3
27
+ mov w3, #0x2001 // =8193
28
+ movk w3, #0x380, lsl #16
29
+ dup v1.4s, w3
30
+ mov x3, #0x40 // =64
31
+
32
+ Lpolyvecl_pointwise_acc_montgomery_l5_loop_start:
33
+ ldr q17, [x1, #0x10]
34
+ ldr q18, [x1, #0x20]
35
+ ldr q19, [x1, #0x30]
36
+ ldr q16, [x1], #0x40
37
+ ldr q21, [x2, #0x10]
38
+ ldr q22, [x2, #0x20]
39
+ ldr q23, [x2, #0x30]
40
+ ldr q20, [x2], #0x40
41
+ smull v24.2d, v16.2s, v20.2s
42
+ smull2 v25.2d, v16.4s, v20.4s
43
+ smull v26.2d, v17.2s, v21.2s
44
+ smull2 v27.2d, v17.4s, v21.4s
45
+ smull v28.2d, v18.2s, v22.2s
46
+ smull2 v29.2d, v18.4s, v22.4s
47
+ smull v30.2d, v19.2s, v23.2s
48
+ smull2 v31.2d, v19.4s, v23.4s
49
+ ldr q16, [x1, #0x3c0]
50
+ ldr q17, [x1, #0x3d0]
51
+ ldr q18, [x1, #0x3e0]
52
+ ldr q19, [x1, #0x3f0]
53
+ ldr q20, [x2, #0x3c0]
54
+ ldr q21, [x2, #0x3d0]
55
+ ldr q22, [x2, #0x3e0]
56
+ ldr q23, [x2, #0x3f0]
57
+ smlal v24.2d, v16.2s, v20.2s
58
+ smlal2 v25.2d, v16.4s, v20.4s
59
+ smlal v26.2d, v17.2s, v21.2s
60
+ smlal2 v27.2d, v17.4s, v21.4s
61
+ smlal v28.2d, v18.2s, v22.2s
62
+ smlal2 v29.2d, v18.4s, v22.4s
63
+ smlal v30.2d, v19.2s, v23.2s
64
+ smlal2 v31.2d, v19.4s, v23.4s
65
+ ldr q16, [x1, #0x7c0]
66
+ ldr q17, [x1, #0x7d0]
67
+ ldr q18, [x1, #0x7e0]
68
+ ldr q19, [x1, #0x7f0]
69
+ ldr q20, [x2, #0x7c0]
70
+ ldr q21, [x2, #0x7d0]
71
+ ldr q22, [x2, #0x7e0]
72
+ ldr q23, [x2, #0x7f0]
73
+ smlal v24.2d, v16.2s, v20.2s
74
+ smlal2 v25.2d, v16.4s, v20.4s
75
+ smlal v26.2d, v17.2s, v21.2s
76
+ smlal2 v27.2d, v17.4s, v21.4s
77
+ smlal v28.2d, v18.2s, v22.2s
78
+ smlal2 v29.2d, v18.4s, v22.4s
79
+ smlal v30.2d, v19.2s, v23.2s
80
+ smlal2 v31.2d, v19.4s, v23.4s
81
+ ldr q16, [x1, #0xbc0]
82
+ ldr q17, [x1, #0xbd0]
83
+ ldr q18, [x1, #0xbe0]
84
+ ldr q19, [x1, #0xbf0]
85
+ ldr q20, [x2, #0xbc0]
86
+ ldr q21, [x2, #0xbd0]
87
+ ldr q22, [x2, #0xbe0]
88
+ ldr q23, [x2, #0xbf0]
89
+ smlal v24.2d, v16.2s, v20.2s
90
+ smlal2 v25.2d, v16.4s, v20.4s
91
+ smlal v26.2d, v17.2s, v21.2s
92
+ smlal2 v27.2d, v17.4s, v21.4s
93
+ smlal v28.2d, v18.2s, v22.2s
94
+ smlal2 v29.2d, v18.4s, v22.4s
95
+ smlal v30.2d, v19.2s, v23.2s
96
+ smlal2 v31.2d, v19.4s, v23.4s
97
+ ldr q16, [x1, #0xfc0]
98
+ ldr q17, [x1, #0xfd0]
99
+ ldr q18, [x1, #0xfe0]
100
+ ldr q19, [x1, #0xff0]
101
+ ldr q20, [x2, #0xfc0]
102
+ ldr q21, [x2, #0xfd0]
103
+ ldr q22, [x2, #0xfe0]
104
+ ldr q23, [x2, #0xff0]
105
+ smlal v24.2d, v16.2s, v20.2s
106
+ smlal2 v25.2d, v16.4s, v20.4s
107
+ smlal v26.2d, v17.2s, v21.2s
108
+ smlal2 v27.2d, v17.4s, v21.4s
109
+ smlal v28.2d, v18.2s, v22.2s
110
+ smlal2 v29.2d, v18.4s, v22.4s
111
+ smlal v30.2d, v19.2s, v23.2s
112
+ smlal2 v31.2d, v19.4s, v23.4s
113
+ uzp1 v16.4s, v24.4s, v25.4s
114
+ mul v16.4s, v16.4s, v1.4s
115
+ smlsl v24.2d, v16.2s, v0.2s
116
+ smlsl2 v25.2d, v16.4s, v0.4s
117
+ uzp2 v16.4s, v24.4s, v25.4s
118
+ uzp1 v17.4s, v26.4s, v27.4s
119
+ mul v17.4s, v17.4s, v1.4s
120
+ smlsl v26.2d, v17.2s, v0.2s
121
+ smlsl2 v27.2d, v17.4s, v0.4s
122
+ uzp2 v17.4s, v26.4s, v27.4s
123
+ uzp1 v18.4s, v28.4s, v29.4s
124
+ mul v18.4s, v18.4s, v1.4s
125
+ smlsl v28.2d, v18.2s, v0.2s
126
+ smlsl2 v29.2d, v18.4s, v0.4s
127
+ uzp2 v18.4s, v28.4s, v29.4s
128
+ uzp1 v19.4s, v30.4s, v31.4s
129
+ mul v19.4s, v19.4s, v1.4s
130
+ smlsl v30.2d, v19.2s, v0.2s
131
+ smlsl2 v31.2d, v19.4s, v0.4s
132
+ uzp2 v19.4s, v30.4s, v31.4s
133
+ str q17, [x0, #0x10]
134
+ str q18, [x0, #0x20]
135
+ str q19, [x0, #0x30]
136
+ str q16, [x0], #0x40
137
+ subs x3, x3, #0x4
138
+ cbnz x3, Lpolyvecl_pointwise_acc_montgomery_l5_loop_start
139
+ ret
140
+ .cfi_endproc
141
+
142
+ MLD_ASM_FN_SIZE(polyvecl_pointwise_acc_montgomery_l5_asm)
143
+
144
+ #endif /* MLD_ARITH_BACKEND_AARCH64 && !MLD_CONFIG_MULTILEVEL_NO_SHARED && \
145
+ (MLD_CONFIG_MULTILEVEL_WITH_SHARED || MLDSA_L == 5) */
@@ -0,0 +1,177 @@
1
+ /* Copyright (c) The mldsa-native project authors
2
+ * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT
3
+ */
4
+
5
+ #include "../../../common.h"
6
+ #if defined(MLD_ARITH_BACKEND_AARCH64) && !defined(MLD_CONFIG_MULTILEVEL_NO_SHARED) && \
7
+ (defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || MLDSA_L == 7)
8
+
9
+ /*
10
+ * WARNING: This file is auto-derived from the mldsa-native source file
11
+ * dev/aarch64_opt/src/mld_polyvecl_pointwise_acc_montgomery_l7.S using scripts/simpasm. Do not modify it directly.
12
+ */
13
+
14
+ #if defined(__ELF__)
15
+ .section .note.GNU-stack,"",@progbits
16
+ #endif
17
+
18
+ .text
19
+ .balign 4
20
+ .global MLD_ASM_NAMESPACE(polyvecl_pointwise_acc_montgomery_l7_asm)
21
+ MLD_ASM_FN_SYMBOL(polyvecl_pointwise_acc_montgomery_l7_asm)
22
+
23
+ .cfi_startproc
24
+ mov w3, #0xe001 // =57345
25
+ movk w3, #0x7f, lsl #16
26
+ dup v0.4s, w3
27
+ mov w3, #0x2001 // =8193
28
+ movk w3, #0x380, lsl #16
29
+ dup v1.4s, w3
30
+ mov x3, #0x40 // =64
31
+
32
+ Lpolyvecl_pointwise_acc_montgomery_l7_loop_start:
33
+ ldr q17, [x1, #0x10]
34
+ ldr q18, [x1, #0x20]
35
+ ldr q19, [x1, #0x30]
36
+ ldr q16, [x1], #0x40
37
+ ldr q21, [x2, #0x10]
38
+ ldr q22, [x2, #0x20]
39
+ ldr q23, [x2, #0x30]
40
+ ldr q20, [x2], #0x40
41
+ smull v24.2d, v16.2s, v20.2s
42
+ smull2 v25.2d, v16.4s, v20.4s
43
+ smull v26.2d, v17.2s, v21.2s
44
+ smull2 v27.2d, v17.4s, v21.4s
45
+ smull v28.2d, v18.2s, v22.2s
46
+ smull2 v29.2d, v18.4s, v22.4s
47
+ smull v30.2d, v19.2s, v23.2s
48
+ smull2 v31.2d, v19.4s, v23.4s
49
+ ldr q16, [x1, #0x3c0]
50
+ ldr q17, [x1, #0x3d0]
51
+ ldr q18, [x1, #0x3e0]
52
+ ldr q19, [x1, #0x3f0]
53
+ ldr q20, [x2, #0x3c0]
54
+ ldr q21, [x2, #0x3d0]
55
+ ldr q22, [x2, #0x3e0]
56
+ ldr q23, [x2, #0x3f0]
57
+ smlal v24.2d, v16.2s, v20.2s
58
+ smlal2 v25.2d, v16.4s, v20.4s
59
+ smlal v26.2d, v17.2s, v21.2s
60
+ smlal2 v27.2d, v17.4s, v21.4s
61
+ smlal v28.2d, v18.2s, v22.2s
62
+ smlal2 v29.2d, v18.4s, v22.4s
63
+ smlal v30.2d, v19.2s, v23.2s
64
+ smlal2 v31.2d, v19.4s, v23.4s
65
+ ldr q16, [x1, #0x7c0]
66
+ ldr q17, [x1, #0x7d0]
67
+ ldr q18, [x1, #0x7e0]
68
+ ldr q19, [x1, #0x7f0]
69
+ ldr q20, [x2, #0x7c0]
70
+ ldr q21, [x2, #0x7d0]
71
+ ldr q22, [x2, #0x7e0]
72
+ ldr q23, [x2, #0x7f0]
73
+ smlal v24.2d, v16.2s, v20.2s
74
+ smlal2 v25.2d, v16.4s, v20.4s
75
+ smlal v26.2d, v17.2s, v21.2s
76
+ smlal2 v27.2d, v17.4s, v21.4s
77
+ smlal v28.2d, v18.2s, v22.2s
78
+ smlal2 v29.2d, v18.4s, v22.4s
79
+ smlal v30.2d, v19.2s, v23.2s
80
+ smlal2 v31.2d, v19.4s, v23.4s
81
+ ldr q16, [x1, #0xbc0]
82
+ ldr q17, [x1, #0xbd0]
83
+ ldr q18, [x1, #0xbe0]
84
+ ldr q19, [x1, #0xbf0]
85
+ ldr q20, [x2, #0xbc0]
86
+ ldr q21, [x2, #0xbd0]
87
+ ldr q22, [x2, #0xbe0]
88
+ ldr q23, [x2, #0xbf0]
89
+ smlal v24.2d, v16.2s, v20.2s
90
+ smlal2 v25.2d, v16.4s, v20.4s
91
+ smlal v26.2d, v17.2s, v21.2s
92
+ smlal2 v27.2d, v17.4s, v21.4s
93
+ smlal v28.2d, v18.2s, v22.2s
94
+ smlal2 v29.2d, v18.4s, v22.4s
95
+ smlal v30.2d, v19.2s, v23.2s
96
+ smlal2 v31.2d, v19.4s, v23.4s
97
+ ldr q16, [x1, #0xfc0]
98
+ ldr q17, [x1, #0xfd0]
99
+ ldr q18, [x1, #0xfe0]
100
+ ldr q19, [x1, #0xff0]
101
+ ldr q20, [x2, #0xfc0]
102
+ ldr q21, [x2, #0xfd0]
103
+ ldr q22, [x2, #0xfe0]
104
+ ldr q23, [x2, #0xff0]
105
+ smlal v24.2d, v16.2s, v20.2s
106
+ smlal2 v25.2d, v16.4s, v20.4s
107
+ smlal v26.2d, v17.2s, v21.2s
108
+ smlal2 v27.2d, v17.4s, v21.4s
109
+ smlal v28.2d, v18.2s, v22.2s
110
+ smlal2 v29.2d, v18.4s, v22.4s
111
+ smlal v30.2d, v19.2s, v23.2s
112
+ smlal2 v31.2d, v19.4s, v23.4s
113
+ ldr q16, [x1, #0x13c0]
114
+ ldr q17, [x1, #0x13d0]
115
+ ldr q18, [x1, #0x13e0]
116
+ ldr q19, [x1, #0x13f0]
117
+ ldr q20, [x2, #0x13c0]
118
+ ldr q21, [x2, #0x13d0]
119
+ ldr q22, [x2, #0x13e0]
120
+ ldr q23, [x2, #0x13f0]
121
+ smlal v24.2d, v16.2s, v20.2s
122
+ smlal2 v25.2d, v16.4s, v20.4s
123
+ smlal v26.2d, v17.2s, v21.2s
124
+ smlal2 v27.2d, v17.4s, v21.4s
125
+ smlal v28.2d, v18.2s, v22.2s
126
+ smlal2 v29.2d, v18.4s, v22.4s
127
+ smlal v30.2d, v19.2s, v23.2s
128
+ smlal2 v31.2d, v19.4s, v23.4s
129
+ ldr q16, [x1, #0x17c0]
130
+ ldr q17, [x1, #0x17d0]
131
+ ldr q18, [x1, #0x17e0]
132
+ ldr q19, [x1, #0x17f0]
133
+ ldr q20, [x2, #0x17c0]
134
+ ldr q21, [x2, #0x17d0]
135
+ ldr q22, [x2, #0x17e0]
136
+ ldr q23, [x2, #0x17f0]
137
+ smlal v24.2d, v16.2s, v20.2s
138
+ smlal2 v25.2d, v16.4s, v20.4s
139
+ smlal v26.2d, v17.2s, v21.2s
140
+ smlal2 v27.2d, v17.4s, v21.4s
141
+ smlal v28.2d, v18.2s, v22.2s
142
+ smlal2 v29.2d, v18.4s, v22.4s
143
+ smlal v30.2d, v19.2s, v23.2s
144
+ smlal2 v31.2d, v19.4s, v23.4s
145
+ uzp1 v16.4s, v24.4s, v25.4s
146
+ mul v16.4s, v16.4s, v1.4s
147
+ smlsl v24.2d, v16.2s, v0.2s
148
+ smlsl2 v25.2d, v16.4s, v0.4s
149
+ uzp2 v16.4s, v24.4s, v25.4s
150
+ uzp1 v17.4s, v26.4s, v27.4s
151
+ mul v17.4s, v17.4s, v1.4s
152
+ smlsl v26.2d, v17.2s, v0.2s
153
+ smlsl2 v27.2d, v17.4s, v0.4s
154
+ uzp2 v17.4s, v26.4s, v27.4s
155
+ uzp1 v18.4s, v28.4s, v29.4s
156
+ mul v18.4s, v18.4s, v1.4s
157
+ smlsl v28.2d, v18.2s, v0.2s
158
+ smlsl2 v29.2d, v18.4s, v0.4s
159
+ uzp2 v18.4s, v28.4s, v29.4s
160
+ uzp1 v19.4s, v30.4s, v31.4s
161
+ mul v19.4s, v19.4s, v1.4s
162
+ smlsl v30.2d, v19.2s, v0.2s
163
+ smlsl2 v31.2d, v19.4s, v0.4s
164
+ uzp2 v19.4s, v30.4s, v31.4s
165
+ str q17, [x0, #0x10]
166
+ str q18, [x0, #0x20]
167
+ str q19, [x0, #0x30]
168
+ str q16, [x0], #0x40
169
+ subs x3, x3, #0x4
170
+ cbnz x3, Lpolyvecl_pointwise_acc_montgomery_l7_loop_start
171
+ ret
172
+ .cfi_endproc
173
+
174
+ MLD_ASM_FN_SIZE(polyvecl_pointwise_acc_montgomery_l7_asm)
175
+
176
+ #endif /* MLD_ARITH_BACKEND_AARCH64 && !MLD_CONFIG_MULTILEVEL_NO_SHARED && \
177
+ (MLD_CONFIG_MULTILEVEL_WITH_SHARED || MLDSA_L == 7) */