private_key
const uint8_t private_key[ED25519_PRIVATE_KEY_LENGTH]) {
SHA512(private_key, 32, az);
const uint8_t private_key[ED25519_PRIVATE_KEY_LENGTH]) {
SHA512(private_key, 32, az);
const uint8_t private_key[32])
memcpy(e, private_key, 32);
const uint8_t private_key[X25519_KEY_LENGTH])
x25519_scalar_mult(out_public_key, private_key, kMongomeryBasePoint);
const uint8_t private_key[X25519_KEY_LENGTH],
x25519_scalar_mult(out_shared_key, private_key, peer_public_key);
const uint8_t private_key[X25519_KEY_LENGTH],
const uint8_t private_key[32]);
const uint8_t private_key[32]);
const uint8_t private_key[32]);
const BIGNUM *private_key;
if ((private_key = EC_KEY_get0_private_key(ec_key)) == NULL) {
if (!ec_asn1_encode_private_key(group, private_key, ec_privatekey->privateKey))
const unsigned char *private_key, size_t len);
int enc_key_len, EVP_PKEY *private_key);
int (*set_priv_key)(EVP_PKEY *pk, const unsigned char *private_key,
const unsigned char *private_key, size_t len)
if (!pkey->ameth->set_priv_key(pkey, private_key, len)) {
MLKEM_generate_key(MLKEM_private_key *private_key,
if (!MLKEM_generate_key_external_entropy(private_key,
MLKEM_private_key_from_seed(MLKEM_private_key *private_key,
if (!private_key_is_new(private_key))
if (!mlkem_private_key_from_seed(seed, seed_len, private_key))
private_key->state = MLKEM_PRIVATE_KEY_INITIALIZED;
MLKEM_public_from_private(const MLKEM_private_key *private_key,
if (!private_key_is_valid(private_key))
if (public_key->rank != private_key->rank)
mlkem_public_from_private(private_key, public_key);
MLKEM_decap(const MLKEM_private_key *private_key,
if (!private_key_is_valid(private_key))
if (ciphertext_len != MLKEM_private_key_ciphertext_length(private_key))
mlkem_decap(private_key, ciphertext, ciphertext_len, s);
MLKEM_marshal_private_key(const MLKEM_private_key *private_key, uint8_t **out,
if (!private_key_is_valid(private_key))
return mlkem_marshal_private_key(private_key, out, out_len);
MLKEM_parse_private_key(MLKEM_private_key *private_key, const uint8_t *in,
if (!private_key_is_new(private_key))
if (in_len != MLKEM_private_key_encoded_length(private_key))
if (!mlkem_parse_private_key(in, in_len, private_key))
private_key->state = MLKEM_PRIVATE_KEY_INITIALIZED;
MLKEM_generate_key_external_entropy(MLKEM_private_key *private_key,
if (!private_key_is_new(private_key))
if (private_key->rank == MLKEM1024_RANK)
if (!mlkem_generate_key_external_entropy(k, private_key, entropy))
private_key->state = MLKEM_PRIVATE_KEY_INITIALIZED;
int MLKEM_generate_key(MLKEM_private_key *private_key,
int MLKEM_private_key_from_seed(MLKEM_private_key *private_key,
int MLKEM_public_from_private(const MLKEM_private_key *private_key,
int MLKEM_decap(const MLKEM_private_key *private_key,
int MLKEM_marshal_private_key(const MLKEM_private_key *private_key,
int MLKEM_parse_private_key(MLKEM_private_key *private_key, const uint8_t *in,
decrypt_cpa(uint8_t out[32], const struct private_key *priv,
mlkem_decap(const MLKEM_private_key *private_key, const uint8_t *ciphertext,
struct private_key priv;
size_t expected_ciphertext_length = private_key->rank == MLKEM768_RANK ?
private_key_from_external(private_key, &priv);
decrypt_cpa(decrypted, &priv, ciphertext, private_key->rank);
key_and_randomness + 32, private_key->rank);
mlkem_marshal_private_key(const MLKEM_private_key *private_key,
struct private_key priv;
size_t key_length = private_key->rank == MLKEM768_RANK ?
private_key_from_external(private_key, &priv);
if (!vector_encode_cbb(&cbb, priv.s, kLog2Prime, private_key->rank))
private_key->rank))
struct private_key priv;
struct private_key *priv)
struct private_key priv;
mlkem_public_from_private(const MLKEM_private_key *private_key,
switch (private_key->rank) {
private_key->key_768->bytes,
private_key->key_1024->bytes,
void mlkem_public_from_private(const MLKEM_private_key *private_key,
int mlkem_decap(const MLKEM_private_key *private_key,
int mlkem_marshal_private_key(const MLKEM_private_key *private_key,
int MLKEM_generate_key_external_entropy(MLKEM_private_key *private_key,
const uint8_t *private_key, const uint8_t *signature)
hexdump(private_key, ED25519_PRIVATE_KEY_LENGTH);
uint8_t private_key[ED25519_PRIVATE_KEY_LENGTH];
ED25519_keypair(public_key, private_key);
public_key, private_key)) {
dump_info(message, sizeof(message), public_key, private_key,
dump_info(message, sizeof(message), public_key, private_key,
dump_info(message, sizeof(message), public_key, private_key,
uint8_t out[32], private_key[32];
memset(private_key, 0x11, sizeof(private_key));
if (X25519(out, private_key, kSmallOrderPoint)) {
CBS ciphertext, shared_secret, private_key;
parse_get_cbs(p, DECAP_PRIVATE_KEY, &private_key);
CBS_data(&private_key), CBS_len(&private_key))) {
CBS seed, public_key, private_key;
parse_get_cbs(p, KEYGEN_PRIVATE_KEY, &private_key);
MLKEM_private_key_encoded_length(priv_key), CBS_len(&private_key)))
failed = !parse_data_equal(p, "private key", &private_key,
bio_pkey = BIO_new_mem_buf((char *)private_key, sizeof(private_key));
const char private_key[] = "\
libcrux_ml_kem_ind_cpa_unpacked_IndCpaPrivateKeyUnpacked_a0 *private_key,
private_key->secret_as_ntt, prf_input, 0U);
public_key->t_as_ntt, public_key->A, private_key->secret_as_ntt,
libcrux_ml_kem_ind_cpa_unpacked_IndCpaPrivateKeyUnpacked_a0 *private_key) {
private_key->secret_as_ntt,
libcrux_ml_kem_ind_cpa_unpacked_IndCpaPrivateKeyUnpacked_a0 private_key =
key_generation_seed, &private_key, &public_key);
&private_key);
Eurydice_slice private_key, Eurydice_slice public_key,
uu____0, uu____1, uu____2 + Eurydice_slice_len(private_key, uint8_t),
private_key, uint8_t);
pointer = pointer + Eurydice_slice_len(private_key, uint8_t);
Eurydice_slice private_key, Eurydice_slice public_key,
private_key, public_key, implicit_rejection_value, out);
libcrux_ml_kem_types_MlKemPrivateKey_d9 private_key =
libcrux_ml_kem_types_MlKemPrivateKey_d9 uu____2 = private_key;
libcrux_ml_kem_types_MlKemPrivateKey_d9 *private_key) {
Eurydice_array_to_subslice3(private_key->value, (size_t)384U * (size_t)3U,
private_key->value, (size_t)768U * (size_t)3U + (size_t)32U,
libcrux_ml_kem_types_MlKemPrivateKey_d9 *private_key,
return libcrux_ml_kem_ind_cca_validate_private_key_only_d6(private_key);
libcrux_ml_kem_types_MlKemPrivateKey_d9 *private_key,
return libcrux_ml_kem_ind_cca_validate_private_key_37(private_key,
libcrux_ml_kem_types_MlKemPrivateKey_d9 *private_key,
private_key, ciphertext);
libcrux_ml_kem_types_MlKemPrivateKey_d9 *private_key) {
return libcrux_ml_kem_ind_cca_validate_private_key_only_d6(private_key);
libcrux_ml_kem_types_MlKemPrivateKey_d9 *private_key) {
private_key);
libcrux_ml_kem_ind_cca_unpacked_MlKemPrivateKeyUnpacked_a0 private_key;
&key_pair->private_key.ind_cpa_private_key, ciphertext->value, decrypted);
(size_t)32U, key_pair->private_key.implicit_rejection_value, uint8_t),
*private_key,
private_key, ciphertext, ret);
ind_cpa_keypair_randomness, &out->private_key.ind_cpa_private_key,
memcpy(out->private_key.implicit_rejection_value, uu____3,
.private_key = uu____0,
libcrux_ml_kem_types_MlKemPrivateKey_d9 *private_key,
Eurydice_array_to_slice((size_t)2400U, private_key->value, uint8_t));
key_pair->private_key.ind_cpa_private_key.secret_as_ntt);
(size_t)32U, key_pair->private_key.implicit_rejection_value, uint8_t),
libcrux_ml_kem_types_MlKemPrivateKey_d9 *private_key,
libcrux_ml_kem_ind_cca_unpacked_keys_from_private_key_42(private_key,
libcrux_ml_kem_types_MlKemPrivateKey_d9 *private_key,
private_key, key_pair);
&self->private_key.ind_cpa_private_key);
(size_t)32U, self->private_key.implicit_rejection_value, uint8_t),
libcrux_ml_kem_types_unpack_private_key_b4(Eurydice_slice private_key) {
private_key, (size_t)1152U, uint8_t, Eurydice_slice_uint8_t_x2);
libcrux_ml_kem_types_MlKemPrivateKey_d9 *private_key,
Eurydice_array_to_slice((size_t)2400U, private_key->value, uint8_t));
libcrux_ml_kem_types_MlKemPrivateKey_d9 *private_key,
libcrux_ml_kem_ind_cca_decapsulate_62(private_key, ciphertext, ret);
libcrux_ml_kem_types_MlKemPrivateKey_d9 *private_key,
private_key, ciphertext, ret);
ck_object_handle_t *private_key));