File indexing completed on 2026-08-06 09:38:11
0001 #ifndef crypto_kem_xwing_H
0002 #define crypto_kem_xwing_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_xwing_PUBLICKEYBYTES 1216U
0016 SODIUM_EXPORT
0017 size_t crypto_kem_xwing_publickeybytes(void);
0018
0019 #define crypto_kem_xwing_SECRETKEYBYTES 32U
0020 SODIUM_EXPORT
0021 size_t crypto_kem_xwing_secretkeybytes(void);
0022
0023 #define crypto_kem_xwing_CIPHERTEXTBYTES 1120U
0024 SODIUM_EXPORT
0025 size_t crypto_kem_xwing_ciphertextbytes(void);
0026
0027 #define crypto_kem_xwing_SHAREDSECRETBYTES 32U
0028 SODIUM_EXPORT
0029 size_t crypto_kem_xwing_sharedsecretbytes(void);
0030
0031 #define crypto_kem_xwing_SEEDBYTES 32U
0032 SODIUM_EXPORT
0033 size_t crypto_kem_xwing_seedbytes(void);
0034
0035 SODIUM_EXPORT
0036 int crypto_kem_xwing_seed_keypair(unsigned char pk[crypto_kem_xwing_PUBLICKEYBYTES],
0037 unsigned char sk[crypto_kem_xwing_SECRETKEYBYTES],
0038 const unsigned char seed[crypto_kem_xwing_SEEDBYTES])
0039 __attribute__((nonnull));
0040
0041 SODIUM_EXPORT
0042 int crypto_kem_xwing_keypair(unsigned char pk[crypto_kem_xwing_PUBLICKEYBYTES],
0043 unsigned char sk[crypto_kem_xwing_SECRETKEYBYTES])
0044 __attribute__((nonnull));
0045
0046 SODIUM_EXPORT
0047 int crypto_kem_xwing_enc(unsigned char ct[crypto_kem_xwing_CIPHERTEXTBYTES],
0048 unsigned char ss[crypto_kem_xwing_SHAREDSECRETBYTES],
0049 const unsigned char pk[crypto_kem_xwing_PUBLICKEYBYTES])
0050 __attribute__((warn_unused_result)) __attribute__((nonnull));
0051
0052 SODIUM_EXPORT
0053 int crypto_kem_xwing_enc_deterministic(unsigned char ct[crypto_kem_xwing_CIPHERTEXTBYTES],
0054 unsigned char ss[crypto_kem_xwing_SHAREDSECRETBYTES],
0055 const unsigned char pk[crypto_kem_xwing_PUBLICKEYBYTES],
0056 const unsigned char seed[64])
0057 __attribute__((warn_unused_result)) __attribute__((nonnull));
0058
0059 SODIUM_EXPORT
0060 int crypto_kem_xwing_dec(unsigned char ss[crypto_kem_xwing_SHAREDSECRETBYTES],
0061 const unsigned char ct[crypto_kem_xwing_CIPHERTEXTBYTES],
0062 const unsigned char sk[crypto_kem_xwing_SECRETKEYBYTES])
0063 __attribute__((warn_unused_result)) __attribute__((nonnull));
0064
0065 #ifdef __cplusplus
0066 }
0067 #endif
0068
0069 #endif