summaryrefslogtreecommitdiffstats
path: root/src/lib/gssapi/krb5/gssapiP_krb5.h
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2009-10-19 20:04:21 +0000
committerGreg Hudson <ghudson@mit.edu>2009-10-19 20:04:21 +0000
commite6b93b7dd43bb765900b2db71641479b597844da (patch)
tree2b6da09e37da6ca699a8cb43c87e8a4218132254 /src/lib/gssapi/krb5/gssapiP_krb5.h
parent04a5d19e61bedbb1da4db52334c00f7a54a9d5a8 (diff)
downloadkrb5-e6b93b7dd43bb765900b2db71641479b597844da.tar.gz
krb5-e6b93b7dd43bb765900b2db71641479b597844da.tar.xz
krb5-e6b93b7dd43bb765900b2db71641479b597844da.zip
Implement new APIs to allow improved crypto performance
Merge branches/enc-perf to trunk. Adds the krb5_key opaque type, the krb5_k_* APIs to use them, and caching of derived keys when krb5_k_* functions are used. Updates the krb5 auth context and GSS id-rec to use krb5_keys. ticket: 6576 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@22944 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/gssapi/krb5/gssapiP_krb5.h')
-rw-r--r--src/lib/gssapi/krb5/gssapiP_krb5.h41
1 files changed, 20 insertions, 21 deletions
diff --git a/src/lib/gssapi/krb5/gssapiP_krb5.h b/src/lib/gssapi/krb5/gssapiP_krb5.h
index e05c5bc81f..541a745545 100644
--- a/src/lib/gssapi/krb5/gssapiP_krb5.h
+++ b/src/lib/gssapi/krb5/gssapiP_krb5.h
@@ -190,15 +190,14 @@ typedef struct _krb5_gss_ctx_id_rec {
unsigned char seed[16];
krb5_gss_name_t here;
krb5_gss_name_t there;
- krb5_keyblock *subkey; /*One of two potential keys to use with RFC
- * 4121 packets; this key must always be set.*/
+ krb5_key subkey; /* One of two potential keys to use with RFC 4121
+ * packets; this key must always be set. */
int signalg;
size_t cksum_size;
int sealalg;
- krb5_keyblock *enc; /*RFC 1964 encryption key;seq xored with a
- * constant for DES,
- * seq for other RFC 1964 enctypes */
- krb5_keyblock *seq; /*RFC 1964 sequencing key*/
+ krb5_key enc; /* RFC 1964 encryption key; seq xored with a constant
+ * for DES, seq for other RFC 1964 enctypes */
+ krb5_key seq; /* RFC 1964 sequencing key */
krb5_ticket_times krb_times;
krb5_flags krb_flags;
/* XXX these used to be signed. the old spec is inspecific, and
@@ -218,7 +217,7 @@ typedef struct _krb5_gss_ctx_id_rec {
1964 tokens is permitted.*/
int proto;
krb5_cksumtype cksumtype; /* for "main" subkey */
- krb5_keyblock *acceptor_subkey; /* CFX only */
+ krb5_key acceptor_subkey; /* CFX only */
krb5_cksumtype acceptor_subkey_cksumtype;
int cred_rcache; /* did we get rcache from creds? */
krb5_authdata **authdata;
@@ -259,32 +258,32 @@ krb5_error_code kg_checksum_channel_bindings
int bigend);
krb5_error_code kg_make_seq_num (krb5_context context,
- krb5_keyblock *key,
+ krb5_key key,
int direction, krb5_ui_4 seqnum, unsigned char *cksum,
unsigned char *buf);
krb5_error_code kg_get_seq_num (krb5_context context,
- krb5_keyblock *key,
+ krb5_key key,
unsigned char *cksum, unsigned char *buf, int *direction,
krb5_ui_4 *seqnum);
krb5_error_code kg_make_seed (krb5_context context,
- krb5_keyblock *key,
+ krb5_key key,
unsigned char *seed);
krb5_error_code
kg_setup_keys(krb5_context context,
krb5_gss_ctx_id_rec *ctx,
- krb5_keyblock *subkey,
+ krb5_key subkey,
krb5_cksumtype *cksumtype);
-int kg_confounder_size (krb5_context context, krb5_keyblock *key);
+int kg_confounder_size (krb5_context context, krb5_key key);
krb5_error_code kg_make_confounder (krb5_context context,
- krb5_keyblock *key, unsigned char *buf);
+ krb5_key key, unsigned char *buf);
krb5_error_code kg_encrypt (krb5_context context,
- krb5_keyblock *key, int usage,
+ krb5_key key, int usage,
krb5_pointer iv,
krb5_const_pointer in,
krb5_pointer out,
@@ -293,7 +292,7 @@ krb5_error_code kg_encrypt (krb5_context context,
krb5_error_code kg_encrypt_iov (krb5_context context,
int proto, int dce_style,
size_t ec, size_t rrc,
- krb5_keyblock *key, int usage,
+ krb5_key key, int usage,
krb5_pointer iv,
gss_iov_buffer_desc *iov,
int iov_count);
@@ -312,7 +311,7 @@ kg_arcfour_docrypt_iov (krb5_context context,
int iov_count);
krb5_error_code kg_decrypt (krb5_context context,
- krb5_keyblock *key, int usage,
+ krb5_key key, int usage,
krb5_pointer iv,
krb5_const_pointer in,
krb5_pointer out,
@@ -321,7 +320,7 @@ krb5_error_code kg_decrypt (krb5_context context,
krb5_error_code kg_decrypt_iov (krb5_context context,
int proto, int dce_style,
size_t ec, size_t rrc,
- krb5_keyblock *key, int usage,
+ krb5_key key, int usage,
krb5_pointer iv,
gss_iov_buffer_desc *iov,
int iov_count);
@@ -409,8 +408,8 @@ void kg_release_iov(gss_iov_buffer_desc *iov,
krb5_error_code kg_make_checksum_iov_v1(krb5_context context,
krb5_cksumtype type,
size_t token_cksum_len,
- krb5_keyblock *seq,
- krb5_keyblock *enc, /* for conf len */
+ krb5_key seq,
+ krb5_key enc, /* for conf len */
krb5_keyusage sign_usage,
gss_iov_buffer_desc *iov,
int iov_count,
@@ -420,7 +419,7 @@ krb5_error_code kg_make_checksum_iov_v1(krb5_context context,
krb5_error_code kg_make_checksum_iov_v3(krb5_context context,
krb5_cksumtype type,
size_t rrc,
- krb5_keyblock *key,
+ krb5_key key,
krb5_keyusage sign_usage,
gss_iov_buffer_desc *iov,
int iov_count);
@@ -428,7 +427,7 @@ krb5_error_code kg_make_checksum_iov_v3(krb5_context context,
krb5_error_code kg_verify_checksum_iov_v3(krb5_context context,
krb5_cksumtype type,
size_t rrc,
- krb5_keyblock *key,
+ krb5_key key,
krb5_keyusage sign_usage,
gss_iov_buffer_desc *iov,
int iov_count,