summaryrefslogtreecommitdiffstats
path: root/src/lib/krb5/krb/preauth2.c
diff options
context:
space:
mode:
authorSam Hartman <hartmans@mit.edu>2009-04-03 04:03:45 +0000
committerSam Hartman <hartmans@mit.edu>2009-04-03 04:03:45 +0000
commit4e609bf313a80dbc2247a73d1303b2068eec9acd (patch)
tree9ac56fbff02569ca272eff8d98227b3efbe92f39 /src/lib/krb5/krb/preauth2.c
parent6d48a7deaeed3dcb5dce55d8e9730c47512a904e (diff)
downloadkrb5-4e609bf313a80dbc2247a73d1303b2068eec9acd.tar.gz
krb5-4e609bf313a80dbc2247a73d1303b2068eec9acd.tar.xz
krb5-4e609bf313a80dbc2247a73d1303b2068eec9acd.zip
Merge fast branch at 22166 onto trunk
ticket: 6436 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@22167 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/krb/preauth2.c')
-rw-r--r--src/lib/krb5/krb/preauth2.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/lib/krb5/krb/preauth2.c b/src/lib/krb5/krb/preauth2.c
index 4c7dd5e607..73f4e79b61 100644
--- a/src/lib/krb5/krb/preauth2.c
+++ b/src/lib/krb5/krb/preauth2.c
@@ -646,6 +646,36 @@ krb5_error_code pa_salt(krb5_context context,
}
static
+krb5_error_code pa_fx_cookie(krb5_context context,
+ krb5_kdc_req *request,
+ krb5_pa_data *in_padata,
+ krb5_pa_data **out_padata,
+ krb5_data *salt,
+ krb5_data *s2kparams,
+ krb5_enctype *etype,
+ krb5_keyblock *as_key,
+ krb5_prompter_fct prompter,
+ void *prompter_data,
+ krb5_gic_get_as_key_fct gak_fct,
+ void *gak_data)
+{
+ krb5_pa_data *pa = calloc(1, sizeof(krb5_pa_data));
+ krb5_octet *contents;
+ if (pa == NULL)
+ return ENOMEM;
+ contents = malloc(in_padata->length);
+ if (contents == NULL) {
+ free(pa);
+ return ENOMEM;
+ }
+ *pa = *in_padata;
+ pa->contents = contents;
+ memcpy(contents, in_padata->contents, pa->length);
+ *out_padata = pa;
+ return 0;
+}
+
+static
krb5_error_code pa_enc_timestamp(krb5_context context,
krb5_kdc_req *request,
krb5_pa_data *in_padata,
@@ -1710,6 +1740,11 @@ static const pa_types_t pa_types[] = {
PA_REAL,
},
{
+ KRB5_PADATA_FX_COOKIE,
+ pa_fx_cookie,
+ PA_INFO,
+ },
+ {
-1,
NULL,
0,