File indexing completed on 2026-08-06 09:38:11
0001 #ifndef crypto_kem_mlkem768_H
0002 #define crypto_kem_mlkem768_H
0003
0004 #include <stddef.h>
0005
0006 #include "export.h"
0007
0008 #ifdef __cplusplus
0009 # ifdef __GNUC__
0010 # pragma GCC diagnostic ignored "-Wlong-long"
0011 # endif
0012 extern "C" {
0013 #endif
0014
0015 #define crypto_kem_mlkem768_PUBLICKEYBYTES 1184U
0016 SODIUM_EXPORT
0017 size_t crypto_kem_mlkem768_publickeybytes(void);
0018
0019 #define crypto_kem_mlkem768_SECRETKEYBYTES 2400U
0020 SODIUM_EXPORT
0021 size_t crypto_kem_mlkem768_secretkeybytes(void);
0022
0023 #define crypto_kem_mlkem768_CIPHERTEXTBYTES 1088U
0024 SODIUM_EXPORT
0025 size_t crypto_kem_mlkem768_ciphertextbytes(void);
0026
0027 #define crypto_kem_mlkem768_SHAREDSECRETBYTES 32U
0028 SODIUM_EXPORT
0029 size_t crypto_kem_mlkem768_sharedsecretbytes(void);
0030
0031 #define crypto_kem_mlkem768_SEEDBYTES 64U
0032 SODIUM_EXPORT
0033 size_t crypto_kem_mlkem768_seedbytes(void);
0034
0035 SODIUM_EXPORT
0036 int crypto_kem_mlkem768_seed_keypair(unsigned char pk[crypto_kem_mlkem768_PUBLICKEYBYTES],
0037 unsigned char sk[crypto_kem_mlkem768_SECRETKEYBYTES],
0038 const unsigned char seed[crypto_kem_mlkem768_SEEDBYTES])
0039 __attribute__((nonnull));
0040
0041 SODIUM_EXPORT
0042 int crypto_kem_mlkem768_keypair(unsigned char pk[crypto_kem_mlkem768_PUBLICKEYBYTES],
0043 unsigned char sk[crypto_kem_mlkem768_SECRETKEYBYTES])
0044 __attribute__((nonnull));
0045
0046 SODIUM_EXPORT
0047 int crypto_kem_mlkem768_enc(unsigned char ct[crypto_kem_mlkem768_CIPHERTEXTBYTES],
0048 unsigned char ss[crypto_kem_mlkem768_SHAREDSECRETBYTES],
0049 const unsigned char pk[crypto_kem_mlkem768_PUBLICKEYBYTES])
0050 __attribute__((warn_unused_result)) __attribute__((nonnull));
0051
0052 SODIUM_EXPORT
0053 int
0054 crypto_kem_mlkem768_enc_deterministic(unsigned char ct[crypto_kem_mlkem768_CIPHERTEXTBYTES],
0055 unsigned char ss[crypto_kem_mlkem768_SHAREDSECRETBYTES],
0056 const unsigned char pk[crypto_kem_mlkem768_PUBLICKEYBYTES],
0057 const unsigned char seed[32])
0058 __attribute__((warn_unused_result)) __attribute__((nonnull));
0059
0060 SODIUM_EXPORT
0061 int crypto_kem_mlkem768_dec(unsigned char ss[crypto_kem_mlkem768_SHAREDSECRETBYTES],
0062 const unsigned char ct[crypto_kem_mlkem768_CIPHERTEXTBYTES],
0063 const unsigned char sk[crypto_kem_mlkem768_SECRETKEYBYTES])
0064 __attribute__((warn_unused_result)) __attribute__((nonnull));
0065
0066 #ifdef __cplusplus
0067 }
0068 #endif
0069
0070 #endif