Blame SOURCES/libsodium-1.0.18/src/libsodium/include/sodium/crypto_secretstream_xchacha20poly1305.h

rdobuilder 775784
#ifndef crypto_secretstream_xchacha20poly1305_H
rdobuilder 775784
#define crypto_secretstream_xchacha20poly1305_H
rdobuilder 775784
rdobuilder 775784
#include <stddef.h>
rdobuilder 775784
rdobuilder 775784
#include "crypto_aead_xchacha20poly1305.h"
rdobuilder 775784
#include "crypto_stream_chacha20.h"
rdobuilder 775784
#include "export.h"
rdobuilder 775784
rdobuilder 775784
#ifdef __cplusplus
rdobuilder 775784
# ifdef __GNUC__
rdobuilder 775784
#  pragma GCC diagnostic ignored "-Wlong-long"
rdobuilder 775784
# endif
rdobuilder 775784
extern "C" {
rdobuilder 775784
#endif
rdobuilder 775784
rdobuilder 775784
#define crypto_secretstream_xchacha20poly1305_ABYTES \
rdobuilder 775784
    (1U + crypto_aead_xchacha20poly1305_ietf_ABYTES)
rdobuilder 775784
SODIUM_EXPORT
rdobuilder 775784
size_t crypto_secretstream_xchacha20poly1305_abytes(void);
rdobuilder 775784
rdobuilder 775784
#define crypto_secretstream_xchacha20poly1305_HEADERBYTES \
rdobuilder 775784
    crypto_aead_xchacha20poly1305_ietf_NPUBBYTES
rdobuilder 775784
SODIUM_EXPORT
rdobuilder 775784
size_t crypto_secretstream_xchacha20poly1305_headerbytes(void);
rdobuilder 775784
rdobuilder 775784
#define crypto_secretstream_xchacha20poly1305_KEYBYTES \
rdobuilder 775784
    crypto_aead_xchacha20poly1305_ietf_KEYBYTES
rdobuilder 775784
SODIUM_EXPORT
rdobuilder 775784
size_t crypto_secretstream_xchacha20poly1305_keybytes(void);
rdobuilder 775784
rdobuilder 775784
#define crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX \
rdobuilder 775784
    SODIUM_MIN(SODIUM_SIZE_MAX - crypto_secretstream_xchacha20poly1305_ABYTES, \
rdobuilder 775784
              (64ULL * ((1ULL << 32) - 2ULL)))
rdobuilder 775784
SODIUM_EXPORT
rdobuilder 775784
size_t crypto_secretstream_xchacha20poly1305_messagebytes_max(void);
rdobuilder 775784
rdobuilder 775784
#define crypto_secretstream_xchacha20poly1305_TAG_MESSAGE 0x00
rdobuilder 775784
SODIUM_EXPORT
rdobuilder 775784
unsigned char crypto_secretstream_xchacha20poly1305_tag_message(void);
rdobuilder 775784
rdobuilder 775784
#define crypto_secretstream_xchacha20poly1305_TAG_PUSH    0x01
rdobuilder 775784
SODIUM_EXPORT
rdobuilder 775784
unsigned char crypto_secretstream_xchacha20poly1305_tag_push(void);
rdobuilder 775784
rdobuilder 775784
#define crypto_secretstream_xchacha20poly1305_TAG_REKEY   0x02
rdobuilder 775784
SODIUM_EXPORT
rdobuilder 775784
unsigned char crypto_secretstream_xchacha20poly1305_tag_rekey(void);
rdobuilder 775784
rdobuilder 775784
#define crypto_secretstream_xchacha20poly1305_TAG_FINAL \
rdobuilder 775784
    (crypto_secretstream_xchacha20poly1305_TAG_PUSH | \
rdobuilder 775784
     crypto_secretstream_xchacha20poly1305_TAG_REKEY)
rdobuilder 775784
SODIUM_EXPORT
rdobuilder 775784
unsigned char crypto_secretstream_xchacha20poly1305_tag_final(void);
rdobuilder 775784
rdobuilder 775784
typedef struct crypto_secretstream_xchacha20poly1305_state {
rdobuilder 775784
    unsigned char k[crypto_stream_chacha20_ietf_KEYBYTES];
rdobuilder 775784
    unsigned char nonce[crypto_stream_chacha20_ietf_NONCEBYTES];
rdobuilder 775784
    unsigned char _pad[8];
rdobuilder 775784
} crypto_secretstream_xchacha20poly1305_state;
rdobuilder 775784
rdobuilder 775784
SODIUM_EXPORT
rdobuilder 775784
size_t crypto_secretstream_xchacha20poly1305_statebytes(void);
rdobuilder 775784
rdobuilder 775784
SODIUM_EXPORT
rdobuilder 775784
void crypto_secretstream_xchacha20poly1305_keygen
rdobuilder 775784
   (unsigned char k[crypto_secretstream_xchacha20poly1305_KEYBYTES])
rdobuilder 775784
            __attribute__ ((nonnull));
rdobuilder 775784
rdobuilder 775784
SODIUM_EXPORT
rdobuilder 775784
int crypto_secretstream_xchacha20poly1305_init_push
rdobuilder 775784
   (crypto_secretstream_xchacha20poly1305_state *state,
rdobuilder 775784
    unsigned char header[crypto_secretstream_xchacha20poly1305_HEADERBYTES],
rdobuilder 775784
    const unsigned char k[crypto_secretstream_xchacha20poly1305_KEYBYTES])
rdobuilder 775784
            __attribute__ ((nonnull));
rdobuilder 775784
rdobuilder 775784
SODIUM_EXPORT
rdobuilder 775784
int crypto_secretstream_xchacha20poly1305_push
rdobuilder 775784
   (crypto_secretstream_xchacha20poly1305_state *state,
rdobuilder 775784
    unsigned char *c, unsigned long long *clen_p,
rdobuilder 775784
    const unsigned char *m, unsigned long long mlen,
rdobuilder 775784
    const unsigned char *ad, unsigned long long adlen, unsigned char tag)
rdobuilder 775784
            __attribute__ ((nonnull(1)));
rdobuilder 775784
rdobuilder 775784
SODIUM_EXPORT
rdobuilder 775784
int crypto_secretstream_xchacha20poly1305_init_pull
rdobuilder 775784
   (crypto_secretstream_xchacha20poly1305_state *state,
rdobuilder 775784
    const unsigned char header[crypto_secretstream_xchacha20poly1305_HEADERBYTES],
rdobuilder 775784
    const unsigned char k[crypto_secretstream_xchacha20poly1305_KEYBYTES])
rdobuilder 775784
            __attribute__ ((nonnull));
rdobuilder 775784
rdobuilder 775784
SODIUM_EXPORT
rdobuilder 775784
int crypto_secretstream_xchacha20poly1305_pull
rdobuilder 775784
   (crypto_secretstream_xchacha20poly1305_state *state,
rdobuilder 775784
    unsigned char *m, unsigned long long *mlen_p, unsigned char *tag_p,
rdobuilder 775784
    const unsigned char *c, unsigned long long clen,
rdobuilder 775784
    const unsigned char *ad, unsigned long long adlen)
rdobuilder 775784
            __attribute__ ((nonnull(1)));
rdobuilder 775784
rdobuilder 775784
SODIUM_EXPORT
rdobuilder 775784
void crypto_secretstream_xchacha20poly1305_rekey
rdobuilder 775784
    (crypto_secretstream_xchacha20poly1305_state *state);
rdobuilder 775784
rdobuilder 775784
#ifdef __cplusplus
rdobuilder 775784
}
rdobuilder 775784
#endif
rdobuilder 775784
rdobuilder 775784
#endif