storage tweaks
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@10935 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997-2001 Kungliga Tekniska H<>gskolan
|
* Copyright (c) 1997-2002 Kungliga Tekniska H<>gskolan
|
||||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -278,12 +278,12 @@ out:
|
|||||||
krb5_store_int32(sp, server->kvno); /* is this right? */
|
krb5_store_int32(sp, server->kvno); /* is this right? */
|
||||||
krb5_store_data(sp, ticket.cipher);
|
krb5_store_data(sp, ticket.cipher);
|
||||||
/* Aargh! This is coded as a KTEXT_ST. */
|
/* Aargh! This is coded as a KTEXT_ST. */
|
||||||
sp->seek(sp, MAX_KTXT_LEN - ticket.cipher.length, SEEK_CUR);
|
krb5_storage_seek(sp, MAX_KTXT_LEN - ticket.cipher.length, SEEK_CUR);
|
||||||
krb5_store_int32(sp, 0); /* mbz */
|
krb5_store_int32(sp, 0); /* mbz */
|
||||||
free_EncryptedData(&ticket);
|
free_EncryptedData(&ticket);
|
||||||
}
|
}
|
||||||
ret = krb5_storage_to_data(sp, reply);
|
ret = krb5_storage_to_data(sp, reply);
|
||||||
reply->length = (*sp->seek)(sp, 0, SEEK_CUR);
|
reply->length = krb5_storage_seek(sp, 0, SEEK_CUR);
|
||||||
krb5_storage_free(sp);
|
krb5_storage_free(sp);
|
||||||
|
|
||||||
if(spn)
|
if(spn)
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
|
* Copyright (c) 1997 - 2002 Kungliga Tekniska H<>gskolan
|
||||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -194,11 +194,11 @@ krb5_ret_xdr_data(krb5_storage *sp,
|
|||||||
data->data = malloc(size);
|
data->data = malloc(size);
|
||||||
if (data->data == NULL)
|
if (data->data == NULL)
|
||||||
return ENOMEM;
|
return ENOMEM;
|
||||||
ret = sp->fetch(sp, data->data, size);
|
ret = krb5_storage_read(sp, data->data, size);
|
||||||
if(ret != size)
|
if(ret != size)
|
||||||
return (ret < 0)? errno : KRB5_CC_END;
|
return (ret < 0)? errno : KRB5_CC_END;
|
||||||
if (pad) {
|
if (pad) {
|
||||||
ret = sp->fetch(sp, foo, pad);
|
ret = krb5_storage_read(sp, foo, pad);
|
||||||
if (ret != pad)
|
if (ret != pad)
|
||||||
return (ret < 0)? errno : KRB5_CC_END;
|
return (ret < 0)? errno : KRB5_CC_END;
|
||||||
}
|
}
|
||||||
@@ -218,7 +218,7 @@ krb5_store_xdr_data(krb5_storage *sp,
|
|||||||
ret = krb5_store_int32(sp, data.length);
|
ret = krb5_store_int32(sp, data.length);
|
||||||
if(ret < 0)
|
if(ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
ret = sp->store(sp, data.data, data.length);
|
ret = krb5_storage_write(sp, data.data, data.length);
|
||||||
if(ret != data.length){
|
if(ret != data.length){
|
||||||
if(ret < 0)
|
if(ret < 0)
|
||||||
return errno;
|
return errno;
|
||||||
@@ -226,7 +226,7 @@ krb5_store_xdr_data(krb5_storage *sp,
|
|||||||
}
|
}
|
||||||
pad = (4 - data.length % 4) % 4;
|
pad = (4 - data.length % 4) % 4;
|
||||||
if (pad) {
|
if (pad) {
|
||||||
ret = sp->store(sp, zero, pad);
|
ret = krb5_storage_write(sp, zero, pad);
|
||||||
if (ret != pad) {
|
if (ret != pad) {
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return errno;
|
return errno;
|
||||||
@@ -245,9 +245,9 @@ create_reply_ticket (struct rx_header *hdr,
|
|||||||
int life,
|
int life,
|
||||||
int kvno,
|
int kvno,
|
||||||
int32_t max_seq_len,
|
int32_t max_seq_len,
|
||||||
char *sname, char *sinstance,
|
const char *sname, const char *sinstance,
|
||||||
u_int32_t challenge,
|
u_int32_t challenge,
|
||||||
char *label,
|
const char *label,
|
||||||
des_cblock *key,
|
des_cblock *key,
|
||||||
krb5_data *reply)
|
krb5_data *reply)
|
||||||
{
|
{
|
||||||
@@ -276,7 +276,7 @@ create_reply_ticket (struct rx_header *hdr,
|
|||||||
fyrtiosjuelva &= 0xffffffff;
|
fyrtiosjuelva &= 0xffffffff;
|
||||||
krb5_store_int32 (sp, fyrtiosjuelva);
|
krb5_store_int32 (sp, fyrtiosjuelva);
|
||||||
krb5_store_int32 (sp, challenge);
|
krb5_store_int32 (sp, challenge);
|
||||||
sp->store (sp, session, 8);
|
krb5_storage_write (sp, session, 8);
|
||||||
memset (&session, 0, sizeof(session));
|
memset (&session, 0, sizeof(session));
|
||||||
krb5_store_int32 (sp, kdc_time);
|
krb5_store_int32 (sp, kdc_time);
|
||||||
krb5_store_int32 (sp, kdc_time + krb_life_to_time (0, life));
|
krb5_store_int32 (sp, kdc_time + krb_life_to_time (0, life));
|
||||||
@@ -291,13 +291,13 @@ create_reply_ticket (struct rx_header *hdr,
|
|||||||
#endif
|
#endif
|
||||||
krb5_store_stringz (sp, sname);
|
krb5_store_stringz (sp, sname);
|
||||||
krb5_store_stringz (sp, sinstance);
|
krb5_store_stringz (sp, sinstance);
|
||||||
sp->store (sp, ticket.dat, ticket.length);
|
krb5_storage_write (sp, ticket.dat, ticket.length);
|
||||||
sp->store (sp, label, strlen(label));
|
krb5_storage_write (sp, label, strlen(label));
|
||||||
|
|
||||||
/* pad to DES block */
|
/* pad to DES block */
|
||||||
memset (zero, 0, sizeof(zero));
|
memset (zero, 0, sizeof(zero));
|
||||||
pad = (8 - sp->seek (sp, 0, SEEK_CUR) % 8) % 8;
|
pad = (8 - krb5_storage_seek (sp, 0, SEEK_CUR) % 8) % 8;
|
||||||
sp->store (sp, zero, pad);
|
krb5_storage_write (sp, zero, pad);
|
||||||
|
|
||||||
krb5_storage_to_data (sp, &enc_data);
|
krb5_storage_to_data (sp, &enc_data);
|
||||||
krb5_storage_free (sp);
|
krb5_storage_free (sp);
|
||||||
|
@@ -393,7 +393,7 @@ do_version4(unsigned char *buf,
|
|||||||
RCHECK(krb5_ret_int8(sp, &ticket_len), out2);
|
RCHECK(krb5_ret_int8(sp, &ticket_len), out2);
|
||||||
RCHECK(krb5_ret_int8(sp, &req_len), out2);
|
RCHECK(krb5_ret_int8(sp, &req_len), out2);
|
||||||
|
|
||||||
pos = sp->seek(sp, ticket_len + req_len, SEEK_CUR);
|
pos = krb5_storage_seek(sp, ticket_len + req_len, SEEK_CUR);
|
||||||
|
|
||||||
memset(&auth, 0, sizeof(auth));
|
memset(&auth, 0, sizeof(auth));
|
||||||
memcpy(&auth.dat, buf, pos);
|
memcpy(&auth.dat, buf, pos);
|
||||||
@@ -625,7 +625,7 @@ encode_v4_ticket(void *buf, size_t len, const EncTicketPart *et,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sp->store(sp, tmp, sizeof(tmp));
|
krb5_storage_write(sp, tmp, sizeof(tmp));
|
||||||
}
|
}
|
||||||
|
|
||||||
if((et->key.keytype != ETYPE_DES_CBC_MD5 &&
|
if((et->key.keytype != ETYPE_DES_CBC_MD5 &&
|
||||||
@@ -633,7 +633,7 @@ encode_v4_ticket(void *buf, size_t len, const EncTicketPart *et,
|
|||||||
et->key.keytype != ETYPE_DES_CBC_CRC) ||
|
et->key.keytype != ETYPE_DES_CBC_CRC) ||
|
||||||
et->key.keyvalue.length != 8)
|
et->key.keyvalue.length != 8)
|
||||||
return -1;
|
return -1;
|
||||||
sp->store(sp, et->key.keyvalue.data, 8);
|
krb5_storage_write(sp, et->key.keyvalue.data, 8);
|
||||||
|
|
||||||
{
|
{
|
||||||
time_t start = et->starttime ? *et->starttime : et->authtime;
|
time_t start = et->starttime ? *et->starttime : et->authtime;
|
||||||
|
Reference in New Issue
Block a user