27#ifndef OCRYPTO_ML_KEM512_H
28#define OCRYPTO_ML_KEM512_H
43#define ocrypto_ml_kem512_SK_SIZE ((2 * 384) + (2 * 384 + 32) + 64)
48#define ocrypto_ml_kem512_PK_SIZE (2 * 384 + 32)
53#define ocrypto_ml_kem512_CT_SIZE ((2 * 10 + 4) * 32)
58 ocrypto_sha3_ctx sha3;
62} ocrypto_ml_kem512_ctx;
76 ocrypto_ml_kem512_ctx *ctx,
101 ocrypto_ml_kem512_ctx *ctx,
105 const uint8_t m[32]);
116 ocrypto_ml_kem512_ctx *ctx,
#define ocrypto_ml_kem512_PK_SIZE
Definition ocrypto_ml_kem512.h:48
#define ocrypto_ml_kem512_SK_SIZE
Definition ocrypto_ml_kem512.h:43
int ocrypto_ml_kem512_check_key(const uint8_t pk[(2 *384+32)])
void ocrypto_ml_kem512_key_pair(ocrypto_ml_kem512_ctx *ctx, uint8_t sk[((2 *384)+(2 *384+32)+64)], uint8_t pk[(2 *384+32)], const uint8_t d[32], const uint8_t z[32])
#define ocrypto_ml_kem512_CT_SIZE
Definition ocrypto_ml_kem512.h:53
void ocrypto_ml_kem512_encaps(ocrypto_ml_kem512_ctx *ctx, uint8_t key[32], uint8_t ct[((2 *10+4) *32)], const uint8_t pk[(2 *384+32)], const uint8_t m[32])
void ocrypto_ml_kem512_decaps(ocrypto_ml_kem512_ctx *ctx, uint8_t key[32], const uint8_t sk[((2 *384)+(2 *384+32)+64)], const uint8_t ct[((2 *10+4) *32)])
SHA3 algorithms, with 224, 256, 384 and 512 bit outputs.