Jan 23, 2007 KRB5_DATA 3

### NAME

krb5_data, krb5_data_zero, krb5_data_free, krb5_free_data_contents, krb5_free_data, krb5_data_alloc, krb5_data_realloc, krb5_data_copy, krb5_copy_data, krb5_data_cmp - operates on the Kerberos datatype krb5_data

### LIBRARY

Kerberos 5 Library (libkrb5, -lkrb5)

### SYNOPSIS

```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`)

### DESCRIPTION

The ```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.

### SEE ALSO

krb5(3), krb5_storage(3), kerberos(8)