X25519_KEY_LENGTH
X25519_public_from_private(uint8_t out_public_key[X25519_KEY_LENGTH],
const uint8_t private_key[X25519_KEY_LENGTH])
X25519_keypair(uint8_t out_public_key[X25519_KEY_LENGTH],
uint8_t out_private_key[X25519_KEY_LENGTH])
X25519(uint8_t out_shared_key[X25519_KEY_LENGTH],
const uint8_t private_key[X25519_KEY_LENGTH],
const uint8_t peer_public_key[X25519_KEY_LENGTH])
void X25519_keypair(uint8_t out_public_value[X25519_KEY_LENGTH],
uint8_t out_private_key[X25519_KEY_LENGTH]);
int X25519(uint8_t out_shared_key[X25519_KEY_LENGTH],
const uint8_t private_key[X25519_KEY_LENGTH],
const uint8_t peers_public_value[X25519_KEY_LENGTH]);
freezero(ks->x25519_public, X25519_KEY_LENGTH);
freezero(ks->x25519_private, X25519_KEY_LENGTH);
freezero(ks->x25519_peer_public, X25519_KEY_LENGTH);
if ((public = calloc(1, X25519_KEY_LENGTH)) == NULL)
if ((private = calloc(1, X25519_KEY_LENGTH)) == NULL)
freezero(public, X25519_KEY_LENGTH);
freezero(private, X25519_KEY_LENGTH);
return CBB_add_bytes(cbb, ks->x25519_public, X25519_KEY_LENGTH);
return CBB_add_bytes(cbb, ks->x25519_public, X25519_KEY_LENGTH);
if (CBS_len(cbs) != X25519_KEY_LENGTH) {
if (!CBS_get_bytes(cbs, &x25519_cbs, X25519_KEY_LENGTH))
if (!CBS_get_bytes(cbs, &x25519_cbs, X25519_KEY_LENGTH))
if ((sk = calloc(1, X25519_KEY_LENGTH)) == NULL)
*shared_key_len = X25519_KEY_LENGTH;
freezero(sk, X25519_KEY_LENGTH);
if (!CBB_init(&cbb, ks->mlkem_shared_secret_len + X25519_KEY_LENGTH))
if (!CBB_add_space(&cbb, &x25519_shared_key, X25519_KEY_LENGTH))