17 #ifndef APR_CRYPTO_INTERNAL_H
18 #define APR_CRYPTO_INTERNAL_H
30 struct apr_crypto_driver_t {
42 apr_status_t (*init)(apr_pool_t *pool,
const char *params,
57 apr_status_t (*make)(apr_crypto_t **f,
const apr_crypto_driver_t *provider,
58 const char *params, apr_pool_t *pool);
68 apr_status_t (*get_block_key_types)(apr_hash_t **types,
69 const apr_crypto_t *f);
79 apr_status_t (*get_block_key_modes)(apr_hash_t **modes,
80 const apr_crypto_t *f);
110 apr_status_t (*passphrase)(apr_crypto_key_t **key, apr_size_t *ivSize,
111 const char *pass, apr_size_t passLen,
const unsigned char * salt,
112 apr_size_t saltLen,
const apr_crypto_block_key_type_e type,
113 const apr_crypto_block_key_mode_e mode,
const int doPad,
114 const int iterations,
const apr_crypto_t *f, apr_pool_t *p);
132 apr_status_t (*block_encrypt_init)(apr_crypto_block_t **ctx,
133 const unsigned char **iv,
const apr_crypto_key_t *key,
134 apr_size_t *blockSize, apr_pool_t *p);
154 apr_status_t (*block_encrypt)(
unsigned char **out, apr_size_t *outlen,
155 const unsigned char *in, apr_size_t inlen, apr_crypto_block_t *ctx);
175 apr_status_t (*block_encrypt_finish)(
unsigned char *out,
176 apr_size_t *outlen, apr_crypto_block_t *ctx);
193 apr_status_t (*block_decrypt_init)(apr_crypto_block_t **ctx,
194 apr_size_t *blockSize,
const unsigned char *iv,
195 const apr_crypto_key_t *key, apr_pool_t *p);
215 apr_status_t (*block_decrypt)(
unsigned char **out, apr_size_t *outlen,
216 const unsigned char *in, apr_size_t inlen, apr_crypto_block_t *ctx);
236 apr_status_t (*block_decrypt_finish)(
unsigned char *out,
237 apr_size_t *outlen, apr_crypto_block_t *ctx);
245 apr_status_t (*block_cleanup)(apr_crypto_block_t *ctx);
253 apr_status_t (*cleanup)(apr_crypto_t *f);
260 apr_status_t (*shutdown)(void);
268 apr_status_t (*error)(
const apu_err_t **result,
const apr_crypto_t *f);
Definition: apu_errno.h:161