27#ifndef OCRYPTO_ML_KEM768_H
28#define OCRYPTO_ML_KEM768_H
43#define ocrypto_ml_kem768_SK_SIZE ((3 * 384) + (3 * 384 + 32) + 64)
48#define ocrypto_ml_kem768_PK_SIZE (3 * 384 + 32)
53#define ocrypto_ml_kem768_CT_SIZE ((3 * 10 + 4) * 32)
58 ocrypto_sha3_ctx sha3;
62} ocrypto_ml_kem768_ctx;
76 ocrypto_ml_kem768_ctx *ctx,
101 ocrypto_ml_kem768_ctx *ctx,
105 const uint8_t m[32]);
116 ocrypto_ml_kem768_ctx *ctx,
#define ocrypto_ml_kem768_CT_SIZE
Definition ocrypto_ml_kem768.h:53
int ocrypto_ml_kem768_check_key(const uint8_t pk[(3 *384+32)])
void ocrypto_ml_kem768_key_pair(ocrypto_ml_kem768_ctx *ctx, uint8_t sk[((3 *384)+(3 *384+32)+64)], uint8_t pk[(3 *384+32)], const uint8_t d[32], const uint8_t z[32])
#define ocrypto_ml_kem768_PK_SIZE
Definition ocrypto_ml_kem768.h:48
void ocrypto_ml_kem768_decaps(ocrypto_ml_kem768_ctx *ctx, uint8_t key[32], const uint8_t sk[((3 *384)+(3 *384+32)+64)], const uint8_t ct[((3 *10+4) *32)])
void ocrypto_ml_kem768_encaps(ocrypto_ml_kem768_ctx *ctx, uint8_t key[32], uint8_t ct[((3 *10+4) *32)], const uint8_t pk[(3 *384+32)], const uint8_t m[32])
#define ocrypto_ml_kem768_SK_SIZE
Definition ocrypto_ml_kem768.h:43
SHA3 algorithms, with 224, 256, 384 and 512 bit outputs.