diff options
author | Theodore Tso <tytso@mit.edu> | 1995-01-19 03:02:16 +0000 |
---|---|---|
committer | Theodore Tso <tytso@mit.edu> | 1995-01-19 03:02:16 +0000 |
commit | a4c08d0030804a3ecb282cdc9c9dad790644064c (patch) | |
tree | 43cad4b7b8d3f23eaf56804c0af831a5ab1866bd /src/lib/gssapi/krb5/util_crypt.c | |
parent | 66da8ab874ad3b91581850cd306bcbf64b9f40f5 (diff) | |
download | krb5-a4c08d0030804a3ecb282cdc9c9dad790644064c.tar.gz krb5-a4c08d0030804a3ecb282cdc9c9dad790644064c.tar.xz krb5-a4c08d0030804a3ecb282cdc9c9dad790644064c.zip |
Fixed bugs in introduction of context variables; if the global context is
not initialized, initialize it automatically. Initialize the connection
context's krb5_context varaible in init_security_context and
accept_security_context.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@4824 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/gssapi/krb5/util_crypt.c')
-rw-r--r-- | src/lib/gssapi/krb5/util_crypt.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/lib/gssapi/krb5/util_crypt.c b/src/lib/gssapi/krb5/util_crypt.c index bee58ceee5..3b954e9e21 100644 --- a/src/lib/gssapi/krb5/util_crypt.c +++ b/src/lib/gssapi/krb5/util_crypt.c @@ -25,8 +25,6 @@ static unsigned char zeros[8] = {0,0,0,0,0,0,0,0}; -extern krb5_context kg_context; - int kg_confounder_size(ed) krb5_gss_enc_desc *ed; { @@ -40,8 +38,9 @@ kg_make_confounder(ed, buf) krb5_gss_enc_desc *ed; unsigned char *buf; { - return(krb5_random_confounder(kg_context, - ed->eblock.crypto_entry->block_length, buf)); + krb5_error_code code; + + return(krb5_random_confounder( ed->eblock.crypto_entry->block_length, buf)); } int kg_encrypt_size(ed, n) @@ -61,6 +60,9 @@ kg_encrypt(ed, iv, in, out, length) { krb5_error_code code; + if (!kg_context && (code=kg_get_context())) + return code; + if (! ed->processed) { if (code = krb5_process_key(kg_context, &ed->eblock, ed->key)) return(code); @@ -88,6 +90,9 @@ kg_decrypt(ed, iv, in, out, length) int elen; char *buf; + if (!kg_context && (code=kg_get_context())) + return code; + if (! ed->processed) { if (code = krb5_process_key(kg_context, &ed->eblock, ed->key)) return(code); |