aboutsummaryrefslogtreecommitdiff
path: root/src/lib/krb5/krb/encrypt_tk.c
diff options
context:
space:
mode:
authorJohn Kohl <jtkohl@mit.edu>1990-01-30 18:03:44 +0000
committerJohn Kohl <jtkohl@mit.edu>1990-01-30 18:03:44 +0000
commit5609ce1fe6272b6b92346a76fe438e70e9ec3681 (patch)
treed1aae44fba27e2cc745a2c5b42d10ff72ab3b20f /src/lib/krb5/krb/encrypt_tk.c
parent293442f71ceeb1c483f3658e99ee35b3964824b1 (diff)
downloadkrb5-5609ce1fe6272b6b92346a76fe438e70e9ec3681.zip
krb5-5609ce1fe6272b6b92346a76fe438e70e9ec3681.tar.gz
krb5-5609ce1fe6272b6b92346a76fe438e70e9ec3681.tar.bz2
use embedded pointers instead of extra arg
range-check cryptosystem. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@210 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/krb/encrypt_tk.c')
-rw-r--r--src/lib/krb5/krb/encrypt_tk.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/lib/krb5/krb/encrypt_tk.c b/src/lib/krb5/krb/encrypt_tk.c
index 194b56e..faf3937 100644
--- a/src/lib/krb5/krb/encrypt_tk.c
+++ b/src/lib/krb5/krb/encrypt_tk.c
@@ -19,6 +19,7 @@ static char rcsid_encrypt_tk_c[] =
#include <krb5/krb5.h>
#include <krb5/asn1.h>
+#include <krb5/krb5_err.h>
#include <errno.h>
@@ -26,6 +27,7 @@ static char rcsid_encrypt_tk_c[] =
/* array of pointers into encryption systems */
extern krb5_cs_table_entry *csarray[];
+extern int max_cryptosystem; /* max entry in array */
/*
Takes unencrypted dec_ticket & dec_tkt_part, encrypts with dec_ticket->etype
@@ -38,17 +40,22 @@ extern krb5_cs_table_entry *csarray[];
*/
krb5_error_code
-krb5_encrypt_tkt_part(dec_tkt_part, srv_key, dec_ticket)
-register krb5_enc_tkt_part *dec_tkt_part;
+krb5_encrypt_tkt_part(srv_key, dec_ticket)
krb5_keyblock *srv_key;
register krb5_ticket *dec_ticket;
{
krb5_data *scratch;
krb5_error_code retval;
krb5_encrypt_block eblock;
+ register krb5_enc_tkt_part *dec_tkt_part = dec_ticket->enc_part2;
/* encrypt the encrypted part */
+ if (dec_ticket->etype > max_cryptosystem ||
+ dec_ticket->etype < 0 ||
+ !csarray[dec_ticket->etype])
+ return KRB5KDC_ERR_ETYPE_NOSUPP;
+
/* start by encoding the to-be-encrypted part. */
if (retval = encode_krb5_enc_tkt_part(dec_tkt_part, &scratch)) {
return retval;