Back to home page

EIC code displayed by LXR

 
 

    


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