pq_crypto 0.6.4 → 0.6.5
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 +46 -0
- data/README.md +5 -0
- data/ext/pqcrypto/pqcrypto_version.h +1 -1
- data/ext/pqcrypto/vendor/.vendored +4 -4
- data/ext/pqcrypto/vendor/mlkem-native/README.md +2 -4
- data/ext/pqcrypto/vendor/mlkem-native/RELEASE.md +98 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native.c +8 -7
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native.h +21 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native_asm.S +45 -44
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native_config.h +36 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/common.h +13 -30
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/compress.c +25 -5
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/compress.h +14 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/context.h +42 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/auto.h +20 -12
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x1_scalar_aarch64_asm.S +5 -3
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x1_v84a_aarch64_asm.S +5 -2
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x2_v84a_aarch64_asm.S +5 -2
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_aarch64_asm.S +10 -7
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_aarch64_asm.S +10 -7
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x1_v84a.h +2 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x2_v84a.h +2 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x4_v8a_scalar.h +5 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x4_v8a_v84a_scalar.h +2 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/mve.h +5 -19
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S +8 -5
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/{state_extract_bytes_x4_mve.S → keccak_f1600_x4_state_extract_bytes_mve.S} +14 -14
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/{state_xor_bytes_x4_mve.S → keccak_f1600_x4_state_xor_bytes_mve.S} +12 -12
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/src/keccak_f1600_x4_avx2_asm.S +36 -2
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/indcpa.c +22 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/indcpa.h +6 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/kem.c +11 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/kem.h +25 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/meta.h +44 -2
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/aarch64_zetas.c +2 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/arith_native_aarch64.h +11 -10
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{intt_aarch64_asm.S → mlkem_intt_aarch64_asm.S} +16 -9
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{ntt_aarch64_asm.S → mlkem_ntt_aarch64_asm.S} +10 -7
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{poly_mulcache_compute_aarch64_asm.S → mlkem_poly_mulcache_compute_aarch64_asm.S} +6 -3
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{poly_reduce_aarch64_asm.S → mlkem_poly_reduce_aarch64_asm.S} +6 -3
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{poly_tobytes_aarch64_asm.S → mlkem_poly_tobytes_aarch64_asm.S} +12 -5
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{poly_tomont_aarch64_asm.S → mlkem_poly_tomont_aarch64_asm.S} +11 -5
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm.S → mlkem_polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm.S} +6 -3
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm.S → mlkem_polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm.S} +6 -3
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm.S → mlkem_polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm.S} +6 -3
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{rej_uniform_aarch64_asm.S → mlkem_rej_uniform_aarch64_asm.S} +17 -17
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/api.h +21 -8
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/meta.h +1 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/meta.h +4 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/{intt_ppc_asm.S → mlkem_intt_ppc_asm.S} +29 -5
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/{ntt_ppc_asm.S → mlkem_ntt_ppc_asm.S} +22 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/{poly_tomont_ppc_asm.S → mlkem_poly_tomont_ppc_asm.S} +25 -3
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/{reduce_ppc_asm.S → mlkem_reduce_ppc_asm.S} +22 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/meta.h +4 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/arith_native_riscv64.h +4 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_poly.c +6 -2
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/meta.h +25 -5
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/arith_native_x86_64.h +20 -20
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/compress_consts.c +14 -3
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/compress_consts.h +8 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{intt_avx2_asm.S → mlkem_intt_avx2_asm.S} +27 -3
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{ntt_avx2_asm.S → mlkem_ntt_avx2_asm.S} +23 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{nttfrombytes_avx2_asm.S → mlkem_nttfrombytes_avx2_asm.S} +27 -3
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{ntttobytes_avx2_asm.S → mlkem_ntttobytes_avx2_asm.S} +27 -3
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{nttunpack_avx2_asm.S → mlkem_nttunpack_avx2_asm.S} +17 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_compress_d10_avx2_asm.S → mlkem_poly_compress_d10_avx2_asm.S} +34 -3
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_compress_d11_avx2_asm.S → mlkem_poly_compress_d11_avx2_asm.S} +33 -2
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_compress_d4_avx2_asm.S → mlkem_poly_compress_d4_avx2_asm.S} +34 -3
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_compress_d5_avx2_asm.S → mlkem_poly_compress_d5_avx2_asm.S} +33 -2
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_decompress_d10_avx2_asm.S → mlkem_poly_decompress_d10_avx2_asm.S} +32 -3
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_decompress_d11_avx2_asm.S → mlkem_poly_decompress_d11_avx2_asm.S} +32 -2
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_decompress_d4_avx2_asm.S → mlkem_poly_decompress_d4_avx2_asm.S} +32 -3
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_decompress_d5_avx2_asm.S → mlkem_poly_decompress_d5_avx2_asm.S} +32 -2
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_mulcache_compute_avx2_asm.S → mlkem_poly_mulcache_compute_avx2_asm.S} +29 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{polyvec_basemul_acc_montgomery_cached_k2_avx2_asm.S → mlkem_polyvec_basemul_acc_montgomery_cached_k2_avx2_asm.S} +35 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{polyvec_basemul_acc_montgomery_cached_k3_avx2_asm.S → mlkem_polyvec_basemul_acc_montgomery_cached_k3_avx2_asm.S} +35 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{polyvec_basemul_acc_montgomery_cached_k4_avx2_asm.S → mlkem_polyvec_basemul_acc_montgomery_cached_k4_avx2_asm.S} +35 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{reduce_avx2_asm.S → mlkem_reduce_avx2_asm.S} +17 -1
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{rej_uniform_avx2_asm.S → mlkem_rej_uniform_avx2_asm.S} +40 -7
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{tomont_avx2_asm.S → mlkem_tomont_avx2_asm.S} +20 -3
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly.c +7 -2
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly.h +6 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly_k.c +25 -4
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly_k.h +33 -4
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/sampling.c +4 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/sampling.h +4 -0
- data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/sys.h +19 -1
- data/lib/pq_crypto/version.rb +1 -1
- data/script/vendor_libs.rb +3 -3
- metadata +40 -42
|
@@ -99,6 +99,7 @@ __contract__(
|
|
|
99
99
|
return (int16_t)r;
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
+
#if !defined(MLK_CONFIG_NO_KEYPAIR_API)
|
|
102
103
|
#define mlk_poly_tomont MLK_NAMESPACE(poly_tomont)
|
|
103
104
|
/**
|
|
104
105
|
* In-place conversion of all coefficients of a polynomial from the normal
|
|
@@ -119,6 +120,7 @@ __contract__(
|
|
|
119
120
|
assigns(memory_slice(r, sizeof(mlk_poly)))
|
|
120
121
|
ensures(array_abs_bound(r->coeffs, 0, MLKEM_N, MLKEM_Q))
|
|
121
122
|
);
|
|
123
|
+
#endif /* !MLK_CONFIG_NO_KEYPAIR_API */
|
|
122
124
|
|
|
123
125
|
#define mlk_poly_mulcache_compute MLK_NAMESPACE(poly_mulcache_compute)
|
|
124
126
|
/**
|
|
@@ -207,6 +209,7 @@ __contract__(
|
|
|
207
209
|
assigns(memory_slice(r, sizeof(mlk_poly)))
|
|
208
210
|
);
|
|
209
211
|
|
|
212
|
+
#if !defined(MLK_CONFIG_NO_DECAPS_API)
|
|
210
213
|
#define mlk_poly_sub MLK_NAMESPACE(poly_sub)
|
|
211
214
|
/**
|
|
212
215
|
* Subtract two polynomials; no modular reduction is performed.
|
|
@@ -231,6 +234,7 @@ __contract__(
|
|
|
231
234
|
ensures(forall(k, 0, MLKEM_N, r->coeffs[k] == old(*r).coeffs[k] - b->coeffs[k]))
|
|
232
235
|
assigns(memory_slice(r, sizeof(mlk_poly)))
|
|
233
236
|
);
|
|
237
|
+
#endif /* !MLK_CONFIG_NO_DECAPS_API */
|
|
234
238
|
|
|
235
239
|
#define mlk_poly_ntt MLK_NAMESPACE(poly_ntt)
|
|
236
240
|
/**
|
|
@@ -260,6 +264,7 @@ __contract__(
|
|
|
260
264
|
ensures(array_abs_bound(r->coeffs, 0, MLKEM_N, MLK_NTT_BOUND))
|
|
261
265
|
);
|
|
262
266
|
|
|
267
|
+
#if !defined(MLK_CONFIG_NO_ENCAPS_API) || !defined(MLK_CONFIG_NO_DECAPS_API)
|
|
263
268
|
#define mlk_poly_invntt_tomont MLK_NAMESPACE(poly_invntt_tomont)
|
|
264
269
|
/**
|
|
265
270
|
* Compute the inverse negacyclic number-theoretic transform (NTT) of a
|
|
@@ -286,5 +291,6 @@ __contract__(
|
|
|
286
291
|
assigns(memory_slice(r, sizeof(mlk_poly)))
|
|
287
292
|
ensures(array_abs_bound(r->coeffs, 0, MLKEM_N, MLK_INVNTT_BOUND))
|
|
288
293
|
);
|
|
294
|
+
#endif /* !MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API */
|
|
289
295
|
|
|
290
296
|
#endif /* !MLK_POLY_H */
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
MLK_ADD_PARAM_SET(mlk_polyvec_basemul_acc_montgomery_cached_c)
|
|
40
40
|
/* End of parameter set namespacing */
|
|
41
41
|
|
|
42
|
+
#if !defined(MLK_CONFIG_NO_ENCAPS_API) || !defined(MLK_CONFIG_NO_DECAPS_API)
|
|
42
43
|
/* Reference: `polyvec_compress()` in the reference implementation @[REF]
|
|
43
44
|
* - In contrast to the reference implementation, we assume
|
|
44
45
|
* unsigned canonical coefficients here.
|
|
@@ -56,7 +57,9 @@ void mlk_polyvec_compress_du(uint8_t r[MLKEM_POLYVECCOMPRESSEDBYTES_DU],
|
|
|
56
57
|
mlk_poly_compress_du(r + i * MLKEM_POLYCOMPRESSEDBYTES_DU, &a->vec[i]);
|
|
57
58
|
}
|
|
58
59
|
}
|
|
60
|
+
#endif /* !MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API */
|
|
59
61
|
|
|
62
|
+
#if !defined(MLK_CONFIG_NO_DECAPS_API)
|
|
60
63
|
/* Reference: `polyvec_decompress()` in the reference implementation @[REF]. */
|
|
61
64
|
MLK_INTERNAL_API
|
|
62
65
|
void mlk_polyvec_decompress_du(mlk_polyvec *r,
|
|
@@ -70,7 +73,9 @@ void mlk_polyvec_decompress_du(mlk_polyvec *r,
|
|
|
70
73
|
|
|
71
74
|
mlk_assert_bound_2d(r->vec, MLKEM_K, MLKEM_N, 0, MLKEM_Q);
|
|
72
75
|
}
|
|
76
|
+
#endif /* !MLK_CONFIG_NO_DECAPS_API */
|
|
73
77
|
|
|
78
|
+
#if !defined(MLK_CONFIG_NO_KEYPAIR_API) || !defined(MLK_CONFIG_NO_ENCAPS_API)
|
|
74
79
|
/* Reference: `polyvec_tobytes()` in the reference implementation @[REF].
|
|
75
80
|
* - In contrast to the reference implementation, we assume
|
|
76
81
|
* unsigned canonical coefficients here.
|
|
@@ -92,7 +97,9 @@ void mlk_polyvec_tobytes(uint8_t r[MLKEM_POLYVECBYTES], const mlk_polyvec *a)
|
|
|
92
97
|
mlk_poly_tobytes(&r[i * MLKEM_POLYBYTES], &a->vec[i]);
|
|
93
98
|
}
|
|
94
99
|
}
|
|
100
|
+
#endif /* !MLK_CONFIG_NO_KEYPAIR_API || !MLK_CONFIG_NO_ENCAPS_API */
|
|
95
101
|
|
|
102
|
+
#if !defined(MLK_CONFIG_NO_ENCAPS_API) || !defined(MLK_CONFIG_NO_DECAPS_API)
|
|
96
103
|
/* Reference: `polyvec_frombytes()` in the reference implementation @[REF]. */
|
|
97
104
|
MLK_INTERNAL_API
|
|
98
105
|
void mlk_polyvec_frombytes(mlk_polyvec *r, const uint8_t a[MLKEM_POLYVECBYTES])
|
|
@@ -105,6 +112,7 @@ void mlk_polyvec_frombytes(mlk_polyvec *r, const uint8_t a[MLKEM_POLYVECBYTES])
|
|
|
105
112
|
|
|
106
113
|
mlk_assert_bound_2d(r->vec, MLKEM_K, MLKEM_N, 0, MLKEM_UINT12_LIMIT);
|
|
107
114
|
}
|
|
115
|
+
#endif /* !MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API */
|
|
108
116
|
|
|
109
117
|
/* Reference: `polyvec_ntt()` in the reference implementation @[REF]. */
|
|
110
118
|
MLK_INTERNAL_API
|
|
@@ -124,6 +132,7 @@ void mlk_polyvec_ntt(mlk_polyvec *r)
|
|
|
124
132
|
* while the reference implementation normalizes at
|
|
125
133
|
* the end. This allows us to drop a call to `poly_reduce()`
|
|
126
134
|
* from the base multiplication. */
|
|
135
|
+
#if !defined(MLK_CONFIG_NO_ENCAPS_API) || !defined(MLK_CONFIG_NO_DECAPS_API)
|
|
127
136
|
MLK_INTERNAL_API
|
|
128
137
|
void mlk_polyvec_invntt_tomont(mlk_polyvec *r)
|
|
129
138
|
{
|
|
@@ -135,6 +144,7 @@ void mlk_polyvec_invntt_tomont(mlk_polyvec *r)
|
|
|
135
144
|
|
|
136
145
|
mlk_assert_abs_bound_2d(r->vec, MLKEM_K, MLKEM_N, MLK_INVNTT_BOUND);
|
|
137
146
|
}
|
|
147
|
+
#endif /* !MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API */
|
|
138
148
|
|
|
139
149
|
/* Reference: `polyvec_basemul_acc_montgomery()` in the
|
|
140
150
|
* reference implementation @[REF].
|
|
@@ -279,6 +289,7 @@ void mlk_polyvec_add(mlk_polyvec *r, const mlk_polyvec *b)
|
|
|
279
289
|
}
|
|
280
290
|
}
|
|
281
291
|
|
|
292
|
+
#if !defined(MLK_CONFIG_NO_KEYPAIR_API)
|
|
282
293
|
/* Reference: `polyvec_tomont()` in the reference implementation @[REF]. */
|
|
283
294
|
MLK_INTERNAL_API
|
|
284
295
|
void mlk_polyvec_tomont(mlk_polyvec *r)
|
|
@@ -291,6 +302,7 @@ void mlk_polyvec_tomont(mlk_polyvec *r)
|
|
|
291
302
|
|
|
292
303
|
mlk_assert_abs_bound_2d(r->vec, MLKEM_K, MLKEM_N, MLKEM_Q);
|
|
293
304
|
}
|
|
305
|
+
#endif /* !MLK_CONFIG_NO_KEYPAIR_API */
|
|
294
306
|
|
|
295
307
|
|
|
296
308
|
/**
|
|
@@ -325,6 +337,9 @@ __contract__(
|
|
|
325
337
|
#endif
|
|
326
338
|
}
|
|
327
339
|
|
|
340
|
+
#if !defined(MLK_CONFIG_NO_KEYPAIR_API) || \
|
|
341
|
+
(MLKEM_ETA1 == MLKEM_ETA2 && (!defined(MLK_CONFIG_NO_ENCAPS_API) || \
|
|
342
|
+
!defined(MLK_CONFIG_NO_DECAPS_API)))
|
|
328
343
|
/* Reference: Does not exist in the reference implementation @[REF].
|
|
329
344
|
* - This implements a x4-batched version of `poly_getnoise_eta1()`
|
|
330
345
|
* from the reference implementation, to leverage
|
|
@@ -378,8 +393,11 @@ void mlk_poly_getnoise_eta1_4x(mlk_poly *r0, mlk_poly *r1, mlk_poly *r2,
|
|
|
378
393
|
mlk_zeroize(buf, sizeof(buf));
|
|
379
394
|
mlk_zeroize(extkey, sizeof(extkey));
|
|
380
395
|
}
|
|
396
|
+
#endif /* !MLK_CONFIG_NO_KEYPAIR_API || (MLKEM_ETA1 == MLKEM_ETA2 && \
|
|
397
|
+
(!MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API)) */
|
|
381
398
|
|
|
382
|
-
#if MLKEM_K == 2 || MLKEM_K == 4
|
|
399
|
+
#if (MLKEM_K == 2 || MLKEM_K == 4) && \
|
|
400
|
+
(!defined(MLK_CONFIG_NO_ENCAPS_API) || !defined(MLK_CONFIG_NO_DECAPS_API))
|
|
383
401
|
/**
|
|
384
402
|
* Given an array of uniformly random bytes, compute a polynomial with
|
|
385
403
|
* coefficients distributed according to a centered binomial distribution
|
|
@@ -431,9 +449,11 @@ void mlk_poly_getnoise_eta2(mlk_poly *r, const uint8_t seed[MLKEM_SYMBYTES],
|
|
|
431
449
|
mlk_zeroize(buf, sizeof(buf));
|
|
432
450
|
mlk_zeroize(extkey, sizeof(extkey));
|
|
433
451
|
}
|
|
434
|
-
#endif /* MLKEM_K == 2 || MLKEM_K == 4
|
|
452
|
+
#endif /* (MLKEM_K == 2 || MLKEM_K == 4) && (!MLK_CONFIG_NO_ENCAPS_API || \
|
|
453
|
+
!MLK_CONFIG_NO_DECAPS_API) */
|
|
435
454
|
|
|
436
|
-
#if MLKEM_K == 2
|
|
455
|
+
#if MLKEM_K == 2 && \
|
|
456
|
+
(!defined(MLK_CONFIG_NO_ENCAPS_API) || !defined(MLK_CONFIG_NO_DECAPS_API))
|
|
437
457
|
/* Reference: Does not exist in the reference implementation @[REF].
|
|
438
458
|
* - This implements a x4-batched version of `poly_getnoise_eta1()`
|
|
439
459
|
* and `poly_getnoise_eta2()` from the reference implementation,
|
|
@@ -492,7 +512,8 @@ void mlk_poly_getnoise_eta1122_4x(mlk_poly *r0, mlk_poly *r1, mlk_poly *r2,
|
|
|
492
512
|
mlk_zeroize(buf, sizeof(buf));
|
|
493
513
|
mlk_zeroize(extkey, sizeof(extkey));
|
|
494
514
|
}
|
|
495
|
-
#endif /* MLKEM_K == 2
|
|
515
|
+
#endif /* MLKEM_K == 2 && (!MLK_CONFIG_NO_ENCAPS_API || \
|
|
516
|
+
!MLK_CONFIG_NO_DECAPS_API) */
|
|
496
517
|
|
|
497
518
|
/* To facilitate single-compilation-unit (SCU) builds, undefine all macros.
|
|
498
519
|
* Don't modify by hand -- this is auto-generated by scripts/autogen. */
|
|
@@ -46,6 +46,7 @@ typedef struct
|
|
|
46
46
|
mlk_poly_mulcache vec[MLKEM_K]; /**< Per-component caches. */
|
|
47
47
|
} MLK_ALIGN mlk_polyvec_mulcache;
|
|
48
48
|
|
|
49
|
+
#if !defined(MLK_CONFIG_NO_ENCAPS_API) || !defined(MLK_CONFIG_NO_DECAPS_API)
|
|
49
50
|
#define mlk_poly_compress_du MLK_NAMESPACE_K(poly_compress_du)
|
|
50
51
|
/**
|
|
51
52
|
* Compression (du bits) and subsequent serialization of a polynomial.
|
|
@@ -75,7 +76,9 @@ __contract__(
|
|
|
75
76
|
#error "Invalid value of MLKEM_DU"
|
|
76
77
|
#endif
|
|
77
78
|
}
|
|
79
|
+
#endif /* !MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API */
|
|
78
80
|
|
|
81
|
+
#if !defined(MLK_CONFIG_NO_DECAPS_API)
|
|
79
82
|
#define mlk_poly_decompress_du MLK_NAMESPACE_K(poly_decompress_du)
|
|
80
83
|
/**
|
|
81
84
|
* De-serialization and subsequent decompression (du bits) of a polynomial;
|
|
@@ -108,7 +111,9 @@ __contract__(
|
|
|
108
111
|
#error "Invalid value of MLKEM_DU"
|
|
109
112
|
#endif
|
|
110
113
|
}
|
|
114
|
+
#endif /* !MLK_CONFIG_NO_DECAPS_API */
|
|
111
115
|
|
|
116
|
+
#if !defined(MLK_CONFIG_NO_ENCAPS_API) || !defined(MLK_CONFIG_NO_DECAPS_API)
|
|
112
117
|
#define mlk_poly_compress_dv MLK_NAMESPACE_K(poly_compress_dv)
|
|
113
118
|
/**
|
|
114
119
|
* Compression (dv bits) and subsequent serialization of a polynomial.
|
|
@@ -138,8 +143,10 @@ __contract__(
|
|
|
138
143
|
#error "Invalid value of MLKEM_DV"
|
|
139
144
|
#endif
|
|
140
145
|
}
|
|
146
|
+
#endif /* !MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API */
|
|
141
147
|
|
|
142
148
|
|
|
149
|
+
#if !defined(MLK_CONFIG_NO_DECAPS_API)
|
|
143
150
|
#define mlk_poly_decompress_dv MLK_NAMESPACE_K(poly_decompress_dv)
|
|
144
151
|
/**
|
|
145
152
|
* De-serialization and subsequent decompression (dv bits) of a polynomial;
|
|
@@ -172,7 +179,9 @@ __contract__(
|
|
|
172
179
|
#error "Invalid value of MLKEM_DV"
|
|
173
180
|
#endif
|
|
174
181
|
}
|
|
182
|
+
#endif /* !MLK_CONFIG_NO_DECAPS_API */
|
|
175
183
|
|
|
184
|
+
#if !defined(MLK_CONFIG_NO_ENCAPS_API) || !defined(MLK_CONFIG_NO_DECAPS_API)
|
|
176
185
|
#define mlk_polyvec_compress_du MLK_NAMESPACE_K(polyvec_compress_du)
|
|
177
186
|
/**
|
|
178
187
|
* Compress and serialize a vector of polynomials.
|
|
@@ -196,7 +205,9 @@ __contract__(
|
|
|
196
205
|
array_bound(a->vec[k0].coeffs, 0, MLKEM_N, 0, MLKEM_Q)))
|
|
197
206
|
assigns(memory_slice(r, MLKEM_POLYVECCOMPRESSEDBYTES_DU))
|
|
198
207
|
);
|
|
208
|
+
#endif /* !MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API */
|
|
199
209
|
|
|
210
|
+
#if !defined(MLK_CONFIG_NO_DECAPS_API)
|
|
200
211
|
#define mlk_polyvec_decompress_du MLK_NAMESPACE_K(polyvec_decompress_du)
|
|
201
212
|
/**
|
|
202
213
|
* De-serialize and decompress a vector of polynomials; approximate inverse
|
|
@@ -221,7 +232,9 @@ __contract__(
|
|
|
221
232
|
ensures(forall(k0, 0, MLKEM_K,
|
|
222
233
|
array_bound(r->vec[k0].coeffs, 0, MLKEM_N, 0, MLKEM_Q)))
|
|
223
234
|
);
|
|
235
|
+
#endif /* !MLK_CONFIG_NO_DECAPS_API */
|
|
224
236
|
|
|
237
|
+
#if !defined(MLK_CONFIG_NO_KEYPAIR_API) || !defined(MLK_CONFIG_NO_ENCAPS_API)
|
|
225
238
|
#define mlk_polyvec_tobytes MLK_NAMESPACE_K(polyvec_tobytes)
|
|
226
239
|
/**
|
|
227
240
|
* Serialize a vector of polynomials.
|
|
@@ -243,7 +256,9 @@ __contract__(
|
|
|
243
256
|
array_bound(a->vec[k0].coeffs, 0, MLKEM_N, 0, MLKEM_Q)))
|
|
244
257
|
assigns(memory_slice(r, MLKEM_POLYVECBYTES))
|
|
245
258
|
);
|
|
259
|
+
#endif /* !MLK_CONFIG_NO_KEYPAIR_API || !MLK_CONFIG_NO_ENCAPS_API */
|
|
246
260
|
|
|
261
|
+
#if !defined(MLK_CONFIG_NO_ENCAPS_API) || !defined(MLK_CONFIG_NO_DECAPS_API)
|
|
247
262
|
#define mlk_polyvec_frombytes MLK_NAMESPACE_K(polyvec_frombytes)
|
|
248
263
|
/**
|
|
249
264
|
* De-serialize a vector of polynomials; inverse of mlk_polyvec_tobytes.
|
|
@@ -265,6 +280,7 @@ __contract__(
|
|
|
265
280
|
ensures(forall(k0, 0, MLKEM_K,
|
|
266
281
|
array_bound(r->vec[k0].coeffs, 0, MLKEM_N, 0, MLKEM_UINT12_LIMIT)))
|
|
267
282
|
);
|
|
283
|
+
#endif /* !MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API */
|
|
268
284
|
|
|
269
285
|
#define mlk_polyvec_ntt MLK_NAMESPACE_K(polyvec_ntt)
|
|
270
286
|
/**
|
|
@@ -292,6 +308,7 @@ __contract__(
|
|
|
292
308
|
array_abs_bound(r->vec[j].coeffs, 0, MLKEM_N, MLK_NTT_BOUND)))
|
|
293
309
|
);
|
|
294
310
|
|
|
311
|
+
#if !defined(MLK_CONFIG_NO_ENCAPS_API) || !defined(MLK_CONFIG_NO_DECAPS_API)
|
|
295
312
|
#define mlk_polyvec_invntt_tomont MLK_NAMESPACE_K(polyvec_invntt_tomont)
|
|
296
313
|
/**
|
|
297
314
|
* Apply inverse NTT to all elements of a vector of polynomials and multiply
|
|
@@ -316,6 +333,7 @@ __contract__(
|
|
|
316
333
|
ensures(forall(j, 0, MLKEM_K,
|
|
317
334
|
array_abs_bound(r->vec[j].coeffs, 0, MLKEM_N, MLK_INVNTT_BOUND)))
|
|
318
335
|
);
|
|
336
|
+
#endif /* !MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API */
|
|
319
337
|
|
|
320
338
|
#define mlk_polyvec_basemul_acc_montgomery_cached \
|
|
321
339
|
MLK_NAMESPACE_K(polyvec_basemul_acc_montgomery_cached)
|
|
@@ -442,6 +460,7 @@ __contract__(
|
|
|
442
460
|
assigns(memory_slice(r, sizeof(mlk_polyvec)))
|
|
443
461
|
);
|
|
444
462
|
|
|
463
|
+
#if !defined(MLK_CONFIG_NO_KEYPAIR_API)
|
|
445
464
|
#define mlk_polyvec_tomont MLK_NAMESPACE_K(polyvec_tomont)
|
|
446
465
|
/**
|
|
447
466
|
* In-place conversion of all coefficients of a polynomial vector from the
|
|
@@ -463,7 +482,11 @@ __contract__(
|
|
|
463
482
|
ensures(forall(j, 0, MLKEM_K,
|
|
464
483
|
array_abs_bound(r->vec[j].coeffs, 0, MLKEM_N, MLKEM_Q)))
|
|
465
484
|
);
|
|
485
|
+
#endif /* !MLK_CONFIG_NO_KEYPAIR_API */
|
|
466
486
|
|
|
487
|
+
#if !defined(MLK_CONFIG_NO_KEYPAIR_API) || \
|
|
488
|
+
(MLKEM_ETA1 == MLKEM_ETA2 && (!defined(MLK_CONFIG_NO_ENCAPS_API) || \
|
|
489
|
+
!defined(MLK_CONFIG_NO_DECAPS_API)))
|
|
467
490
|
#define mlk_poly_getnoise_eta1_4x MLK_NAMESPACE_K(poly_getnoise_eta1_4x)
|
|
468
491
|
/**
|
|
469
492
|
* Batch sample four polynomials deterministically from a seed and nonces,
|
|
@@ -515,8 +538,11 @@ __contract__(
|
|
|
515
538
|
*/
|
|
516
539
|
#define mlk_poly_getnoise_eta2_4x mlk_poly_getnoise_eta1_4x
|
|
517
540
|
#endif /* MLKEM_ETA1 == MLKEM_ETA2 */
|
|
541
|
+
#endif /* !MLK_CONFIG_NO_KEYPAIR_API || (MLKEM_ETA1 == MLKEM_ETA2 && \
|
|
542
|
+
(!MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API)) */
|
|
518
543
|
|
|
519
|
-
#if MLKEM_K == 2 || MLKEM_K == 4
|
|
544
|
+
#if (MLKEM_K == 2 || MLKEM_K == 4) && \
|
|
545
|
+
(!defined(MLK_CONFIG_NO_ENCAPS_API) || !defined(MLK_CONFIG_NO_DECAPS_API))
|
|
520
546
|
#define mlk_poly_getnoise_eta2 MLK_NAMESPACE_K(poly_getnoise_eta2)
|
|
521
547
|
/**
|
|
522
548
|
* Sample a polynomial deterministically from a seed and a nonce, with
|
|
@@ -541,9 +567,11 @@ __contract__(
|
|
|
541
567
|
assigns(memory_slice(r, sizeof(mlk_poly)))
|
|
542
568
|
ensures(array_abs_bound(r->coeffs, 0, MLKEM_N, MLKEM_ETA2 + 1))
|
|
543
569
|
);
|
|
544
|
-
#endif /* MLKEM_K == 2 || MLKEM_K == 4
|
|
570
|
+
#endif /* (MLKEM_K == 2 || MLKEM_K == 4) && (!MLK_CONFIG_NO_ENCAPS_API || \
|
|
571
|
+
!MLK_CONFIG_NO_DECAPS_API) */
|
|
545
572
|
|
|
546
|
-
#if MLKEM_K == 2
|
|
573
|
+
#if MLKEM_K == 2 && \
|
|
574
|
+
(!defined(MLK_CONFIG_NO_ENCAPS_API) || !defined(MLK_CONFIG_NO_DECAPS_API))
|
|
547
575
|
#define mlk_poly_getnoise_eta1122_4x MLK_NAMESPACE_K(poly_getnoise_eta1122_4x)
|
|
548
576
|
/**
|
|
549
577
|
* Batch sample four polynomials deterministically from a seed and nonces,
|
|
@@ -588,6 +616,7 @@ __contract__(
|
|
|
588
616
|
&& array_abs_bound(r2->coeffs,0, MLKEM_N, MLKEM_ETA2 + 1)
|
|
589
617
|
&& array_abs_bound(r3->coeffs,0, MLKEM_N, MLKEM_ETA2 + 1))
|
|
590
618
|
);
|
|
591
|
-
#endif /* MLKEM_K == 2
|
|
619
|
+
#endif /* MLKEM_K == 2 && (!MLK_CONFIG_NO_ENCAPS_API || \
|
|
620
|
+
!MLK_CONFIG_NO_DECAPS_API) */
|
|
592
621
|
|
|
593
622
|
#endif /* !MLK_POLY_K_H */
|
|
@@ -251,6 +251,8 @@ void mlk_poly_rej_uniform(mlk_poly *entry, uint8_t seed[MLKEM_SYMBYTES + 2])
|
|
|
251
251
|
mlk_zeroize(buf, sizeof(buf));
|
|
252
252
|
}
|
|
253
253
|
|
|
254
|
+
#if defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_ETA1 == 2 || \
|
|
255
|
+
!defined(MLK_CONFIG_NO_ENCAPS_API) || !defined(MLK_CONFIG_NO_DECAPS_API)
|
|
254
256
|
/**
|
|
255
257
|
* Load 4 bytes into a 32-bit integer in little-endian order.
|
|
256
258
|
*
|
|
@@ -300,6 +302,8 @@ void mlk_poly_cbd2(mlk_poly *r, const uint8_t buf[2 * MLKEM_N / 4])
|
|
|
300
302
|
}
|
|
301
303
|
}
|
|
302
304
|
}
|
|
305
|
+
#endif /* MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_ETA1 == 2 || \
|
|
306
|
+
!MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API */
|
|
303
307
|
|
|
304
308
|
#if defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_ETA1 == 3
|
|
305
309
|
/**
|
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
#include "common.h"
|
|
20
20
|
#include "poly.h"
|
|
21
21
|
|
|
22
|
+
#if defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_ETA1 == 2 || \
|
|
23
|
+
!defined(MLK_CONFIG_NO_ENCAPS_API) || !defined(MLK_CONFIG_NO_DECAPS_API)
|
|
22
24
|
#define mlk_poly_cbd2 MLK_NAMESPACE(poly_cbd2)
|
|
23
25
|
/**
|
|
24
26
|
* Given an array of uniformly random bytes, compute a polynomial with
|
|
@@ -32,6 +34,8 @@
|
|
|
32
34
|
*/
|
|
33
35
|
MLK_INTERNAL_API
|
|
34
36
|
void mlk_poly_cbd2(mlk_poly *r, const uint8_t buf[2 * MLKEM_N / 4]);
|
|
37
|
+
#endif /* MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_ETA1 == 2 || \
|
|
38
|
+
!MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API */
|
|
35
39
|
|
|
36
40
|
#if defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_ETA1 == 3
|
|
37
41
|
#define mlk_poly_cbd3 MLK_NAMESPACE(poly_cbd3)
|
|
@@ -37,6 +37,21 @@
|
|
|
37
37
|
#define MLK_SYS_AARCH64
|
|
38
38
|
#endif
|
|
39
39
|
|
|
40
|
+
/* Check if the AArch64 compilation target supports NEON (Advanced SIMD).
|
|
41
|
+
*
|
|
42
|
+
* Some compilers also define __ARM_NEON__, but __ARM_NEON is the most reliable
|
|
43
|
+
* signal. Specifically, clang on Apple appears to keep __ARM_NEON__ set even if
|
|
44
|
+
* -march=armv8-a+nosimd is set.
|
|
45
|
+
*
|
|
46
|
+
* gcc 4.8 -- the first gcc version introducing Neon support -- sets neither
|
|
47
|
+
* __ARM_NEON nor __ARM_NEON__; in fact, there is no preprocessor signal that
|
|
48
|
+
* Neon is enabled. If you use gcc 4.8, you should set __ARM_NEON manually.
|
|
49
|
+
* gcc 4.9 onwards do set __ARM_NEON.
|
|
50
|
+
*/
|
|
51
|
+
#if defined(MLK_SYS_AARCH64) && defined(__ARM_NEON)
|
|
52
|
+
#define MLK_SYS_AARCH64_NEON
|
|
53
|
+
#endif
|
|
54
|
+
|
|
40
55
|
/* Check if we're running on an AArch64 big endian system. */
|
|
41
56
|
#if defined(__AARCH64EB__)
|
|
42
57
|
#define MLK_SYS_AARCH64_EB
|
|
@@ -275,7 +290,10 @@ typedef enum
|
|
|
275
290
|
/* x86_64 */
|
|
276
291
|
MLK_SYS_CAP_AVX2,
|
|
277
292
|
/* AArch64 */
|
|
278
|
-
|
|
293
|
+
MLK_SYS_CAP_NEON,
|
|
294
|
+
MLK_SYS_CAP_SHA3,
|
|
295
|
+
/* Armv8.1-M */
|
|
296
|
+
MLK_SYS_CAP_MVE
|
|
279
297
|
} mlk_sys_cap;
|
|
280
298
|
|
|
281
299
|
#if !defined(MLK_CONFIG_CUSTOM_CAPABILITY_FUNC)
|
data/lib/pq_crypto/version.rb
CHANGED
data/script/vendor_libs.rb
CHANGED
|
@@ -13,9 +13,9 @@ MANIFEST_PATH = File.join(VENDOR_DIR, ".vendored")
|
|
|
13
13
|
PINS = {
|
|
14
14
|
mlkem: {
|
|
15
15
|
repo: "https://github.com/pq-code-package/mlkem-native.git",
|
|
16
|
-
ref: "v1.
|
|
17
|
-
commit: "
|
|
18
|
-
tree_sha256: "
|
|
16
|
+
ref: "v1.3.0",
|
|
17
|
+
commit: "398050c877ff4353c96305c6434b63528accfc37",
|
|
18
|
+
tree_sha256: "3cd7af93cde256f73ce5ffde3ac3accd31e4361616e275f1bf1c39d462c2149e",
|
|
19
19
|
target: "mlkem-native",
|
|
20
20
|
source_dir: "mlkem"
|
|
21
21
|
},
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pq_crypto
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.6.
|
|
4
|
+
version: 0.6.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Roman Haydarov
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: rake
|
|
@@ -210,6 +209,7 @@ files:
|
|
|
210
209
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/common.h
|
|
211
210
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/compress.c
|
|
212
211
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/compress.h
|
|
212
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/context.h
|
|
213
213
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/debug.c
|
|
214
214
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/debug.h
|
|
215
215
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/fips202.c
|
|
@@ -237,9 +237,9 @@ files:
|
|
|
237
237
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h
|
|
238
238
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S
|
|
239
239
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.c
|
|
240
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_state_extract_bytes_mve.S
|
|
241
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_state_xor_bytes_mve.S
|
|
240
242
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/keccakf1600_round_constants.c
|
|
241
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x4_mve.S
|
|
242
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x4_mve.S
|
|
243
243
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/auto.h
|
|
244
244
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/keccak_f1600_x4_avx2.h
|
|
245
245
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/src/fips202_native_x86_64.h
|
|
@@ -253,16 +253,16 @@ files:
|
|
|
253
253
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/meta.h
|
|
254
254
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/aarch64_zetas.c
|
|
255
255
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/arith_native_aarch64.h
|
|
256
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/
|
|
257
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/
|
|
258
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/
|
|
259
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/
|
|
260
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/
|
|
261
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/
|
|
262
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/
|
|
263
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/
|
|
264
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/
|
|
265
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/
|
|
256
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/mlkem_intt_aarch64_asm.S
|
|
257
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/mlkem_ntt_aarch64_asm.S
|
|
258
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/mlkem_poly_mulcache_compute_aarch64_asm.S
|
|
259
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/mlkem_poly_reduce_aarch64_asm.S
|
|
260
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/mlkem_poly_tobytes_aarch64_asm.S
|
|
261
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/mlkem_poly_tomont_aarch64_asm.S
|
|
262
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm.S
|
|
263
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm.S
|
|
264
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm.S
|
|
265
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/mlkem_rej_uniform_aarch64_asm.S
|
|
266
266
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/rej_uniform_table.c
|
|
267
267
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/api.h
|
|
268
268
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/meta.h
|
|
@@ -271,10 +271,10 @@ files:
|
|
|
271
271
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/arith_native_ppc64le.h
|
|
272
272
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/consts.c
|
|
273
273
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/consts.h
|
|
274
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/
|
|
275
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/
|
|
276
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/
|
|
277
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/
|
|
274
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/mlkem_intt_ppc_asm.S
|
|
275
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/mlkem_ntt_ppc_asm.S
|
|
276
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/mlkem_poly_tomont_ppc_asm.S
|
|
277
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/mlkem_reduce_ppc_asm.S
|
|
278
278
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/README.md
|
|
279
279
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/meta.h
|
|
280
280
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/arith_native_riscv64.h
|
|
@@ -291,27 +291,27 @@ files:
|
|
|
291
291
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/compress_consts.h
|
|
292
292
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/consts.c
|
|
293
293
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/consts.h
|
|
294
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/
|
|
295
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/
|
|
296
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/
|
|
297
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/
|
|
298
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/
|
|
299
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/
|
|
300
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/
|
|
301
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/
|
|
302
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/
|
|
303
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/
|
|
304
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/
|
|
305
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/
|
|
306
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/
|
|
307
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/
|
|
308
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/
|
|
309
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/
|
|
310
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/
|
|
311
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/
|
|
312
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/
|
|
294
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mlkem_intt_avx2_asm.S
|
|
295
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mlkem_ntt_avx2_asm.S
|
|
296
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mlkem_nttfrombytes_avx2_asm.S
|
|
297
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mlkem_ntttobytes_avx2_asm.S
|
|
298
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mlkem_nttunpack_avx2_asm.S
|
|
299
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mlkem_poly_compress_d10_avx2_asm.S
|
|
300
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mlkem_poly_compress_d11_avx2_asm.S
|
|
301
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mlkem_poly_compress_d4_avx2_asm.S
|
|
302
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mlkem_poly_compress_d5_avx2_asm.S
|
|
303
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mlkem_poly_decompress_d10_avx2_asm.S
|
|
304
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mlkem_poly_decompress_d11_avx2_asm.S
|
|
305
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mlkem_poly_decompress_d4_avx2_asm.S
|
|
306
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mlkem_poly_decompress_d5_avx2_asm.S
|
|
307
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mlkem_poly_mulcache_compute_avx2_asm.S
|
|
308
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_avx2_asm.S
|
|
309
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_avx2_asm.S
|
|
310
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_avx2_asm.S
|
|
311
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mlkem_reduce_avx2_asm.S
|
|
312
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mlkem_rej_uniform_avx2_asm.S
|
|
313
|
+
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mlkem_tomont_avx2_asm.S
|
|
313
314
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/rej_uniform_table.c
|
|
314
|
-
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/tomont_avx2_asm.S
|
|
315
315
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/params.h
|
|
316
316
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly.c
|
|
317
317
|
- ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly.h
|
|
@@ -348,7 +348,6 @@ metadata:
|
|
|
348
348
|
homepage_uri: https://github.com/roman-haidarov/pq_crypto
|
|
349
349
|
source_code_uri: https://github.com/roman-haidarov/pq_crypto/tree/main
|
|
350
350
|
changelog_uri: https://github.com/roman-haidarov/pq_crypto/blob/main/CHANGELOG.md
|
|
351
|
-
post_install_message:
|
|
352
351
|
rdoc_options: []
|
|
353
352
|
require_paths:
|
|
354
353
|
- lib
|
|
@@ -363,8 +362,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
363
362
|
- !ruby/object:Gem::Version
|
|
364
363
|
version: '0'
|
|
365
364
|
requirements: []
|
|
366
|
-
rubygems_version: 3.
|
|
367
|
-
signing_key:
|
|
365
|
+
rubygems_version: 3.6.7
|
|
368
366
|
specification_version: 4
|
|
369
367
|
summary: Primitive-first post-quantum cryptography for Ruby
|
|
370
368
|
test_files: []
|