Back to home page

EIC code displayed by LXR

 
 

    


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