summaryrefslogtreecommitdiffstats
path: root/src/lib/gssapi/krb5/util_crypt.c
diff options
context:
space:
mode:
authorTheodore Tso <tytso@mit.edu>1995-01-19 03:02:16 +0000
committerTheodore Tso <tytso@mit.edu>1995-01-19 03:02:16 +0000
commita4c08d0030804a3ecb282cdc9c9dad790644064c (patch)
tree43cad4b7b8d3f23eaf56804c0af831a5ab1866bd /src/lib/gssapi/krb5/util_crypt.c
parent66da8ab874ad3b91581850cd306bcbf64b9f40f5 (diff)
downloadkrb5-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.c13
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);