Do PA-ENC-TS-ENC the correct way.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1862 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -152,7 +152,6 @@ krb5_get_in_tkt(krb5_context context,
|
|||||||
char buf[BUFSIZ];
|
char buf[BUFSIZ];
|
||||||
krb5_data salt;
|
krb5_data salt;
|
||||||
krb5_keyblock *key;
|
krb5_keyblock *key;
|
||||||
PA_DATA padata;
|
|
||||||
|
|
||||||
memset(&a, 0, sizeof(a));
|
memset(&a, 0, sizeof(a));
|
||||||
|
|
||||||
@@ -215,6 +214,7 @@ krb5_get_in_tkt(krb5_context context,
|
|||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
int len;
|
int len;
|
||||||
unsigned foo;
|
unsigned foo;
|
||||||
|
EncryptedData encdata;
|
||||||
|
|
||||||
gettimeofday (&tv, NULL);
|
gettimeofday (&tv, NULL);
|
||||||
p.patimestamp = tv.tv_sec;
|
p.patimestamp = tv.tv_sec;
|
||||||
@@ -227,18 +227,31 @@ krb5_get_in_tkt(krb5_context context,
|
|||||||
if (len < 0)
|
if (len < 0)
|
||||||
return ASN1_PARSE_ERROR;
|
return ASN1_PARSE_ERROR;
|
||||||
|
|
||||||
|
a.padata = malloc(sizeof(*a.padata));
|
||||||
|
a.padata->len = 1;
|
||||||
|
a.padata->val = malloc(sizeof(*a.padata->val));
|
||||||
|
a.padata->val->padata_type = pa_enc_timestamp;
|
||||||
|
a.padata->val->padata_value.length = 0;
|
||||||
|
|
||||||
|
encdata.etype = ETYPE_DES_CBC_CRC;
|
||||||
|
encdata.kvno = NULL;
|
||||||
err = krb5_encrypt (context,
|
err = krb5_encrypt (context,
|
||||||
buf + sizeof(buf) - len,
|
buf + sizeof(buf) - len,
|
||||||
len,
|
len,
|
||||||
key,
|
key,
|
||||||
&padata.padata_value);
|
&encdata.cipher);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
padata.padata_type = pa_enc_timestamp;
|
len = encode_EncryptedData(buf + sizeof(buf) - 1,
|
||||||
a.padata = malloc(sizeof(*a.padata));
|
sizeof(buf),
|
||||||
a.padata->len = 1;
|
&encdata);
|
||||||
a.padata->val = &padata;
|
krb5_data_free(&encdata.cipher);
|
||||||
|
if (len < 0)
|
||||||
|
return ASN1_PARSE_ERROR;
|
||||||
|
krb5_data_copy(&a.padata->val->padata_value,
|
||||||
|
buf + sizeof(buf) - len,
|
||||||
|
len);
|
||||||
} else
|
} else
|
||||||
return KRB5_PREAUTH_BAD_TYPE;
|
return KRB5_PREAUTH_BAD_TYPE;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user