struct krb5_data;
void
krb5_data_zero(krb5_data *p
)
void
krb5_data_free(krb5_data *p
)
void
krb5_free_data_contents(krb5_context context
, krb5_data *p
)
void
krb5_free_data(krb5_context context
, krb5_data *p
)
krb5_error_code
krb5_data_alloc(krb5_data *p
, int len
)
krb5_error_code
krb5_data_realloc(krb5_data *p
, int len
)
krb5_error_code
krb5_data_copy(krb5_data *p
, const void *data
, size_t len
)
krb5_error_code
krb5_copy_data(krb5_context context
, const krb5_data *indata
, krb5_data **outdata
)
krb5_error_code
krb5_data_cmp(const krb5_data *data1
, const krb5_data *data2
)
krb5_data
structure holds a data element.
The structure contains two public accessible elements
length
(the length of data)
and
data
(the data itself).
The structure must always be initiated and freed by the functions
documented in this manual.
krb5_data_zero()
resets the content of
p
.
krb5_data_free()
free the data in
p
and reset the content of the structure with
krb5_data_zero().
krb5_free_data_contents()
works the same way as
krb5_data_free
.
The diffrence is that krb5_free_data_contents is more portable (exists
in MIT api).
krb5_free_data()
frees the data in
p
and
p
itself.
krb5_data_alloc()
allocates
len
bytes in
p
.
Returns 0 or an error.
krb5_data_realloc()
reallocates the length of
p
to the length in
len
.
Returns 0 or an error.
krb5_data_copy()
copies the
data
that have the length
len
into
p
.
p
is not freed so the calling function should make sure the
p
doesn't contain anything needs to be freed.
Returns 0 or an error.
krb5_copy_data()
copies the
krb5_data
in
indata
to
outdata
.
outdata
is not freed so the calling function should make sure the
outdata
doesn't contain anything needs to be freed.
outdata
should be freed using
krb5_free_data().
Returns 0 or an error.
krb5_data_cmp()
will compare two data object and check if they are the same in a
simular way as memcmp does it. The return value can be used for
sorting.