#ifndef YCIPHER_H
#define YCIPHER_H
typedef struct
{
krb5_keyblock key;
} CIPHER_CTX;
#define yarrow_enc_provider krb5int_enc_aes256
#define CIPHER_BLOCK_SIZE 16
#define CIPHER_KEY_SIZE 32
#if defined( YARROW_NO_MATHLIB )
#define POW_CIPHER_KEY_SIZE 115792089237316195423570985008687907853269984665640564039457584007913129639936.0
#define POW_CIPHER_BLOCK_SIZE 340282366920938463463374607431768211456.0
#endif
int krb5int_yarrow_cipher_init (CIPHER_CTX *ctx, unsigned const char *key);
int krb5int_yarrow_cipher_encrypt_block
(CIPHER_CTX *ctx, const unsigned char *in, unsigned char *out);
void krb5int_yarrow_cipher_final (CIPHER_CTX *ctx);
#if !defined( YARROW_NO_MATHLIB )
#define POW_CIPHER_KEY_SIZE pow(2.0, CIPHER_KEY_SIZE * 8 / 3.0)
#define POW_CIPHER_BLOCK_SIZE pow(2.0, CIPHER_BLOCK_SIZE * 8)
#endif
#endif