summaryrefslogtreecommitdiffstats
path: root/src/lib/crypto/aead.h
diff options
context:
space:
mode:
authorSam Hartman <hartmans@mit.edu>2008-12-04 15:48:08 +0000
committerSam Hartman <hartmans@mit.edu>2008-12-04 15:48:08 +0000
commit9ab3afbf9569254cf67bf7363cb9a50f549a5cdf (patch)
tree6bccf2672cf7b33a77ed39d21287a0cd3deca33a /src/lib/crypto/aead.h
parent7a64640413a306635ad94403b72d798e4aa527ee (diff)
downloadkrb5-9ab3afbf9569254cf67bf7363cb9a50f549a5cdf.tar.gz
krb5-9ab3afbf9569254cf67bf7363cb9a50f549a5cdf.tar.xz
krb5-9ab3afbf9569254cf67bf7363cb9a50f549a5cdf.zip
Merge r21120 from mskrb-integ
Refactor code such that an AEAD provider does not need to implement the older, non-IOV SPIs. Instead, the older APIs will implement their behaviour on top of the AEAD SPIs, using the wrapper functions in aead.c. ticket: 6274 Status: open git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@21278 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/crypto/aead.h')
-rw-r--r--src/lib/crypto/aead.h40
1 files changed, 34 insertions, 6 deletions
diff --git a/src/lib/crypto/aead.h b/src/lib/crypto/aead.h
index f183d1a05..057d6a7d4 100644
--- a/src/lib/crypto/aead.h
+++ b/src/lib/crypto/aead.h
@@ -28,12 +28,12 @@
/* AEAD helpers */
-krb5_crypto_iov * KRB5_CALLCONV
+krb5_crypto_iov *
krb5int_c_locate_iov(krb5_crypto_iov *data,
size_t num_data,
krb5_cryptotype type);
-krb5_error_code KRB5_CALLCONV
+krb5_error_code
krb5int_c_make_checksum_iov(const struct krb5_cksumtypes *cksum,
const krb5_keyblock *key,
krb5_keyusage usage,
@@ -41,7 +41,7 @@ krb5int_c_make_checksum_iov(const struct krb5_cksumtypes *cksum,
size_t num_data,
krb5_data *cksum_data);
-const struct krb5_cksumtypes * KRB5_CALLCONV
+const struct krb5_cksumtypes *
krb5int_c_find_checksum_type(krb5_cksumtype cksumtype);
#define ENCRYPT_CONF_IOV(_iov) ((_iov)->flags == KRB5_CRYPTO_TYPE_HEADER)
@@ -68,21 +68,21 @@ struct iov_block_state {
(_state)->include_sign_only = \
(_state)->pad_to_boundary = 0)
-krb5_boolean KRB5_CALLCONV
+krb5_boolean
krb5int_c_iov_get_block(unsigned char *block,
size_t block_size,
const krb5_crypto_iov *data,
size_t num_data,
struct iov_block_state *iov_state);
-krb5_boolean KRB5_CALLCONV
+krb5_boolean
krb5int_c_iov_put_block(const krb5_crypto_iov *data,
size_t num_data,
unsigned char *block,
size_t block_size,
struct iov_block_state *iov_state);
-krb5_error_code KRB5_CALLCONV
+krb5_error_code
krb5int_c_iov_decrypt_stream(const struct krb5_aead_provider *aead,
const struct krb5_enc_provider *enc,
const struct krb5_hash_provider *hash,
@@ -92,3 +92,31 @@ krb5int_c_iov_decrypt_stream(const struct krb5_aead_provider *aead,
krb5_crypto_iov *data,
size_t num_data);
+krb5_error_code
+krb5int_decrypt_aead_compat(const struct krb5_aead_provider *aead,
+ const struct krb5_enc_provider *enc,
+ const struct krb5_hash_provider *hash,
+ const krb5_keyblock *key, krb5_keyusage usage,
+ const krb5_data *ivec, const krb5_data *input,
+ krb5_data *output);
+
+krb5_error_code
+krb5int_encrypt_aead_compat(const struct krb5_aead_provider *aead,
+ const struct krb5_enc_provider *enc,
+ const struct krb5_hash_provider *hash,
+ const krb5_keyblock *key, krb5_keyusage usage,
+ const krb5_data *ivec, const krb5_data *input,
+ krb5_data *output);
+
+void
+krb5int_encrypt_length_aead_compat(const struct krb5_aead_provider *aead,
+ const struct krb5_enc_provider *enc,
+ const struct krb5_hash_provider *hash,
+ size_t inputlen, size_t *length);
+
+krb5_error_code
+krb5int_padding_length(const struct krb5_aead_provider *aead,
+ const struct krb5_enc_provider *enc,
+ const struct krb5_hash_provider *hash,
+ size_t data_length,
+ unsigned int *pad_length);