/******************************************************************************/ /* MCrypt, by LoRd_MuldeR */ /* This work has been released under the CC0 1.0 Universal license! */ /******************************************************************************/ #ifndef INC_MCYRPT_H #define INC_MCYRPT_H #include #include extern const char *const LIBMCRYPT_VERSION; extern const char* const LIBMCRYPT_BUILDNO; /* * Opaque handle to internal state */ typedef uintptr_t mcrypt_t; #define MCRYPT_NULL ((mcrypt_t)NULL) /* * Seed generator */ int mcrypt_generate_seed(uint64_t* const seed); /* * Allocate, reset or free state */ mcrypt_t mcrypt_alloc(const uint64_t salt, const char* const passphrase); int mcrypt_reset(const mcrypt_t context, const uint64_t salt, const char* const passphrase); void mcrypt_free(const mcrypt_t context); /* * Encryption routines */ int mcrypt_enc_process(const mcrypt_t context, const uint8_t* const input, uint8_t* const output, size_t length); int mcrypt_enc_process_inplace(const mcrypt_t context, uint8_t* const buffer, size_t length); /* * Decryption routines */ int mcrypt_dec_process(const mcrypt_t context, const uint8_t* const input, uint8_t* const output, size_t length); int mcrypt_dec_process_inplace(const mcrypt_t context, uint8_t* const buffer, size_t length); /* * Auxiliary functions */ int mcrypt_random_bytes(uint8_t* const buffer, const size_t length); void mcrypt_bzero(void* const ptr, const size_t length); #endif