File indexing completed on 2026-08-06 09:38:11
0001 #ifndef crypto_ipcrypt_H
0002 #define crypto_ipcrypt_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_ipcrypt_BYTES 16U
0016 SODIUM_EXPORT
0017 size_t crypto_ipcrypt_bytes(void);
0018
0019 #define crypto_ipcrypt_KEYBYTES 16U
0020 SODIUM_EXPORT
0021 size_t crypto_ipcrypt_keybytes(void);
0022
0023 #define crypto_ipcrypt_ND_KEYBYTES 16U
0024 SODIUM_EXPORT
0025 size_t crypto_ipcrypt_nd_keybytes(void);
0026
0027 #define crypto_ipcrypt_ND_TWEAKBYTES 8U
0028 SODIUM_EXPORT
0029 size_t crypto_ipcrypt_nd_tweakbytes(void);
0030
0031 #define crypto_ipcrypt_ND_INPUTBYTES 16U
0032 SODIUM_EXPORT
0033 size_t crypto_ipcrypt_nd_inputbytes(void);
0034
0035 #define crypto_ipcrypt_ND_OUTPUTBYTES 24U
0036 SODIUM_EXPORT
0037 size_t crypto_ipcrypt_nd_outputbytes(void);
0038
0039 #define crypto_ipcrypt_NDX_KEYBYTES 32U
0040 SODIUM_EXPORT
0041 size_t crypto_ipcrypt_ndx_keybytes(void);
0042
0043 #define crypto_ipcrypt_NDX_TWEAKBYTES 16U
0044 SODIUM_EXPORT
0045 size_t crypto_ipcrypt_ndx_tweakbytes(void);
0046
0047 #define crypto_ipcrypt_NDX_INPUTBYTES 16U
0048 SODIUM_EXPORT
0049 size_t crypto_ipcrypt_ndx_inputbytes(void);
0050
0051 #define crypto_ipcrypt_NDX_OUTPUTBYTES 32U
0052 SODIUM_EXPORT
0053 size_t crypto_ipcrypt_ndx_outputbytes(void);
0054
0055 #define crypto_ipcrypt_PFX_KEYBYTES 32U
0056 SODIUM_EXPORT
0057 size_t crypto_ipcrypt_pfx_keybytes(void);
0058
0059 #define crypto_ipcrypt_PFX_BYTES 16U
0060 SODIUM_EXPORT
0061 size_t crypto_ipcrypt_pfx_bytes(void);
0062
0063 SODIUM_EXPORT
0064 void crypto_ipcrypt_keygen(unsigned char k[crypto_ipcrypt_KEYBYTES]) __attribute__((nonnull));
0065
0066 SODIUM_EXPORT
0067 void crypto_ipcrypt_nd_keygen(unsigned char k[crypto_ipcrypt_ND_KEYBYTES])
0068 __attribute__((nonnull));
0069
0070 SODIUM_EXPORT
0071 void crypto_ipcrypt_ndx_keygen(unsigned char k[crypto_ipcrypt_NDX_KEYBYTES])
0072 __attribute__((nonnull));
0073
0074 SODIUM_EXPORT
0075 void crypto_ipcrypt_pfx_keygen(unsigned char k[crypto_ipcrypt_PFX_KEYBYTES])
0076 __attribute__((nonnull));
0077
0078 SODIUM_EXPORT
0079 void crypto_ipcrypt_encrypt(unsigned char out[crypto_ipcrypt_BYTES],
0080 const unsigned char in[crypto_ipcrypt_BYTES],
0081 const unsigned char k[crypto_ipcrypt_KEYBYTES])
0082 __attribute__((nonnull));
0083
0084 SODIUM_EXPORT
0085 void crypto_ipcrypt_decrypt(unsigned char out[crypto_ipcrypt_BYTES],
0086 const unsigned char in[crypto_ipcrypt_BYTES],
0087 const unsigned char k[crypto_ipcrypt_KEYBYTES])
0088 __attribute__((nonnull));
0089
0090 SODIUM_EXPORT
0091 void crypto_ipcrypt_nd_encrypt(unsigned char out[crypto_ipcrypt_ND_OUTPUTBYTES],
0092 const unsigned char in[crypto_ipcrypt_ND_INPUTBYTES],
0093 const unsigned char t[crypto_ipcrypt_ND_TWEAKBYTES],
0094 const unsigned char k[crypto_ipcrypt_ND_KEYBYTES])
0095 __attribute__((nonnull));
0096
0097 SODIUM_EXPORT
0098 void crypto_ipcrypt_nd_decrypt(unsigned char out[crypto_ipcrypt_ND_INPUTBYTES],
0099 const unsigned char in[crypto_ipcrypt_ND_OUTPUTBYTES],
0100 const unsigned char k[crypto_ipcrypt_ND_KEYBYTES])
0101 __attribute__((nonnull));
0102
0103 SODIUM_EXPORT
0104 void crypto_ipcrypt_ndx_encrypt(unsigned char out[crypto_ipcrypt_NDX_OUTPUTBYTES],
0105 const unsigned char in[crypto_ipcrypt_NDX_INPUTBYTES],
0106 const unsigned char t[crypto_ipcrypt_NDX_TWEAKBYTES],
0107 const unsigned char k[crypto_ipcrypt_NDX_KEYBYTES])
0108 __attribute__((nonnull));
0109
0110 SODIUM_EXPORT
0111 void crypto_ipcrypt_ndx_decrypt(unsigned char out[crypto_ipcrypt_NDX_INPUTBYTES],
0112 const unsigned char in[crypto_ipcrypt_NDX_OUTPUTBYTES],
0113 const unsigned char k[crypto_ipcrypt_NDX_KEYBYTES])
0114 __attribute__((nonnull));
0115
0116 SODIUM_EXPORT
0117 void crypto_ipcrypt_pfx_encrypt(unsigned char out[crypto_ipcrypt_PFX_BYTES],
0118 const unsigned char in[crypto_ipcrypt_PFX_BYTES],
0119 const unsigned char k[crypto_ipcrypt_PFX_KEYBYTES])
0120 __attribute__((nonnull));
0121
0122 SODIUM_EXPORT
0123 void crypto_ipcrypt_pfx_decrypt(unsigned char out[crypto_ipcrypt_PFX_BYTES],
0124 const unsigned char in[crypto_ipcrypt_PFX_BYTES],
0125 const unsigned char k[crypto_ipcrypt_PFX_KEYBYTES])
0126 __attribute__((nonnull));
0127
0128 #ifdef __cplusplus
0129 }
0130 #endif
0131
0132 #endif