(krb5_c_get_checksum): make type and data argument optional

(krb5_c_{encrypt,decrypt}): return "better" error codes for invalid ivec length


git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@12478 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2003-07-21 21:16:26 +00:00
parent 8967eaa719
commit b96d3e3b50

View File

@@ -91,17 +91,22 @@ krb5_c_get_checksum(krb5_context context, const krb5_checksum *cksum,
{ {
krb5_error_code ret; krb5_error_code ret;
*data = malloc(sizeof(**data)); if (type)
if (data == NULL)
return ENOMEM;
*type = cksum->cksumtype; *type = cksum->cksumtype;
if (data) {
*data = malloc(sizeof(**data));
if (*data == NULL)
return ENOMEM;
ret = copy_octet_string(&cksum->checksum, *data); ret = copy_octet_string(&cksum->checksum, *data);
if (ret) { if (ret) {
free(*data); free(*data);
*data = NULL; *data = NULL;
}
return ret; return ret;
} }
}
return 0;
}
krb5_error_code krb5_error_code
krb5_c_set_checksum(krb5_context context, krb5_checksum *cksum, krb5_c_set_checksum(krb5_context context, krb5_checksum *cksum,
@@ -197,7 +202,7 @@ krb5_c_decrypt(krb5_context context,
if (blocksize > ivec->length) { if (blocksize > ivec->length) {
krb5_crypto_destroy(context, crypto); krb5_crypto_destroy(context, crypto);
return EINVAL; /* XXX */ return KRB5_BAD_MSIZE;
} }
} }
@@ -237,7 +242,7 @@ krb5_c_encrypt(krb5_context context,
if (blocksize > ivec->length) { if (blocksize > ivec->length) {
krb5_crypto_destroy(context, crypto); krb5_crypto_destroy(context, crypto);
return EINVAL; /* XXX */ return KRB5_BAD_MSIZE;
} }
} }