pq_crypto 0.4.2 → 0.5.0
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 +25 -0
- data/GET_STARTED.md +21 -16
- data/README.md +26 -0
- data/SECURITY.md +22 -16
- data/ext/pqcrypto/extconf.rb +148 -99
- data/ext/pqcrypto/mldsa_api.h +1 -118
- data/ext/pqcrypto/mlkem_api.h +1 -42
- data/ext/pqcrypto/pq_externalmu.c +88 -216
- data/ext/pqcrypto/pqcrypto_native_api.h +129 -0
- data/ext/pqcrypto/pqcrypto_ruby_secure.c +0 -3
- data/ext/pqcrypto/pqcrypto_secure.c +135 -117
- data/ext/pqcrypto/pqcrypto_secure.h +1 -42
- data/ext/pqcrypto/pqcrypto_version.h +1 -1
- data/ext/pqcrypto/randombytes.h +9 -0
- data/ext/pqcrypto/vendor/.vendored +10 -5
- data/ext/pqcrypto/vendor/mldsa-native/BUILDING.md +105 -0
- data/ext/pqcrypto/vendor/mldsa-native/LICENSE +286 -0
- data/ext/pqcrypto/vendor/mldsa-native/META.yml +24 -0
- data/ext/pqcrypto/vendor/mldsa-native/README.md +221 -0
- data/ext/pqcrypto/vendor/mldsa-native/SECURITY.md +8 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native.c +721 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native.h +975 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native_asm.S +724 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native_config.h +723 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/cbmc.h +166 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/common.h +321 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/ct.c +21 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/ct.h +385 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/debug.c +73 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/debug.h +130 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202.c +277 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202.h +244 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202x4.c +182 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202x4.h +117 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/keccakf1600.c +438 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/keccakf1600.h +105 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/auto.h +71 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/fips202_native_aarch64.h +62 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x1_scalar_asm.S +376 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x1_v84a_asm.S +204 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x2_v84a_asm.S +259 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_asm.S +1077 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_asm.S +987 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccakf1600_round_constants.c +41 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x1_scalar.h +26 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x1_v84a.h +35 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x2_v84a.h +37 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x4_v8a_scalar.h +27 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x4_v8a_v84a_scalar.h +36 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/api.h +69 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/README.md +10 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/mve.h +32 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/fips202_native_armv81m.h +20 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S +638 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.c +136 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/keccakf1600_round_constants.c +52 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/auto.h +29 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/src/KeccakP_1600_times4_SIMD256.c +488 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/src/KeccakP_1600_times4_SIMD256.h +16 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/xkcp.h +31 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/meta.h +247 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/aarch64_zetas.c +231 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/arith_native_aarch64.h +150 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/intt.S +753 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l4.S +129 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l5.S +145 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l7.S +177 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/ntt.S +653 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/pointwise_montgomery.S +79 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_caddq_asm.S +53 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_chknorm_asm.S +55 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_decompose_32_asm.S +85 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_decompose_88_asm.S +85 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_use_hint_32_asm.S +102 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_use_hint_88_asm.S +110 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_17_asm.S +72 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_19_asm.S +69 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_table.c +40 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_asm.S +189 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta2_asm.S +135 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta4_asm.S +128 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta_table.c +543 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_table.c +62 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/api.h +649 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/meta.h +23 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/meta.h +315 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/arith_native_x86_64.h +124 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/consts.c +157 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/consts.h +27 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/intt.S +2311 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/ntt.S +2383 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/nttunpack.S +239 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise.S +131 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l4.S +139 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l5.S +155 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l7.S +187 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_caddq_avx2.c +61 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_chknorm_avx2.c +52 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_decompose_32_avx2.c +155 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_decompose_88_avx2.c +155 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_use_hint_32_avx2.c +102 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_use_hint_88_avx2.c +104 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/polyz_unpack_17_avx2.c +91 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/polyz_unpack_19_avx2.c +93 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/rej_uniform_avx2.c +126 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/rej_uniform_eta2_avx2.c +155 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/rej_uniform_eta4_avx2.c +139 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/rej_uniform_table.c +160 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/packing.c +293 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/packing.h +224 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/params.h +77 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly.c +991 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly.h +393 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly_kl.c +946 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly_kl.h +360 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/polyvec.c +877 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/polyvec.h +725 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/randombytes.h +26 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/reduce.h +139 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/rounding.h +249 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/sign.c +1511 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/sign.h +806 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/symmetric.h +68 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/sys.h +268 -0
- data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/zetas.inc +55 -0
- data/ext/pqcrypto/vendor/mlkem-native/BUILDING.md +104 -0
- data/ext/pqcrypto/vendor/mlkem-native/LICENSE +294 -0
- data/ext/pqcrypto/vendor/mlkem-native/META.yml +30 -0
- data/ext/pqcrypto/vendor/mlkem-native/README.md +223 -0
- data/ext/pqcrypto/vendor/mlkem-native/RELEASE.md +86 -0
- data/ext/pqcrypto/vendor/mlkem-native/SECURITY.md +8 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/README.md +23 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native.c +660 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native.h +538 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native_asm.S +681 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native_config.h +709 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/cbmc.h +174 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/common.h +274 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/compress.c +717 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/compress.h +688 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/debug.c +64 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/debug.h +128 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/fips202.c +251 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/fips202.h +158 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/fips202x4.c +208 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/fips202x4.h +80 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/keccakf1600.c +463 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/keccakf1600.h +98 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/auto.h +70 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/fips202_native_aarch64.h +69 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x1_scalar_asm.S +375 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x1_v84a_asm.S +203 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x2_v84a_asm.S +258 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_asm.S +1076 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_asm.S +986 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccakf1600_round_constants.c +46 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x1_scalar.h +25 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x1_v84a.h +34 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x2_v84a.h +35 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x4_v8a_scalar.h +26 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x4_v8a_v84a_scalar.h +35 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/api.h +117 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/README.md +10 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/mve.h +79 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h +35 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S +667 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.c +40 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/keccakf1600_round_constants.c +51 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x4_mve.S +290 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x4_mve.S +314 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/auto.h +28 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/keccak_f1600_x4_avx2.h +33 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/src/fips202_native_x86_64.h +41 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/src/keccak_f1600_x4_avx2.S +451 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/src/keccakf1600_constants.c +51 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/indcpa.c +622 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/indcpa.h +156 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/kem.c +446 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/kem.h +326 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/README.md +16 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/meta.h +122 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/aarch64_zetas.c +174 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/arith_native_aarch64.h +177 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/intt.S +628 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/ntt.S +562 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/poly_mulcache_compute_asm.S +127 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/poly_reduce_asm.S +150 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/poly_tobytes_asm.S +117 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/poly_tomont_asm.S +98 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/polyvec_basemul_acc_montgomery_cached_asm_k2.S +261 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/polyvec_basemul_acc_montgomery_cached_asm_k3.S +314 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/polyvec_basemul_acc_montgomery_cached_asm_k4.S +368 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/rej_uniform_asm.S +226 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/rej_uniform_table.c +542 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/api.h +637 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/meta.h +25 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/README.md +11 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/meta.h +128 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/arith_native_riscv64.h +45 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_debug.c +81 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_debug.h +145 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_izetas.inc +27 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_poly.c +805 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_zetas.inc +27 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_zetas_basemul.inc +39 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/README.md +4 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/meta.h +304 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/arith_native_x86_64.h +309 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/compress_consts.c +94 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/compress_consts.h +45 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/consts.c +102 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/consts.h +25 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/intt.S +719 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mulcache_compute.S +90 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/ntt.S +639 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/nttfrombytes.S +193 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/ntttobytes.S +181 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/nttunpack.S +174 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_compress_d10.S +382 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_compress_d11.S +448 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_compress_d4.S +163 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_compress_d5.S +220 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_decompress_d10.S +228 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_decompress_d11.S +277 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_decompress_d4.S +180 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_decompress_d5.S +192 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/polyvec_basemul_acc_montgomery_cached_asm_k2.S +502 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/polyvec_basemul_acc_montgomery_cached_asm_k3.S +750 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/polyvec_basemul_acc_montgomery_cached_asm_k4.S +998 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/reduce.S +218 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/rej_uniform_asm.S +103 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/rej_uniform_table.c +544 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/tomont.S +155 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/params.h +76 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly.c +572 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly.h +317 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly_k.c +502 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly_k.h +668 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/randombytes.h +60 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/sampling.c +362 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/sampling.h +118 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/symmetric.h +70 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/sys.h +260 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/verify.c +20 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/verify.h +464 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/zetas.inc +30 -0
- data/lib/pq_crypto/version.rb +1 -1
- data/lib/pq_crypto.rb +1 -1
- data/script/vendor_libs.rb +88 -159
- metadata +236 -160
- data/ext/pqcrypto/vendor/pqclean/common/aes.c +0 -639
- data/ext/pqcrypto/vendor/pqclean/common/aes.h +0 -64
- data/ext/pqcrypto/vendor/pqclean/common/compat.h +0 -73
- data/ext/pqcrypto/vendor/pqclean/common/crypto_declassify.h +0 -7
- data/ext/pqcrypto/vendor/pqclean/common/fips202.c +0 -928
- data/ext/pqcrypto/vendor/pqclean/common/fips202.h +0 -166
- data/ext/pqcrypto/vendor/pqclean/common/keccak2x/feat.S +0 -168
- data/ext/pqcrypto/vendor/pqclean/common/keccak2x/fips202x2.c +0 -684
- data/ext/pqcrypto/vendor/pqclean/common/keccak2x/fips202x2.h +0 -60
- data/ext/pqcrypto/vendor/pqclean/common/keccak4x/KeccakP-1600-times4-SIMD256.c +0 -1028
- data/ext/pqcrypto/vendor/pqclean/common/keccak4x/KeccakP-1600-times4-SnP.h +0 -50
- data/ext/pqcrypto/vendor/pqclean/common/keccak4x/KeccakP-1600-unrolling.macros +0 -198
- data/ext/pqcrypto/vendor/pqclean/common/keccak4x/Makefile +0 -8
- data/ext/pqcrypto/vendor/pqclean/common/keccak4x/Makefile.Microsoft_nmake +0 -8
- data/ext/pqcrypto/vendor/pqclean/common/keccak4x/SIMD256-config.h +0 -3
- data/ext/pqcrypto/vendor/pqclean/common/keccak4x/align.h +0 -34
- data/ext/pqcrypto/vendor/pqclean/common/keccak4x/brg_endian.h +0 -142
- data/ext/pqcrypto/vendor/pqclean/common/nistseedexpander.c +0 -101
- data/ext/pqcrypto/vendor/pqclean/common/nistseedexpander.h +0 -39
- data/ext/pqcrypto/vendor/pqclean/common/randombytes.c +0 -355
- data/ext/pqcrypto/vendor/pqclean/common/randombytes.h +0 -27
- data/ext/pqcrypto/vendor/pqclean/common/sha2.c +0 -769
- data/ext/pqcrypto/vendor/pqclean/common/sha2.h +0 -173
- data/ext/pqcrypto/vendor/pqclean/common/sp800-185.c +0 -156
- data/ext/pqcrypto/vendor/pqclean/common/sp800-185.h +0 -27
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/LICENSE +0 -5
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/Makefile +0 -19
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/Makefile.Microsoft_nmake +0 -23
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/api.h +0 -18
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/cbd.c +0 -83
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/cbd.h +0 -11
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/indcpa.c +0 -327
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/indcpa.h +0 -22
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/kem.c +0 -164
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/kem.h +0 -23
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/ntt.c +0 -146
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/ntt.h +0 -14
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/params.h +0 -36
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/poly.c +0 -311
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/poly.h +0 -37
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/polyvec.c +0 -198
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/polyvec.h +0 -26
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/reduce.c +0 -41
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/reduce.h +0 -13
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/symmetric-shake.c +0 -71
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/symmetric.h +0 -30
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/verify.c +0 -67
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/verify.h +0 -13
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/LICENSE +0 -5
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/Makefile +0 -19
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/Makefile.Microsoft_nmake +0 -23
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/api.h +0 -18
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/cbd.c +0 -108
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/cbd.h +0 -11
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/indcpa.c +0 -327
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/indcpa.h +0 -22
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/kem.c +0 -164
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/kem.h +0 -23
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/ntt.c +0 -146
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/ntt.h +0 -14
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/params.h +0 -36
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/poly.c +0 -299
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/poly.h +0 -37
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/polyvec.c +0 -188
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/polyvec.h +0 -26
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/reduce.c +0 -41
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/reduce.h +0 -13
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/symmetric-shake.c +0 -71
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/symmetric.h +0 -30
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/verify.c +0 -67
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/verify.h +0 -13
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/LICENSE +0 -5
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/Makefile +0 -19
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/Makefile.Microsoft_nmake +0 -23
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/api.h +0 -18
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/cbd.c +0 -83
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/cbd.h +0 -11
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/indcpa.c +0 -327
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/indcpa.h +0 -22
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/kem.c +0 -164
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/kem.h +0 -23
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/ntt.c +0 -146
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/ntt.h +0 -14
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/params.h +0 -36
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/poly.c +0 -299
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/poly.h +0 -37
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/polyvec.c +0 -188
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/polyvec.h +0 -26
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/reduce.c +0 -41
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/reduce.h +0 -13
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/symmetric-shake.c +0 -71
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/symmetric.h +0 -30
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/verify.c +0 -67
- data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/verify.h +0 -13
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/LICENSE +0 -5
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/Makefile +0 -19
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/Makefile.Microsoft_nmake +0 -23
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/api.h +0 -50
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/ntt.c +0 -98
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/ntt.h +0 -10
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/packing.c +0 -261
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/packing.h +0 -31
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/params.h +0 -44
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/poly.c +0 -848
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/poly.h +0 -52
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/polyvec.c +0 -415
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/polyvec.h +0 -65
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/reduce.c +0 -69
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/reduce.h +0 -17
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/rounding.c +0 -98
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/rounding.h +0 -14
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/sign.c +0 -407
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/sign.h +0 -47
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/symmetric-shake.c +0 -26
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/symmetric.h +0 -34
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/LICENSE +0 -5
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/Makefile +0 -19
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/Makefile.Microsoft_nmake +0 -23
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/api.h +0 -50
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/ntt.c +0 -98
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/ntt.h +0 -10
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/packing.c +0 -261
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/packing.h +0 -31
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/params.h +0 -44
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/poly.c +0 -799
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/poly.h +0 -52
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/polyvec.c +0 -415
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/polyvec.h +0 -65
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/reduce.c +0 -69
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/reduce.h +0 -17
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/rounding.c +0 -92
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/rounding.h +0 -14
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/sign.c +0 -407
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/sign.h +0 -47
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/symmetric-shake.c +0 -26
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/symmetric.h +0 -34
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/LICENSE +0 -5
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/Makefile +0 -19
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/Makefile.Microsoft_nmake +0 -23
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/api.h +0 -50
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/ntt.c +0 -98
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/ntt.h +0 -10
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/packing.c +0 -261
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/packing.h +0 -31
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/params.h +0 -44
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/poly.c +0 -823
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/poly.h +0 -52
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/polyvec.c +0 -415
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/polyvec.h +0 -65
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/reduce.c +0 -69
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/reduce.h +0 -17
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/rounding.c +0 -92
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/rounding.h +0 -14
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/sign.c +0 -407
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/sign.h +0 -47
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/symmetric-shake.c +0 -26
- data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/symmetric.h +0 -34
|
@@ -0,0 +1,986 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) The mlkem-native project authors
|
|
3
|
+
* Copyright (c) 2021-2022 Arm Limited
|
|
4
|
+
* Copyright (c) 2022 Matthias Kannwischer
|
|
5
|
+
* SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// Author: Hanno Becker <hannobecker@posteo.de>
|
|
9
|
+
// Author: Matthias Kannwischer <matthias@kannwischer.eu>
|
|
10
|
+
|
|
11
|
+
/*yaml
|
|
12
|
+
Name: keccak_f1600_x4_v8a_v84a_scalar_hybrid_asm
|
|
13
|
+
Description: AArch64 hybrid scalar/vector implementation of Keccak-f[1600] permutation for four sequential states with ARMv8.4-A optimizations
|
|
14
|
+
Signature: void mlk_keccak_f1600_x4_v8a_v84a_scalar_hybrid_asm(uint64_t state[100], const uint64_t rc[24])
|
|
15
|
+
ABI:
|
|
16
|
+
x0:
|
|
17
|
+
type: buffer
|
|
18
|
+
size_bytes: 800
|
|
19
|
+
permissions: read/write
|
|
20
|
+
c_parameter: uint64_t state[100]
|
|
21
|
+
description: Four sequential Keccak states (state0[25], state1[25], state2[25], state3[25])
|
|
22
|
+
x1:
|
|
23
|
+
type: buffer
|
|
24
|
+
size_bytes: 192
|
|
25
|
+
permissions: read-only
|
|
26
|
+
c_parameter: const uint64_t rc[24]
|
|
27
|
+
description: Round constants (24 x uint64_t)
|
|
28
|
+
Stack:
|
|
29
|
+
bytes: 224
|
|
30
|
+
description: register preservation and temporary storage
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
#include "../../../../common.h"
|
|
34
|
+
#if defined(MLK_FIPS202_AARCH64_NEED_X4_V8A_V84A_SCALAR_HYBRID) && \
|
|
35
|
+
!defined(MLK_CONFIG_MULTILEVEL_NO_SHARED)
|
|
36
|
+
|
|
37
|
+
#if defined(__ARM_FEATURE_SHA3)
|
|
38
|
+
|
|
39
|
+
/*
|
|
40
|
+
* WARNING: This file is auto-derived from the mlkem-native source file
|
|
41
|
+
* dev/fips202/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_asm.S using scripts/simpasm. Do not modify it directly.
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
#if defined(__ELF__)
|
|
45
|
+
.section .note.GNU-stack,"",@progbits
|
|
46
|
+
#endif
|
|
47
|
+
|
|
48
|
+
.text
|
|
49
|
+
.balign 4
|
|
50
|
+
.global MLK_ASM_NAMESPACE(keccak_f1600_x4_v8a_v84a_scalar_hybrid_asm)
|
|
51
|
+
MLK_ASM_FN_SYMBOL(keccak_f1600_x4_v8a_v84a_scalar_hybrid_asm)
|
|
52
|
+
|
|
53
|
+
.cfi_startproc
|
|
54
|
+
sub sp, sp, #0xe0
|
|
55
|
+
.cfi_adjust_cfa_offset 0xe0
|
|
56
|
+
stp x19, x20, [sp, #0x30]
|
|
57
|
+
.cfi_rel_offset x19, 0x30
|
|
58
|
+
.cfi_rel_offset x20, 0x38
|
|
59
|
+
stp x21, x22, [sp, #0x40]
|
|
60
|
+
.cfi_rel_offset x21, 0x40
|
|
61
|
+
.cfi_rel_offset x22, 0x48
|
|
62
|
+
stp x23, x24, [sp, #0x50]
|
|
63
|
+
.cfi_rel_offset x23, 0x50
|
|
64
|
+
.cfi_rel_offset x24, 0x58
|
|
65
|
+
stp x25, x26, [sp, #0x60]
|
|
66
|
+
.cfi_rel_offset x25, 0x60
|
|
67
|
+
.cfi_rel_offset x26, 0x68
|
|
68
|
+
stp x27, x28, [sp, #0x70]
|
|
69
|
+
.cfi_rel_offset x27, 0x70
|
|
70
|
+
.cfi_rel_offset x28, 0x78
|
|
71
|
+
stp x29, x30, [sp, #0x80]
|
|
72
|
+
.cfi_rel_offset x29, 0x80
|
|
73
|
+
.cfi_rel_offset x30, 0x88
|
|
74
|
+
stp d8, d9, [sp, #0x90]
|
|
75
|
+
.cfi_rel_offset d8, 0x90
|
|
76
|
+
.cfi_rel_offset d9, 0x98
|
|
77
|
+
stp d10, d11, [sp, #0xa0]
|
|
78
|
+
.cfi_rel_offset d10, 0xa0
|
|
79
|
+
.cfi_rel_offset d11, 0xa8
|
|
80
|
+
stp d12, d13, [sp, #0xb0]
|
|
81
|
+
.cfi_rel_offset d12, 0xb0
|
|
82
|
+
.cfi_rel_offset d13, 0xb8
|
|
83
|
+
stp d14, d15, [sp, #0xc0]
|
|
84
|
+
.cfi_rel_offset d14, 0xc0
|
|
85
|
+
.cfi_rel_offset d15, 0xc8
|
|
86
|
+
mov x29, x1
|
|
87
|
+
mov x30, #0x0 // =0
|
|
88
|
+
str x30, [sp, #0x20]
|
|
89
|
+
str x29, [sp, #0x8]
|
|
90
|
+
str x29, [sp, #0x10]
|
|
91
|
+
str x0, [sp]
|
|
92
|
+
add x4, x0, #0xc8
|
|
93
|
+
ldp q25, q26, [x0], #0x20
|
|
94
|
+
ld1 { v27.2d, v28.2d }, [x4], #32
|
|
95
|
+
trn1 v0.2d, v25.2d, v27.2d
|
|
96
|
+
trn2 v1.2d, v25.2d, v27.2d
|
|
97
|
+
trn1 v2.2d, v26.2d, v28.2d
|
|
98
|
+
trn2 v3.2d, v26.2d, v28.2d
|
|
99
|
+
ldp q25, q26, [x0], #0x20
|
|
100
|
+
ld1 { v27.2d, v28.2d }, [x4], #32
|
|
101
|
+
trn1 v4.2d, v25.2d, v27.2d
|
|
102
|
+
trn2 v5.2d, v25.2d, v27.2d
|
|
103
|
+
trn1 v6.2d, v26.2d, v28.2d
|
|
104
|
+
trn2 v7.2d, v26.2d, v28.2d
|
|
105
|
+
ldp q25, q26, [x0], #0x20
|
|
106
|
+
ld1 { v27.2d, v28.2d }, [x4], #32
|
|
107
|
+
trn1 v8.2d, v25.2d, v27.2d
|
|
108
|
+
trn2 v9.2d, v25.2d, v27.2d
|
|
109
|
+
trn1 v10.2d, v26.2d, v28.2d
|
|
110
|
+
trn2 v11.2d, v26.2d, v28.2d
|
|
111
|
+
ldp q25, q26, [x0], #0x20
|
|
112
|
+
ld1 { v27.2d, v28.2d }, [x4], #32
|
|
113
|
+
trn1 v12.2d, v25.2d, v27.2d
|
|
114
|
+
trn2 v13.2d, v25.2d, v27.2d
|
|
115
|
+
trn1 v14.2d, v26.2d, v28.2d
|
|
116
|
+
trn2 v15.2d, v26.2d, v28.2d
|
|
117
|
+
ldp q25, q26, [x0], #0x20
|
|
118
|
+
ld1 { v27.2d, v28.2d }, [x4], #32
|
|
119
|
+
trn1 v16.2d, v25.2d, v27.2d
|
|
120
|
+
trn2 v17.2d, v25.2d, v27.2d
|
|
121
|
+
trn1 v18.2d, v26.2d, v28.2d
|
|
122
|
+
trn2 v19.2d, v26.2d, v28.2d
|
|
123
|
+
ldp q25, q26, [x0], #0x20
|
|
124
|
+
ld1 { v27.2d, v28.2d }, [x4], #32
|
|
125
|
+
trn1 v20.2d, v25.2d, v27.2d
|
|
126
|
+
trn2 v21.2d, v25.2d, v27.2d
|
|
127
|
+
trn1 v22.2d, v26.2d, v28.2d
|
|
128
|
+
trn2 v23.2d, v26.2d, v28.2d
|
|
129
|
+
ldr d25, [x0]
|
|
130
|
+
ldr d27, [x4]
|
|
131
|
+
trn1 v24.2d, v25.2d, v27.2d
|
|
132
|
+
sub x0, x0, #0xc0
|
|
133
|
+
add x0, x0, #0x190
|
|
134
|
+
ldp x1, x6, [x0]
|
|
135
|
+
ldp x11, x16, [x0, #0x10]
|
|
136
|
+
ldp x21, x2, [x0, #0x20]
|
|
137
|
+
ldp x7, x12, [x0, #0x30]
|
|
138
|
+
ldp x17, x22, [x0, #0x40]
|
|
139
|
+
ldp x3, x8, [x0, #0x50]
|
|
140
|
+
ldp x13, x28, [x0, #0x60]
|
|
141
|
+
ldp x23, x4, [x0, #0x70]
|
|
142
|
+
ldp x9, x14, [x0, #0x80]
|
|
143
|
+
ldp x19, x24, [x0, #0x90]
|
|
144
|
+
ldp x5, x10, [x0, #0xa0]
|
|
145
|
+
ldp x15, x20, [x0, #0xb0]
|
|
146
|
+
ldr x25, [x0, #0xc0]
|
|
147
|
+
sub x0, x0, #0x190
|
|
148
|
+
|
|
149
|
+
Lkeccak_f1600_x4_v8a_v84a_scalar_hybrid_initial:
|
|
150
|
+
eor x30, x24, x25
|
|
151
|
+
eor x27, x9, x10
|
|
152
|
+
eor3 v30.16b, v0.16b, v5.16b, v10.16b
|
|
153
|
+
eor v30.16b, v30.16b, v15.16b
|
|
154
|
+
eor x0, x30, x21
|
|
155
|
+
eor x26, x27, x6
|
|
156
|
+
eor v30.16b, v30.16b, v20.16b
|
|
157
|
+
eor x27, x26, x7
|
|
158
|
+
eor x29, x0, x22
|
|
159
|
+
eor3 v29.16b, v1.16b, v6.16b, v11.16b
|
|
160
|
+
eor x26, x29, x23
|
|
161
|
+
eor x29, x4, x5
|
|
162
|
+
eor v29.16b, v29.16b, v16.16b
|
|
163
|
+
eor x30, x29, x1
|
|
164
|
+
eor x0, x27, x8
|
|
165
|
+
eor v29.16b, v29.16b, v21.16b
|
|
166
|
+
eor x29, x30, x2
|
|
167
|
+
eor x30, x19, x20
|
|
168
|
+
eor3 v28.16b, v2.16b, v7.16b, v12.16b
|
|
169
|
+
eor x30, x30, x16
|
|
170
|
+
eor x27, x26, x0, ror #63
|
|
171
|
+
eor v28.16b, v28.16b, v17.16b
|
|
172
|
+
eor x4, x4, x27
|
|
173
|
+
eor x30, x30, x17
|
|
174
|
+
eor v28.16b, v28.16b, v22.16b
|
|
175
|
+
eor x30, x30, x28
|
|
176
|
+
eor x29, x29, x3
|
|
177
|
+
eor3 v27.16b, v3.16b, v8.16b, v13.16b
|
|
178
|
+
eor x0, x0, x30, ror #63
|
|
179
|
+
eor x30, x30, x29, ror #63
|
|
180
|
+
eor v27.16b, v27.16b, v18.16b
|
|
181
|
+
eor x22, x22, x30
|
|
182
|
+
eor v27.16b, v27.16b, v23.16b
|
|
183
|
+
eor x23, x23, x30
|
|
184
|
+
str x23, [sp, #0xd0]
|
|
185
|
+
eor3 v26.16b, v4.16b, v9.16b, v14.16b
|
|
186
|
+
eor x23, x14, x15
|
|
187
|
+
eor x14, x14, x0
|
|
188
|
+
eor v26.16b, v26.16b, v19.16b
|
|
189
|
+
eor x23, x23, x11
|
|
190
|
+
eor x15, x15, x0
|
|
191
|
+
eor v26.16b, v26.16b, v24.16b
|
|
192
|
+
eor x1, x1, x27
|
|
193
|
+
eor x23, x23, x12
|
|
194
|
+
rax1 v25.2d, v30.2d, v28.2d
|
|
195
|
+
eor x23, x23, x13
|
|
196
|
+
eor x11, x11, x0
|
|
197
|
+
add v31.2d, v26.2d, v26.2d
|
|
198
|
+
eor x29, x29, x23, ror #63
|
|
199
|
+
eor x23, x23, x26, ror #63
|
|
200
|
+
sri v31.2d, v26.2d, #0x3f
|
|
201
|
+
eor x26, x13, x0
|
|
202
|
+
eor x13, x28, x23
|
|
203
|
+
eor v28.16b, v31.16b, v28.16b
|
|
204
|
+
eor x28, x24, x30
|
|
205
|
+
eor x24, x16, x23
|
|
206
|
+
rax1 v26.2d, v26.2d, v29.2d
|
|
207
|
+
eor x16, x21, x30
|
|
208
|
+
eor x21, x25, x30
|
|
209
|
+
add v31.2d, v27.2d, v27.2d
|
|
210
|
+
eor x30, x19, x23
|
|
211
|
+
sri v31.2d, v27.2d, #0x3f
|
|
212
|
+
eor x19, x20, x23
|
|
213
|
+
eor x20, x17, x23
|
|
214
|
+
eor v29.16b, v31.16b, v29.16b
|
|
215
|
+
eor x17, x12, x0
|
|
216
|
+
eor x0, x2, x27
|
|
217
|
+
rax1 v27.2d, v27.2d, v30.2d
|
|
218
|
+
eor x2, x6, x29
|
|
219
|
+
eor x6, x8, x29
|
|
220
|
+
eor v30.16b, v0.16b, v26.16b
|
|
221
|
+
bic x8, x28, x13, ror #47
|
|
222
|
+
eor x12, x3, x27
|
|
223
|
+
eor v31.16b, v2.16b, v29.16b
|
|
224
|
+
bic x3, x13, x17, ror #19
|
|
225
|
+
eor x5, x5, x27
|
|
226
|
+
shl v0.2d, v31.2d, #0x3e
|
|
227
|
+
ldr x27, [sp, #0xd0]
|
|
228
|
+
bic x25, x17, x2, ror #5
|
|
229
|
+
sri v0.2d, v31.2d, #0x2
|
|
230
|
+
eor x9, x9, x29
|
|
231
|
+
eor x23, x25, x5, ror #52
|
|
232
|
+
xar v2.2d, v12.2d, v29.2d, #0x15
|
|
233
|
+
eor x3, x3, x2, ror #24
|
|
234
|
+
eor x8, x8, x17, ror #2
|
|
235
|
+
eor v31.16b, v13.16b, v28.16b
|
|
236
|
+
eor x17, x10, x29
|
|
237
|
+
bic x25, x12, x22, ror #47
|
|
238
|
+
shl v12.2d, v31.2d, #0x19
|
|
239
|
+
eor x29, x7, x29
|
|
240
|
+
bic x10, x4, x27, ror #2
|
|
241
|
+
sri v12.2d, v31.2d, #0x27
|
|
242
|
+
bic x7, x5, x28, ror #10
|
|
243
|
+
xar v13.2d, v19.2d, v27.2d, #0x38
|
|
244
|
+
eor x10, x10, x20, ror #50
|
|
245
|
+
eor x13, x7, x13, ror #57
|
|
246
|
+
eor v31.16b, v23.16b, v28.16b
|
|
247
|
+
bic x7, x2, x5, ror #47
|
|
248
|
+
eor x2, x25, x24, ror #39
|
|
249
|
+
shl v19.2d, v31.2d, #0x38
|
|
250
|
+
bic x25, x20, x11, ror #57
|
|
251
|
+
bic x5, x17, x4, ror #25
|
|
252
|
+
sri v19.2d, v31.2d, #0x8
|
|
253
|
+
eor x25, x25, x17, ror #53
|
|
254
|
+
bic x17, x11, x17, ror #60
|
|
255
|
+
xar v23.2d, v15.2d, v26.2d, #0x17
|
|
256
|
+
eor x28, x7, x28, ror #57
|
|
257
|
+
bic x7, x9, x12, ror #42
|
|
258
|
+
eor v31.16b, v1.16b, v25.16b
|
|
259
|
+
eor x7, x7, x22, ror #25
|
|
260
|
+
bic x22, x22, x24, ror #56
|
|
261
|
+
shl v15.2d, v31.2d, #0x1
|
|
262
|
+
bic x24, x24, x15, ror #31
|
|
263
|
+
eor x22, x22, x15, ror #23
|
|
264
|
+
sri v15.2d, v31.2d, #0x3f
|
|
265
|
+
bic x20, x27, x20, ror #48
|
|
266
|
+
bic x15, x15, x9, ror #16
|
|
267
|
+
xar v1.2d, v8.2d, v28.2d, #0x9
|
|
268
|
+
eor x12, x15, x12, ror #58
|
|
269
|
+
eor x15, x5, x27, ror #27
|
|
270
|
+
eor v31.16b, v16.16b, v25.16b
|
|
271
|
+
eor x5, x20, x11, ror #41
|
|
272
|
+
shl v8.2d, v31.2d, #0x2d
|
|
273
|
+
ldr x11, [sp, #0x8]
|
|
274
|
+
eor x20, x17, x4, ror #21
|
|
275
|
+
sri v8.2d, v31.2d, #0x13
|
|
276
|
+
eor x17, x24, x9, ror #47
|
|
277
|
+
mov x24, #0x1 // =1
|
|
278
|
+
xar v16.2d, v7.2d, v29.2d, #0x3a
|
|
279
|
+
bic x9, x0, x16, ror #9
|
|
280
|
+
str x24, [sp, #0x18]
|
|
281
|
+
eor v31.16b, v10.16b, v26.16b
|
|
282
|
+
bic x24, x29, x1, ror #44
|
|
283
|
+
bic x27, x1, x21, ror #50
|
|
284
|
+
shl v7.2d, v31.2d, #0x3
|
|
285
|
+
bic x4, x26, x29, ror #63
|
|
286
|
+
eor x1, x1, x4, ror #21
|
|
287
|
+
sri v7.2d, v31.2d, #0x3d
|
|
288
|
+
ldr x11, [x11]
|
|
289
|
+
bic x4, x21, x30, ror #57
|
|
290
|
+
xar v10.2d, v3.2d, v28.2d, #0x24
|
|
291
|
+
eor x21, x24, x21, ror #30
|
|
292
|
+
eor x24, x9, x19, ror #44
|
|
293
|
+
eor v31.16b, v18.16b, v28.16b
|
|
294
|
+
bic x9, x14, x6, ror #5
|
|
295
|
+
eor x9, x9, x0, ror #43
|
|
296
|
+
shl v3.2d, v31.2d, #0x15
|
|
297
|
+
bic x0, x6, x0, ror #38
|
|
298
|
+
eor x1, x1, x11
|
|
299
|
+
sri v3.2d, v31.2d, #0x2b
|
|
300
|
+
eor x11, x4, x26, ror #35
|
|
301
|
+
eor x4, x0, x16, ror #47
|
|
302
|
+
xar v18.2d, v17.2d, v29.2d, #0x31
|
|
303
|
+
bic x0, x16, x19, ror #35
|
|
304
|
+
eor v31.16b, v11.16b, v25.16b
|
|
305
|
+
eor x16, x27, x30, ror #43
|
|
306
|
+
bic x27, x30, x26, ror #42
|
|
307
|
+
shl v17.2d, v31.2d, #0xa
|
|
308
|
+
bic x26, x19, x14, ror #41
|
|
309
|
+
eor x19, x0, x14, ror #12
|
|
310
|
+
sri v17.2d, v31.2d, #0x36
|
|
311
|
+
eor x14, x26, x6, ror #46
|
|
312
|
+
eor x6, x27, x29, ror #41
|
|
313
|
+
xar v11.2d, v9.2d, v27.2d, #0x2c
|
|
314
|
+
eor x0, x15, x11, ror #52
|
|
315
|
+
eor x0, x0, x13, ror #48
|
|
316
|
+
eor v31.16b, v22.16b, v29.16b
|
|
317
|
+
eor x26, x8, x9, ror #57
|
|
318
|
+
eor x27, x0, x14, ror #10
|
|
319
|
+
shl v9.2d, v31.2d, #0x3d
|
|
320
|
+
eor x29, x16, x28, ror #63
|
|
321
|
+
eor x26, x26, x6, ror #51
|
|
322
|
+
sri v9.2d, v31.2d, #0x3
|
|
323
|
+
eor x30, x23, x22, ror #50
|
|
324
|
+
eor x0, x26, x10, ror #31
|
|
325
|
+
xar v22.2d, v14.2d, v27.2d, #0x19
|
|
326
|
+
eor x29, x29, x19, ror #37
|
|
327
|
+
eor x27, x27, x12, ror #5
|
|
328
|
+
eor v31.16b, v20.16b, v26.16b
|
|
329
|
+
eor x30, x30, x24, ror #34
|
|
330
|
+
eor x0, x0, x7, ror #27
|
|
331
|
+
shl v14.2d, v31.2d, #0x12
|
|
332
|
+
eor x26, x30, x21, ror #26
|
|
333
|
+
sri v14.2d, v31.2d, #0x2e
|
|
334
|
+
eor x26, x26, x25, ror #15
|
|
335
|
+
ror x30, x27, #0x3e
|
|
336
|
+
xar v20.2d, v4.2d, v27.2d, #0x25
|
|
337
|
+
eor x30, x30, x26, ror #57
|
|
338
|
+
ror x26, x26, #0x3a
|
|
339
|
+
eor v31.16b, v24.16b, v27.16b
|
|
340
|
+
eor x16, x30, x16
|
|
341
|
+
eor x28, x30, x28, ror #63
|
|
342
|
+
shl v4.2d, v31.2d, #0xe
|
|
343
|
+
str x28, [sp, #0xd0]
|
|
344
|
+
eor x29, x29, x17, ror #36
|
|
345
|
+
sri v4.2d, v31.2d, #0x32
|
|
346
|
+
eor x28, x1, x2, ror #61
|
|
347
|
+
eor x19, x30, x19, ror #37
|
|
348
|
+
xar v24.2d, v21.2d, v25.2d, #0x3e
|
|
349
|
+
eor x29, x29, x20, ror #2
|
|
350
|
+
eor x28, x28, x4, ror #54
|
|
351
|
+
eor v31.16b, v5.16b, v26.16b
|
|
352
|
+
eor x26, x26, x0, ror #55
|
|
353
|
+
eor x28, x28, x3, ror #39
|
|
354
|
+
shl v21.2d, v31.2d, #0x24
|
|
355
|
+
eor x28, x28, x5, ror #25
|
|
356
|
+
ror x0, x0, #0x38
|
|
357
|
+
sri v21.2d, v31.2d, #0x1c
|
|
358
|
+
eor x0, x0, x29, ror #63
|
|
359
|
+
eor x27, x28, x27, ror #61
|
|
360
|
+
xar v27.2d, v6.2d, v25.2d, #0x14
|
|
361
|
+
eor x13, x0, x13, ror #46
|
|
362
|
+
eor x28, x29, x28, ror #63
|
|
363
|
+
bic v31.16b, v7.16b, v11.16b
|
|
364
|
+
eor x29, x30, x20, ror #2
|
|
365
|
+
eor v5.16b, v31.16b, v10.16b
|
|
366
|
+
eor x20, x26, x3, ror #39
|
|
367
|
+
eor x11, x0, x11, ror #50
|
|
368
|
+
bcax v6.16b, v11.16b, v8.16b, v7.16b
|
|
369
|
+
eor x25, x28, x25, ror #9
|
|
370
|
+
eor x3, x28, x21, ror #20
|
|
371
|
+
bic v31.16b, v9.16b, v8.16b
|
|
372
|
+
eor x21, x26, x1
|
|
373
|
+
eor x9, x27, x9, ror #49
|
|
374
|
+
eor v7.16b, v31.16b, v7.16b
|
|
375
|
+
eor x24, x28, x24, ror #28
|
|
376
|
+
eor x1, x30, x17, ror #36
|
|
377
|
+
bcax v8.16b, v8.16b, v10.16b, v9.16b
|
|
378
|
+
eor x14, x0, x14, ror #8
|
|
379
|
+
eor x22, x28, x22, ror #44
|
|
380
|
+
bic v31.16b, v11.16b, v10.16b
|
|
381
|
+
eor x8, x27, x8, ror #56
|
|
382
|
+
eor x17, x27, x7, ror #19
|
|
383
|
+
eor v9.16b, v31.16b, v9.16b
|
|
384
|
+
eor x15, x0, x15, ror #62
|
|
385
|
+
bic x7, x20, x22, ror #47
|
|
386
|
+
bcax v10.16b, v15.16b, v12.16b, v16.16b
|
|
387
|
+
eor x4, x26, x4, ror #54
|
|
388
|
+
eor x0, x0, x12, ror #3
|
|
389
|
+
bic v31.16b, v13.16b, v12.16b
|
|
390
|
+
eor x28, x28, x23, ror #58
|
|
391
|
+
eor x23, x26, x2, ror #61
|
|
392
|
+
eor v11.16b, v31.16b, v16.16b
|
|
393
|
+
eor x26, x26, x5, ror #25
|
|
394
|
+
bcax v12.16b, v12.16b, v14.16b, v13.16b
|
|
395
|
+
eor x2, x7, x16, ror #39
|
|
396
|
+
bic x7, x9, x20, ror #42
|
|
397
|
+
bic v31.16b, v15.16b, v14.16b
|
|
398
|
+
bic x30, x15, x9, ror #16
|
|
399
|
+
eor x7, x7, x22, ror #25
|
|
400
|
+
eor v13.16b, v31.16b, v13.16b
|
|
401
|
+
eor x12, x30, x20, ror #58
|
|
402
|
+
bic x20, x22, x16, ror #56
|
|
403
|
+
bic v31.16b, v16.16b, v15.16b
|
|
404
|
+
eor x30, x27, x6, ror #43
|
|
405
|
+
eor x22, x20, x15, ror #23
|
|
406
|
+
eor v14.16b, v31.16b, v14.16b
|
|
407
|
+
bic x6, x19, x13, ror #42
|
|
408
|
+
eor x6, x6, x17, ror #41
|
|
409
|
+
bcax v15.16b, v20.16b, v17.16b, v21.16b
|
|
410
|
+
bic x5, x13, x17, ror #63
|
|
411
|
+
eor x5, x21, x5, ror #21
|
|
412
|
+
bic v31.16b, v18.16b, v17.16b
|
|
413
|
+
bic x17, x17, x21, ror #44
|
|
414
|
+
eor x27, x27, x10, ror #23
|
|
415
|
+
eor v16.16b, v31.16b, v21.16b
|
|
416
|
+
bic x21, x21, x25, ror #50
|
|
417
|
+
bic x20, x27, x4, ror #25
|
|
418
|
+
bcax v17.16b, v17.16b, v19.16b, v18.16b
|
|
419
|
+
bic x10, x16, x15, ror #31
|
|
420
|
+
eor x16, x21, x19, ror #43
|
|
421
|
+
bic v31.16b, v20.16b, v19.16b
|
|
422
|
+
eor x21, x17, x25, ror #30
|
|
423
|
+
bic x19, x25, x19, ror #57
|
|
424
|
+
eor v18.16b, v31.16b, v18.16b
|
|
425
|
+
ldr x25, [sp, #0x18]
|
|
426
|
+
bcax v19.16b, v19.16b, v21.16b, v20.16b
|
|
427
|
+
eor x17, x10, x9, ror #47
|
|
428
|
+
ldr x9, [sp, #0x8]
|
|
429
|
+
bic v31.16b, v22.16b, v1.16b
|
|
430
|
+
eor x15, x20, x28, ror #27
|
|
431
|
+
bic x20, x4, x28, ror #2
|
|
432
|
+
eor v20.16b, v31.16b, v0.16b
|
|
433
|
+
eor x10, x20, x1, ror #50
|
|
434
|
+
bic x20, x11, x27, ror #60
|
|
435
|
+
bcax v21.16b, v1.16b, v23.16b, v22.16b
|
|
436
|
+
eor x20, x20, x4, ror #21
|
|
437
|
+
bic x4, x28, x1, ror #48
|
|
438
|
+
bic v31.16b, v24.16b, v23.16b
|
|
439
|
+
bic x1, x1, x11, ror #57
|
|
440
|
+
ldr x28, [x9, x25, lsl #3]
|
|
441
|
+
eor v22.16b, v31.16b, v22.16b
|
|
442
|
+
ldr x9, [sp, #0xd0]
|
|
443
|
+
add x25, x25, #0x1
|
|
444
|
+
bcax v23.16b, v23.16b, v0.16b, v24.16b
|
|
445
|
+
str x25, [sp, #0x18]
|
|
446
|
+
cmp x25, #0x17
|
|
447
|
+
bic v31.16b, v1.16b, v0.16b
|
|
448
|
+
eor x25, x1, x27, ror #53
|
|
449
|
+
bic x27, x30, x26, ror #47
|
|
450
|
+
eor v24.16b, v31.16b, v24.16b
|
|
451
|
+
eor x1, x5, x28
|
|
452
|
+
eor x5, x4, x11, ror #41
|
|
453
|
+
bcax v0.16b, v30.16b, v2.16b, v27.16b
|
|
454
|
+
eor x11, x19, x13, ror #35
|
|
455
|
+
bic v31.16b, v3.16b, v2.16b
|
|
456
|
+
bic x13, x26, x24, ror #10
|
|
457
|
+
eor x28, x27, x24, ror #57
|
|
458
|
+
eor v1.16b, v31.16b, v27.16b
|
|
459
|
+
bic x27, x24, x9, ror #47
|
|
460
|
+
bic x19, x23, x3, ror #9
|
|
461
|
+
bcax v2.16b, v2.16b, v4.16b, v3.16b
|
|
462
|
+
bic x4, x29, x14, ror #41
|
|
463
|
+
eor x24, x19, x29, ror #44
|
|
464
|
+
bic v31.16b, v30.16b, v4.16b
|
|
465
|
+
bic x29, x3, x29, ror #35
|
|
466
|
+
eor x13, x13, x9, ror #57
|
|
467
|
+
eor v3.16b, v31.16b, v3.16b
|
|
468
|
+
eor x19, x29, x14, ror #12
|
|
469
|
+
bic x29, x9, x0, ror #19
|
|
470
|
+
bcax v4.16b, v4.16b, v27.16b, v30.16b
|
|
471
|
+
bic x14, x14, x8, ror #5
|
|
472
|
+
eor x9, x14, x23, ror #43
|
|
473
|
+
eor x14, x4, x8, ror #46
|
|
474
|
+
bic x23, x8, x23, ror #38
|
|
475
|
+
eor x8, x27, x0, ror #2
|
|
476
|
+
eor x4, x23, x3, ror #47
|
|
477
|
+
bic x3, x0, x30, ror #5
|
|
478
|
+
eor x23, x3, x26, ror #52
|
|
479
|
+
eor x3, x29, x30, ror #24
|
|
480
|
+
ldr x30, [sp, #0x10]
|
|
481
|
+
ld1r { v28.2d }, [x30], #8
|
|
482
|
+
str x30, [sp, #0x10]
|
|
483
|
+
eor v0.16b, v0.16b, v28.16b
|
|
484
|
+
|
|
485
|
+
Lkeccak_f1600_x4_v8a_v84a_scalar_hybrid_loop:
|
|
486
|
+
eor x0, x15, x11, ror #52
|
|
487
|
+
eor x0, x0, x13, ror #48
|
|
488
|
+
eor3 v30.16b, v0.16b, v5.16b, v10.16b
|
|
489
|
+
eor v30.16b, v30.16b, v15.16b
|
|
490
|
+
eor x26, x8, x9, ror #57
|
|
491
|
+
eor x27, x0, x14, ror #10
|
|
492
|
+
eor v30.16b, v30.16b, v20.16b
|
|
493
|
+
eor x29, x16, x28, ror #63
|
|
494
|
+
eor x26, x26, x6, ror #51
|
|
495
|
+
eor3 v29.16b, v1.16b, v6.16b, v11.16b
|
|
496
|
+
eor x30, x23, x22, ror #50
|
|
497
|
+
eor x0, x26, x10, ror #31
|
|
498
|
+
eor v29.16b, v29.16b, v16.16b
|
|
499
|
+
eor x29, x29, x19, ror #37
|
|
500
|
+
eor x27, x27, x12, ror #5
|
|
501
|
+
eor v29.16b, v29.16b, v21.16b
|
|
502
|
+
eor x30, x30, x24, ror #34
|
|
503
|
+
eor x0, x0, x7, ror #27
|
|
504
|
+
eor3 v28.16b, v2.16b, v7.16b, v12.16b
|
|
505
|
+
eor x26, x30, x21, ror #26
|
|
506
|
+
eor x26, x26, x25, ror #15
|
|
507
|
+
eor v28.16b, v28.16b, v17.16b
|
|
508
|
+
ror x30, x27, #0x3e
|
|
509
|
+
eor x30, x30, x26, ror #57
|
|
510
|
+
eor v28.16b, v28.16b, v22.16b
|
|
511
|
+
ror x26, x26, #0x3a
|
|
512
|
+
eor x16, x30, x16
|
|
513
|
+
eor3 v27.16b, v3.16b, v8.16b, v13.16b
|
|
514
|
+
eor x28, x30, x28, ror #63
|
|
515
|
+
str x28, [sp, #0xd0]
|
|
516
|
+
eor v27.16b, v27.16b, v18.16b
|
|
517
|
+
eor x29, x29, x17, ror #36
|
|
518
|
+
eor x28, x1, x2, ror #61
|
|
519
|
+
eor v27.16b, v27.16b, v23.16b
|
|
520
|
+
eor x19, x30, x19, ror #37
|
|
521
|
+
eor x29, x29, x20, ror #2
|
|
522
|
+
eor3 v26.16b, v4.16b, v9.16b, v14.16b
|
|
523
|
+
eor x28, x28, x4, ror #54
|
|
524
|
+
eor x26, x26, x0, ror #55
|
|
525
|
+
eor v26.16b, v26.16b, v19.16b
|
|
526
|
+
eor x28, x28, x3, ror #39
|
|
527
|
+
eor x28, x28, x5, ror #25
|
|
528
|
+
eor v26.16b, v26.16b, v24.16b
|
|
529
|
+
ror x0, x0, #0x38
|
|
530
|
+
eor x0, x0, x29, ror #63
|
|
531
|
+
rax1 v25.2d, v30.2d, v28.2d
|
|
532
|
+
eor x27, x28, x27, ror #61
|
|
533
|
+
eor x13, x0, x13, ror #46
|
|
534
|
+
add v31.2d, v26.2d, v26.2d
|
|
535
|
+
eor x28, x29, x28, ror #63
|
|
536
|
+
eor x29, x30, x20, ror #2
|
|
537
|
+
sri v31.2d, v26.2d, #0x3f
|
|
538
|
+
eor x20, x26, x3, ror #39
|
|
539
|
+
eor x11, x0, x11, ror #50
|
|
540
|
+
eor v28.16b, v31.16b, v28.16b
|
|
541
|
+
eor x25, x28, x25, ror #9
|
|
542
|
+
eor x3, x28, x21, ror #20
|
|
543
|
+
rax1 v26.2d, v26.2d, v29.2d
|
|
544
|
+
eor x21, x26, x1
|
|
545
|
+
add v31.2d, v27.2d, v27.2d
|
|
546
|
+
eor x9, x27, x9, ror #49
|
|
547
|
+
eor x24, x28, x24, ror #28
|
|
548
|
+
sri v31.2d, v27.2d, #0x3f
|
|
549
|
+
eor x1, x30, x17, ror #36
|
|
550
|
+
eor x14, x0, x14, ror #8
|
|
551
|
+
eor v29.16b, v31.16b, v29.16b
|
|
552
|
+
eor x22, x28, x22, ror #44
|
|
553
|
+
eor x8, x27, x8, ror #56
|
|
554
|
+
rax1 v27.2d, v27.2d, v30.2d
|
|
555
|
+
eor x17, x27, x7, ror #19
|
|
556
|
+
eor x15, x0, x15, ror #62
|
|
557
|
+
eor v30.16b, v0.16b, v26.16b
|
|
558
|
+
bic x7, x20, x22, ror #47
|
|
559
|
+
eor x4, x26, x4, ror #54
|
|
560
|
+
eor v31.16b, v2.16b, v29.16b
|
|
561
|
+
eor x0, x0, x12, ror #3
|
|
562
|
+
eor x28, x28, x23, ror #58
|
|
563
|
+
shl v0.2d, v31.2d, #0x3e
|
|
564
|
+
eor x23, x26, x2, ror #61
|
|
565
|
+
eor x26, x26, x5, ror #25
|
|
566
|
+
sri v0.2d, v31.2d, #0x2
|
|
567
|
+
eor x2, x7, x16, ror #39
|
|
568
|
+
bic x7, x9, x20, ror #42
|
|
569
|
+
xar v2.2d, v12.2d, v29.2d, #0x15
|
|
570
|
+
bic x30, x15, x9, ror #16
|
|
571
|
+
eor x7, x7, x22, ror #25
|
|
572
|
+
eor v31.16b, v13.16b, v28.16b
|
|
573
|
+
eor x12, x30, x20, ror #58
|
|
574
|
+
bic x20, x22, x16, ror #56
|
|
575
|
+
shl v12.2d, v31.2d, #0x19
|
|
576
|
+
eor x30, x27, x6, ror #43
|
|
577
|
+
eor x22, x20, x15, ror #23
|
|
578
|
+
sri v12.2d, v31.2d, #0x27
|
|
579
|
+
bic x6, x19, x13, ror #42
|
|
580
|
+
eor x6, x6, x17, ror #41
|
|
581
|
+
xar v13.2d, v19.2d, v27.2d, #0x38
|
|
582
|
+
bic x5, x13, x17, ror #63
|
|
583
|
+
eor x5, x21, x5, ror #21
|
|
584
|
+
eor v31.16b, v23.16b, v28.16b
|
|
585
|
+
bic x17, x17, x21, ror #44
|
|
586
|
+
eor x27, x27, x10, ror #23
|
|
587
|
+
shl v19.2d, v31.2d, #0x38
|
|
588
|
+
bic x21, x21, x25, ror #50
|
|
589
|
+
bic x20, x27, x4, ror #25
|
|
590
|
+
sri v19.2d, v31.2d, #0x8
|
|
591
|
+
bic x10, x16, x15, ror #31
|
|
592
|
+
eor x16, x21, x19, ror #43
|
|
593
|
+
xar v23.2d, v15.2d, v26.2d, #0x17
|
|
594
|
+
eor x21, x17, x25, ror #30
|
|
595
|
+
bic x19, x25, x19, ror #57
|
|
596
|
+
eor v31.16b, v1.16b, v25.16b
|
|
597
|
+
ldr x25, [sp, #0x18]
|
|
598
|
+
eor x17, x10, x9, ror #47
|
|
599
|
+
shl v15.2d, v31.2d, #0x1
|
|
600
|
+
ldr x9, [sp, #0x8]
|
|
601
|
+
sri v15.2d, v31.2d, #0x3f
|
|
602
|
+
eor x15, x20, x28, ror #27
|
|
603
|
+
bic x20, x4, x28, ror #2
|
|
604
|
+
xar v1.2d, v8.2d, v28.2d, #0x9
|
|
605
|
+
eor x10, x20, x1, ror #50
|
|
606
|
+
bic x20, x11, x27, ror #60
|
|
607
|
+
eor v31.16b, v16.16b, v25.16b
|
|
608
|
+
eor x20, x20, x4, ror #21
|
|
609
|
+
bic x4, x28, x1, ror #48
|
|
610
|
+
shl v8.2d, v31.2d, #0x2d
|
|
611
|
+
bic x1, x1, x11, ror #57
|
|
612
|
+
ldr x28, [x9, x25, lsl #3]
|
|
613
|
+
sri v8.2d, v31.2d, #0x13
|
|
614
|
+
ldr x9, [sp, #0xd0]
|
|
615
|
+
add x25, x25, #0x1
|
|
616
|
+
xar v16.2d, v7.2d, v29.2d, #0x3a
|
|
617
|
+
str x25, [sp, #0x18]
|
|
618
|
+
cmp x25, #0x17
|
|
619
|
+
eor v31.16b, v10.16b, v26.16b
|
|
620
|
+
eor x25, x1, x27, ror #53
|
|
621
|
+
bic x27, x30, x26, ror #47
|
|
622
|
+
shl v7.2d, v31.2d, #0x3
|
|
623
|
+
eor x1, x5, x28
|
|
624
|
+
eor x5, x4, x11, ror #41
|
|
625
|
+
sri v7.2d, v31.2d, #0x3d
|
|
626
|
+
eor x11, x19, x13, ror #35
|
|
627
|
+
bic x13, x26, x24, ror #10
|
|
628
|
+
xar v10.2d, v3.2d, v28.2d, #0x24
|
|
629
|
+
eor x28, x27, x24, ror #57
|
|
630
|
+
bic x27, x24, x9, ror #47
|
|
631
|
+
eor v31.16b, v18.16b, v28.16b
|
|
632
|
+
bic x19, x23, x3, ror #9
|
|
633
|
+
bic x4, x29, x14, ror #41
|
|
634
|
+
shl v3.2d, v31.2d, #0x15
|
|
635
|
+
eor x24, x19, x29, ror #44
|
|
636
|
+
bic x29, x3, x29, ror #35
|
|
637
|
+
sri v3.2d, v31.2d, #0x2b
|
|
638
|
+
eor x13, x13, x9, ror #57
|
|
639
|
+
eor x19, x29, x14, ror #12
|
|
640
|
+
xar v18.2d, v17.2d, v29.2d, #0x31
|
|
641
|
+
bic x29, x9, x0, ror #19
|
|
642
|
+
bic x14, x14, x8, ror #5
|
|
643
|
+
eor v31.16b, v11.16b, v25.16b
|
|
644
|
+
eor x9, x14, x23, ror #43
|
|
645
|
+
eor x14, x4, x8, ror #46
|
|
646
|
+
shl v17.2d, v31.2d, #0xa
|
|
647
|
+
bic x23, x8, x23, ror #38
|
|
648
|
+
eor x8, x27, x0, ror #2
|
|
649
|
+
sri v17.2d, v31.2d, #0x36
|
|
650
|
+
eor x4, x23, x3, ror #47
|
|
651
|
+
bic x3, x0, x30, ror #5
|
|
652
|
+
xar v11.2d, v9.2d, v27.2d, #0x2c
|
|
653
|
+
eor x23, x3, x26, ror #52
|
|
654
|
+
eor x3, x29, x30, ror #24
|
|
655
|
+
eor v31.16b, v22.16b, v29.16b
|
|
656
|
+
eor x0, x15, x11, ror #52
|
|
657
|
+
shl v9.2d, v31.2d, #0x3d
|
|
658
|
+
eor x0, x0, x13, ror #48
|
|
659
|
+
eor x26, x8, x9, ror #57
|
|
660
|
+
sri v9.2d, v31.2d, #0x3
|
|
661
|
+
eor x27, x0, x14, ror #10
|
|
662
|
+
eor x29, x16, x28, ror #63
|
|
663
|
+
xar v22.2d, v14.2d, v27.2d, #0x19
|
|
664
|
+
eor x26, x26, x6, ror #51
|
|
665
|
+
eor x30, x23, x22, ror #50
|
|
666
|
+
eor v31.16b, v20.16b, v26.16b
|
|
667
|
+
eor x0, x26, x10, ror #31
|
|
668
|
+
eor x29, x29, x19, ror #37
|
|
669
|
+
shl v14.2d, v31.2d, #0x12
|
|
670
|
+
eor x27, x27, x12, ror #5
|
|
671
|
+
eor x30, x30, x24, ror #34
|
|
672
|
+
sri v14.2d, v31.2d, #0x2e
|
|
673
|
+
eor x0, x0, x7, ror #27
|
|
674
|
+
eor x26, x30, x21, ror #26
|
|
675
|
+
xar v20.2d, v4.2d, v27.2d, #0x25
|
|
676
|
+
eor x26, x26, x25, ror #15
|
|
677
|
+
ror x30, x27, #0x3e
|
|
678
|
+
eor v31.16b, v24.16b, v27.16b
|
|
679
|
+
eor x30, x30, x26, ror #57
|
|
680
|
+
ror x26, x26, #0x3a
|
|
681
|
+
shl v4.2d, v31.2d, #0xe
|
|
682
|
+
eor x16, x30, x16
|
|
683
|
+
eor x28, x30, x28, ror #63
|
|
684
|
+
sri v4.2d, v31.2d, #0x32
|
|
685
|
+
str x28, [sp, #0xd0]
|
|
686
|
+
eor x29, x29, x17, ror #36
|
|
687
|
+
xar v24.2d, v21.2d, v25.2d, #0x3e
|
|
688
|
+
eor x28, x1, x2, ror #61
|
|
689
|
+
eor x19, x30, x19, ror #37
|
|
690
|
+
eor v31.16b, v5.16b, v26.16b
|
|
691
|
+
eor x29, x29, x20, ror #2
|
|
692
|
+
eor x28, x28, x4, ror #54
|
|
693
|
+
shl v21.2d, v31.2d, #0x24
|
|
694
|
+
eor x26, x26, x0, ror #55
|
|
695
|
+
eor x28, x28, x3, ror #39
|
|
696
|
+
sri v21.2d, v31.2d, #0x1c
|
|
697
|
+
eor x28, x28, x5, ror #25
|
|
698
|
+
ror x0, x0, #0x38
|
|
699
|
+
xar v27.2d, v6.2d, v25.2d, #0x14
|
|
700
|
+
eor x0, x0, x29, ror #63
|
|
701
|
+
eor x27, x28, x27, ror #61
|
|
702
|
+
bic v31.16b, v7.16b, v11.16b
|
|
703
|
+
eor x13, x0, x13, ror #46
|
|
704
|
+
eor x28, x29, x28, ror #63
|
|
705
|
+
eor v5.16b, v31.16b, v10.16b
|
|
706
|
+
eor x29, x30, x20, ror #2
|
|
707
|
+
eor x20, x26, x3, ror #39
|
|
708
|
+
bcax v6.16b, v11.16b, v8.16b, v7.16b
|
|
709
|
+
eor x11, x0, x11, ror #50
|
|
710
|
+
eor x25, x28, x25, ror #9
|
|
711
|
+
bic v31.16b, v9.16b, v8.16b
|
|
712
|
+
eor x3, x28, x21, ror #20
|
|
713
|
+
eor v7.16b, v31.16b, v7.16b
|
|
714
|
+
eor x21, x26, x1
|
|
715
|
+
eor x9, x27, x9, ror #49
|
|
716
|
+
bcax v8.16b, v8.16b, v10.16b, v9.16b
|
|
717
|
+
eor x24, x28, x24, ror #28
|
|
718
|
+
eor x1, x30, x17, ror #36
|
|
719
|
+
bic v31.16b, v11.16b, v10.16b
|
|
720
|
+
eor x14, x0, x14, ror #8
|
|
721
|
+
eor x22, x28, x22, ror #44
|
|
722
|
+
eor v9.16b, v31.16b, v9.16b
|
|
723
|
+
eor x8, x27, x8, ror #56
|
|
724
|
+
eor x17, x27, x7, ror #19
|
|
725
|
+
bcax v10.16b, v15.16b, v12.16b, v16.16b
|
|
726
|
+
eor x15, x0, x15, ror #62
|
|
727
|
+
bic x7, x20, x22, ror #47
|
|
728
|
+
bic v31.16b, v13.16b, v12.16b
|
|
729
|
+
eor x4, x26, x4, ror #54
|
|
730
|
+
eor x0, x0, x12, ror #3
|
|
731
|
+
eor v11.16b, v31.16b, v16.16b
|
|
732
|
+
eor x28, x28, x23, ror #58
|
|
733
|
+
eor x23, x26, x2, ror #61
|
|
734
|
+
bcax v12.16b, v12.16b, v14.16b, v13.16b
|
|
735
|
+
eor x26, x26, x5, ror #25
|
|
736
|
+
eor x2, x7, x16, ror #39
|
|
737
|
+
bic v31.16b, v15.16b, v14.16b
|
|
738
|
+
bic x7, x9, x20, ror #42
|
|
739
|
+
bic x30, x15, x9, ror #16
|
|
740
|
+
eor v13.16b, v31.16b, v13.16b
|
|
741
|
+
eor x7, x7, x22, ror #25
|
|
742
|
+
eor x12, x30, x20, ror #58
|
|
743
|
+
bic v31.16b, v16.16b, v15.16b
|
|
744
|
+
bic x20, x22, x16, ror #56
|
|
745
|
+
eor x30, x27, x6, ror #43
|
|
746
|
+
eor v14.16b, v31.16b, v14.16b
|
|
747
|
+
eor x22, x20, x15, ror #23
|
|
748
|
+
bic x6, x19, x13, ror #42
|
|
749
|
+
bcax v15.16b, v20.16b, v17.16b, v21.16b
|
|
750
|
+
eor x6, x6, x17, ror #41
|
|
751
|
+
bic x5, x13, x17, ror #63
|
|
752
|
+
bic v31.16b, v18.16b, v17.16b
|
|
753
|
+
eor x5, x21, x5, ror #21
|
|
754
|
+
bic x17, x17, x21, ror #44
|
|
755
|
+
eor v16.16b, v31.16b, v21.16b
|
|
756
|
+
eor x27, x27, x10, ror #23
|
|
757
|
+
bic x21, x21, x25, ror #50
|
|
758
|
+
bcax v17.16b, v17.16b, v19.16b, v18.16b
|
|
759
|
+
bic x20, x27, x4, ror #25
|
|
760
|
+
bic x10, x16, x15, ror #31
|
|
761
|
+
bic v31.16b, v20.16b, v19.16b
|
|
762
|
+
eor x16, x21, x19, ror #43
|
|
763
|
+
eor x21, x17, x25, ror #30
|
|
764
|
+
eor v18.16b, v31.16b, v18.16b
|
|
765
|
+
bic x19, x25, x19, ror #57
|
|
766
|
+
ldr x25, [sp, #0x18]
|
|
767
|
+
bcax v19.16b, v19.16b, v21.16b, v20.16b
|
|
768
|
+
eor x17, x10, x9, ror #47
|
|
769
|
+
bic v31.16b, v22.16b, v1.16b
|
|
770
|
+
ldr x9, [sp, #0x8]
|
|
771
|
+
eor x15, x20, x28, ror #27
|
|
772
|
+
eor v20.16b, v31.16b, v0.16b
|
|
773
|
+
bic x20, x4, x28, ror #2
|
|
774
|
+
eor x10, x20, x1, ror #50
|
|
775
|
+
bcax v21.16b, v1.16b, v23.16b, v22.16b
|
|
776
|
+
bic x20, x11, x27, ror #60
|
|
777
|
+
eor x20, x20, x4, ror #21
|
|
778
|
+
bic v31.16b, v24.16b, v23.16b
|
|
779
|
+
bic x4, x28, x1, ror #48
|
|
780
|
+
bic x1, x1, x11, ror #57
|
|
781
|
+
eor v22.16b, v31.16b, v22.16b
|
|
782
|
+
ldr x28, [x9, x25, lsl #3]
|
|
783
|
+
ldr x9, [sp, #0xd0]
|
|
784
|
+
bcax v23.16b, v23.16b, v0.16b, v24.16b
|
|
785
|
+
add x25, x25, #0x1
|
|
786
|
+
str x25, [sp, #0x18]
|
|
787
|
+
bic v31.16b, v1.16b, v0.16b
|
|
788
|
+
cmp x25, #0x17
|
|
789
|
+
eor x25, x1, x27, ror #53
|
|
790
|
+
eor v24.16b, v31.16b, v24.16b
|
|
791
|
+
bic x27, x30, x26, ror #47
|
|
792
|
+
eor x1, x5, x28
|
|
793
|
+
bcax v0.16b, v30.16b, v2.16b, v27.16b
|
|
794
|
+
eor x5, x4, x11, ror #41
|
|
795
|
+
eor x11, x19, x13, ror #35
|
|
796
|
+
bic v31.16b, v3.16b, v2.16b
|
|
797
|
+
bic x13, x26, x24, ror #10
|
|
798
|
+
eor x28, x27, x24, ror #57
|
|
799
|
+
eor v1.16b, v31.16b, v27.16b
|
|
800
|
+
bic x27, x24, x9, ror #47
|
|
801
|
+
bic x19, x23, x3, ror #9
|
|
802
|
+
bcax v2.16b, v2.16b, v4.16b, v3.16b
|
|
803
|
+
bic x4, x29, x14, ror #41
|
|
804
|
+
eor x24, x19, x29, ror #44
|
|
805
|
+
bic v31.16b, v30.16b, v4.16b
|
|
806
|
+
bic x29, x3, x29, ror #35
|
|
807
|
+
eor x13, x13, x9, ror #57
|
|
808
|
+
eor v3.16b, v31.16b, v3.16b
|
|
809
|
+
eor x19, x29, x14, ror #12
|
|
810
|
+
bic x29, x9, x0, ror #19
|
|
811
|
+
bcax v4.16b, v4.16b, v27.16b, v30.16b
|
|
812
|
+
bic x14, x14, x8, ror #5
|
|
813
|
+
eor x9, x14, x23, ror #43
|
|
814
|
+
eor x14, x4, x8, ror #46
|
|
815
|
+
bic x23, x8, x23, ror #38
|
|
816
|
+
eor x8, x27, x0, ror #2
|
|
817
|
+
eor x4, x23, x3, ror #47
|
|
818
|
+
bic x3, x0, x30, ror #5
|
|
819
|
+
eor x23, x3, x26, ror #52
|
|
820
|
+
eor x3, x29, x30, ror #24
|
|
821
|
+
ldr x30, [sp, #0x10]
|
|
822
|
+
ld1r { v28.2d }, [x30], #8
|
|
823
|
+
str x30, [sp, #0x10]
|
|
824
|
+
eor v0.16b, v0.16b, v28.16b
|
|
825
|
+
|
|
826
|
+
Lkeccak_f1600_x4_v8a_v84a_scalar_hybrid_loop_end:
|
|
827
|
+
b.le Lkeccak_f1600_x4_v8a_v84a_scalar_hybrid_loop
|
|
828
|
+
ror x2, x2, #0x3d
|
|
829
|
+
ror x3, x3, #0x27
|
|
830
|
+
ror x4, x4, #0x36
|
|
831
|
+
ror x5, x5, #0x19
|
|
832
|
+
ror x6, x6, #0x2b
|
|
833
|
+
ror x7, x7, #0x13
|
|
834
|
+
ror x8, x8, #0x38
|
|
835
|
+
ror x9, x9, #0x31
|
|
836
|
+
ror x10, x10, #0x17
|
|
837
|
+
ror x11, x11, #0x32
|
|
838
|
+
ror x12, x12, #0x3
|
|
839
|
+
ror x13, x13, #0x2e
|
|
840
|
+
ror x14, x14, #0x8
|
|
841
|
+
ror x15, x15, #0x3e
|
|
842
|
+
ror x17, x17, #0x24
|
|
843
|
+
ror x28, x28, #0x3f
|
|
844
|
+
ror x19, x19, #0x25
|
|
845
|
+
ror x20, x20, #0x2
|
|
846
|
+
ror x21, x21, #0x14
|
|
847
|
+
ror x22, x22, #0x2c
|
|
848
|
+
ror x23, x23, #0x3a
|
|
849
|
+
ror x24, x24, #0x1c
|
|
850
|
+
ror x25, x25, #0x9
|
|
851
|
+
ldr x30, [sp, #0x20]
|
|
852
|
+
cmp x30, #0x1
|
|
853
|
+
b.eq Lkeccak_f1600_x4_v8a_v84a_scalar_hybrid_done
|
|
854
|
+
mov x30, #0x1 // =1
|
|
855
|
+
str x30, [sp, #0x20]
|
|
856
|
+
ldr x0, [sp]
|
|
857
|
+
add x0, x0, #0x190
|
|
858
|
+
stp x1, x6, [x0]
|
|
859
|
+
stp x11, x16, [x0, #0x10]
|
|
860
|
+
stp x21, x2, [x0, #0x20]
|
|
861
|
+
stp x7, x12, [x0, #0x30]
|
|
862
|
+
stp x17, x22, [x0, #0x40]
|
|
863
|
+
stp x3, x8, [x0, #0x50]
|
|
864
|
+
stp x13, x28, [x0, #0x60]
|
|
865
|
+
stp x23, x4, [x0, #0x70]
|
|
866
|
+
stp x9, x14, [x0, #0x80]
|
|
867
|
+
stp x19, x24, [x0, #0x90]
|
|
868
|
+
stp x5, x10, [x0, #0xa0]
|
|
869
|
+
stp x15, x20, [x0, #0xb0]
|
|
870
|
+
str x25, [x0, #0xc0]
|
|
871
|
+
sub x0, x0, #0x190
|
|
872
|
+
add x0, x0, #0x258
|
|
873
|
+
ldp x1, x6, [x0]
|
|
874
|
+
ldp x11, x16, [x0, #0x10]
|
|
875
|
+
ldp x21, x2, [x0, #0x20]
|
|
876
|
+
ldp x7, x12, [x0, #0x30]
|
|
877
|
+
ldp x17, x22, [x0, #0x40]
|
|
878
|
+
ldp x3, x8, [x0, #0x50]
|
|
879
|
+
ldp x13, x28, [x0, #0x60]
|
|
880
|
+
ldp x23, x4, [x0, #0x70]
|
|
881
|
+
ldp x9, x14, [x0, #0x80]
|
|
882
|
+
ldp x19, x24, [x0, #0x90]
|
|
883
|
+
ldp x5, x10, [x0, #0xa0]
|
|
884
|
+
ldp x15, x20, [x0, #0xb0]
|
|
885
|
+
ldr x25, [x0, #0xc0]
|
|
886
|
+
sub x0, x0, #0x258
|
|
887
|
+
b Lkeccak_f1600_x4_v8a_v84a_scalar_hybrid_initial
|
|
888
|
+
|
|
889
|
+
Lkeccak_f1600_x4_v8a_v84a_scalar_hybrid_done:
|
|
890
|
+
ldr x0, [sp]
|
|
891
|
+
add x0, x0, #0x258
|
|
892
|
+
stp x1, x6, [x0]
|
|
893
|
+
stp x11, x16, [x0, #0x10]
|
|
894
|
+
stp x21, x2, [x0, #0x20]
|
|
895
|
+
stp x7, x12, [x0, #0x30]
|
|
896
|
+
stp x17, x22, [x0, #0x40]
|
|
897
|
+
stp x3, x8, [x0, #0x50]
|
|
898
|
+
stp x13, x28, [x0, #0x60]
|
|
899
|
+
stp x23, x4, [x0, #0x70]
|
|
900
|
+
stp x9, x14, [x0, #0x80]
|
|
901
|
+
stp x19, x24, [x0, #0x90]
|
|
902
|
+
stp x5, x10, [x0, #0xa0]
|
|
903
|
+
stp x15, x20, [x0, #0xb0]
|
|
904
|
+
str x25, [x0, #0xc0]
|
|
905
|
+
sub x0, x0, #0x258
|
|
906
|
+
add x4, x0, #0xc8
|
|
907
|
+
trn1 v25.2d, v0.2d, v1.2d
|
|
908
|
+
trn1 v26.2d, v2.2d, v3.2d
|
|
909
|
+
stp q25, q26, [x0], #0x20
|
|
910
|
+
trn2 v27.2d, v0.2d, v1.2d
|
|
911
|
+
trn2 v28.2d, v2.2d, v3.2d
|
|
912
|
+
st1 { v27.2d, v28.2d }, [x4], #32
|
|
913
|
+
trn1 v25.2d, v4.2d, v5.2d
|
|
914
|
+
trn1 v26.2d, v6.2d, v7.2d
|
|
915
|
+
stp q25, q26, [x0], #0x20
|
|
916
|
+
trn2 v27.2d, v4.2d, v5.2d
|
|
917
|
+
trn2 v28.2d, v6.2d, v7.2d
|
|
918
|
+
st1 { v27.2d, v28.2d }, [x4], #32
|
|
919
|
+
trn1 v25.2d, v8.2d, v9.2d
|
|
920
|
+
trn1 v26.2d, v10.2d, v11.2d
|
|
921
|
+
stp q25, q26, [x0], #0x20
|
|
922
|
+
trn2 v27.2d, v8.2d, v9.2d
|
|
923
|
+
trn2 v28.2d, v10.2d, v11.2d
|
|
924
|
+
st1 { v27.2d, v28.2d }, [x4], #32
|
|
925
|
+
trn1 v25.2d, v12.2d, v13.2d
|
|
926
|
+
trn1 v26.2d, v14.2d, v15.2d
|
|
927
|
+
stp q25, q26, [x0], #0x20
|
|
928
|
+
trn2 v27.2d, v12.2d, v13.2d
|
|
929
|
+
trn2 v28.2d, v14.2d, v15.2d
|
|
930
|
+
st1 { v27.2d, v28.2d }, [x4], #32
|
|
931
|
+
trn1 v25.2d, v16.2d, v17.2d
|
|
932
|
+
trn1 v26.2d, v18.2d, v19.2d
|
|
933
|
+
stp q25, q26, [x0], #0x20
|
|
934
|
+
trn2 v27.2d, v16.2d, v17.2d
|
|
935
|
+
trn2 v28.2d, v18.2d, v19.2d
|
|
936
|
+
st1 { v27.2d, v28.2d }, [x4], #32
|
|
937
|
+
trn1 v25.2d, v20.2d, v21.2d
|
|
938
|
+
trn1 v26.2d, v22.2d, v23.2d
|
|
939
|
+
stp q25, q26, [x0], #0x20
|
|
940
|
+
trn2 v27.2d, v20.2d, v21.2d
|
|
941
|
+
trn2 v28.2d, v22.2d, v23.2d
|
|
942
|
+
st1 { v27.2d, v28.2d }, [x4], #32
|
|
943
|
+
str d24, [x0]
|
|
944
|
+
trn2 v25.2d, v24.2d, v24.2d
|
|
945
|
+
str d25, [x4]
|
|
946
|
+
ldp d8, d9, [sp, #0x90]
|
|
947
|
+
.cfi_restore d8
|
|
948
|
+
.cfi_restore d9
|
|
949
|
+
ldp d10, d11, [sp, #0xa0]
|
|
950
|
+
.cfi_restore d10
|
|
951
|
+
.cfi_restore d11
|
|
952
|
+
ldp d12, d13, [sp, #0xb0]
|
|
953
|
+
.cfi_restore d12
|
|
954
|
+
.cfi_restore d13
|
|
955
|
+
ldp d14, d15, [sp, #0xc0]
|
|
956
|
+
.cfi_restore d14
|
|
957
|
+
.cfi_restore d15
|
|
958
|
+
ldp x19, x20, [sp, #0x30]
|
|
959
|
+
.cfi_restore x19
|
|
960
|
+
.cfi_restore x20
|
|
961
|
+
ldp x21, x22, [sp, #0x40]
|
|
962
|
+
.cfi_restore x21
|
|
963
|
+
.cfi_restore x22
|
|
964
|
+
ldp x23, x24, [sp, #0x50]
|
|
965
|
+
.cfi_restore x23
|
|
966
|
+
.cfi_restore x24
|
|
967
|
+
ldp x25, x26, [sp, #0x60]
|
|
968
|
+
.cfi_restore x25
|
|
969
|
+
.cfi_restore x26
|
|
970
|
+
ldp x27, x28, [sp, #0x70]
|
|
971
|
+
.cfi_restore x27
|
|
972
|
+
.cfi_restore x28
|
|
973
|
+
ldp x29, x30, [sp, #0x80]
|
|
974
|
+
.cfi_restore x29
|
|
975
|
+
.cfi_restore x30
|
|
976
|
+
add sp, sp, #0xe0
|
|
977
|
+
.cfi_adjust_cfa_offset -0xe0
|
|
978
|
+
ret
|
|
979
|
+
.cfi_endproc
|
|
980
|
+
|
|
981
|
+
MLK_ASM_FN_SIZE(keccak_f1600_x4_v8a_v84a_scalar_hybrid_asm)
|
|
982
|
+
|
|
983
|
+
#endif /* __ARM_FEATURE_SHA3 */
|
|
984
|
+
|
|
985
|
+
#endif /* MLK_FIPS202_AARCH64_NEED_X4_V8A_V84A_SCALAR_HYBRID && \
|
|
986
|
+
!MLK_CONFIG_MULTILEVEL_NO_SHARED */
|