@@ -55,12 +55,12 @@ keygen(std::span<const uint8_t, 32> d,
55
55
ml_kem_utils::matrix_multiply<k, k, k, 1 >(A_prime, s, t_prime);
56
56
ml_kem_utils::poly_vec_add_to<k>(e, t_prime);
57
57
58
- constexpr size_t pkoff = k * 12 * 32 ;
59
- auto _pubkey0 = pubkey.template subspan <0 , pkoff >();
60
- auto _pubkey1 = pubkey.template subspan <pkoff , 32 >();
58
+ constexpr size_t pubkey_offset = k * 12 * 32 ;
59
+ auto encoded_t_prime_in_pubkey = pubkey.template subspan <0 , pubkey_offset >();
60
+ auto rho_in_pubkey = pubkey.template subspan <pubkey_offset , 32 >();
61
61
62
- ml_kem_utils::poly_vec_encode<k, 12 >(t_prime, _pubkey0 );
63
- std::copy (rho.begin (), rho.end (), _pubkey1 .begin ());
62
+ ml_kem_utils::poly_vec_encode<k, 12 >(t_prime, encoded_t_prime_in_pubkey );
63
+ std::copy (rho.begin (), rho.end (), rho_in_pubkey .begin ());
64
64
ml_kem_utils::poly_vec_encode<k, 12 >(s, seckey);
65
65
}
66
66
@@ -76,21 +76,21 @@ template<size_t k, size_t eta1, size_t eta2, size_t du, size_t dv>
76
76
encrypt (std::span<const uint8_t , ml_kem_utils::get_pke_public_key_len(k)> pubkey,
77
77
std::span<const uint8_t, 32> msg,
78
78
std::span<const uint8_t, 32> rcoin,
79
- std::span<uint8_t, ml_kem_utils::get_pke_cipher_text_len(k, du, dv)> enc )
79
+ std::span<uint8_t, ml_kem_utils::get_pke_cipher_text_len(k, du, dv)> ctxt )
80
80
requires(ml_kem_params::check_encrypt_params(k, eta1, eta2, du, dv))
81
81
{
82
82
constexpr size_t pkoff = k * 12 * 32 ;
83
- auto _pubkey0 = pubkey.template subspan <0 , pkoff>();
83
+ auto encoded_t_prime_in_pubkey = pubkey.template subspan <0 , pkoff>();
84
84
auto rho = pubkey.template subspan <pkoff, 32 >();
85
85
86
86
std::array<ml_kem_field::zq_t , k * ml_kem_ntt::N> t_prime{};
87
- std::array<uint8_t , _pubkey0 .size ()> encoded_tprime{};
87
+ std::array<uint8_t , encoded_t_prime_in_pubkey .size ()> encoded_tprime{};
88
88
89
- ml_kem_utils::poly_vec_decode<k, 12 >(_pubkey0 , t_prime);
89
+ ml_kem_utils::poly_vec_decode<k, 12 >(encoded_t_prime_in_pubkey , t_prime);
90
90
ml_kem_utils::poly_vec_encode<k, 12 >(t_prime, encoded_tprime);
91
91
92
- using encoded_pkey_t = std::span<const uint8_t , _pubkey0 .size ()>;
93
- const auto are_equal = ml_kem_utils::ct_memcmp (encoded_pkey_t (_pubkey0 ), encoded_pkey_t (encoded_tprime));
92
+ using encoded_pkey_t = std::span<const uint8_t , encoded_t_prime_in_pubkey .size ()>;
93
+ const auto are_equal = ml_kem_utils::ct_memcmp (encoded_pkey_t (encoded_t_prime_in_pubkey ), encoded_pkey_t (encoded_tprime));
94
94
if (are_equal == 0u ) {
95
95
// Got an invalid public key
96
96
return false ;
@@ -131,15 +131,15 @@ encrypt(std::span<const uint8_t, ml_kem_utils::get_pke_public_key_len(k)> pubkey
131
131
ml_kem_utils::poly_decompress<1 >(m);
132
132
ml_kem_utils::poly_vec_add_to<1 >(m, v);
133
133
134
- constexpr size_t encoff = k * du * 32 ;
135
- auto _enc0 = enc .template subspan < 0 , encoff >();
136
- auto _enc1 = enc .template subspan <encoff, dv * 32 >();
134
+ constexpr size_t ctxt_offset = k * du * 32 ;
135
+ auto polyvec_u_in_ctxt = ctxt .template first <ctxt_offset >();
136
+ auto poly_v_in_ctxt = ctxt .template last < dv * 32 >();
137
137
138
138
ml_kem_utils::poly_vec_compress<k, du>(u);
139
- ml_kem_utils::poly_vec_encode<k, du>(u, _enc0 );
139
+ ml_kem_utils::poly_vec_encode<k, du>(u, polyvec_u_in_ctxt );
140
140
141
141
ml_kem_utils::poly_compress<dv>(v);
142
- ml_kem_utils::encode<dv>(v, _enc1 );
142
+ ml_kem_utils::encode<dv>(v, poly_v_in_ctxt );
143
143
144
144
return true ;
145
145
}
@@ -151,22 +151,21 @@ encrypt(std::span<const uint8_t, ml_kem_utils::get_pke_public_key_len(k)> pubkey
151
151
template <size_t k, size_t du, size_t dv>
152
152
constexpr void
153
153
decrypt (std::span<const uint8_t , ml_kem_utils::get_pke_secret_key_len(k)> seckey,
154
- std::span<const uint8_t, ml_kem_utils::get_pke_cipher_text_len(k, du, dv)> enc ,
155
- std::span<uint8_t, 32> dec )
154
+ std::span<const uint8_t, ml_kem_utils::get_pke_cipher_text_len(k, du, dv)> ctxt ,
155
+ std::span<uint8_t, 32> ptxt )
156
156
requires(ml_kem_params::check_decrypt_params(k, du, dv))
157
157
{
158
- constexpr size_t encoff = k * du * 32 ;
159
- auto _enc0 = enc .template subspan <0 , encoff >();
160
- auto _enc1 = enc .template subspan <encoff , dv * 32 >();
158
+ constexpr size_t ctxt_offset = k * du * 32 ;
159
+ auto polyvec_u_in_ctxt = ctxt .template subspan <0 , ctxt_offset >();
160
+ auto poly_v_in_ctxt = ctxt .template subspan <ctxt_offset , dv * 32 >();
161
161
162
162
std::array<ml_kem_field::zq_t , k * ml_kem_ntt::N> u{};
163
+ std::array<ml_kem_field::zq_t , ml_kem_ntt::N> v{};
163
164
164
- ml_kem_utils::poly_vec_decode<k, du>(_enc0 , u);
165
+ ml_kem_utils::poly_vec_decode<k, du>(polyvec_u_in_ctxt , u);
165
166
ml_kem_utils::poly_vec_decompress<k, du>(u);
166
167
167
- std::array<ml_kem_field::zq_t , ml_kem_ntt::N> v{};
168
-
169
- ml_kem_utils::decode<dv>(_enc1, v);
168
+ ml_kem_utils::decode<dv>(poly_v_in_ctxt, v);
170
169
ml_kem_utils::poly_decompress<dv>(v);
171
170
172
171
std::array<ml_kem_field::zq_t , k * ml_kem_ntt::N> s_prime{};
@@ -181,7 +180,7 @@ decrypt(std::span<const uint8_t, ml_kem_utils::get_pke_secret_key_len(k)> seckey
181
180
ml_kem_utils::poly_vec_sub_from<1 >(t, v);
182
181
183
182
ml_kem_utils::poly_compress<1 >(v);
184
- ml_kem_utils::encode<1 >(v, dec );
183
+ ml_kem_utils::encode<1 >(v, ptxt );
185
184
}
186
185
187
186
}
0 commit comments