---
name: "krb5_copy_creds"
section: "3"
platform: "linux"
package: "heimdal-dev"
version: "7.8.git20221117.28daf24+dfsg-9+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/krb5_copy_creds"
---

# krb5\_copy\_creds(3)

Kerberos 5 credential handling functions

## NAME

**krb5\_creds**, **krb5\_copy\_creds**, **krb5\_copy\_creds\_contents**, **krb5\_free\_creds**, **krb5\_free\_cred\_contents** – Kerberos 5 credential handling functions

## LIBRARY

Kerberos 5 Library (libkrb5, -lkrb5)

## SYNOPSIS

**#include \<krb5.h\>**

*krb5\_error\_code*\

**krb5\_copy\_creds**(*krb5\_context context*, *const krb5\_creds \*incred*, *krb5\_creds \*\*outcred*);

*krb5\_error\_code*\

**krb5\_copy\_creds\_contents**(*krb5\_context context*, *const krb5\_creds \*incred*, *krb5\_creds \*outcred*);

*krb5\_error\_code*\

**krb5\_free\_creds**(*krb5\_context context*, *krb5\_creds \*outcred*);

*krb5\_error\_code*\

**krb5\_free\_cred\_contents**(*krb5\_context context*, *krb5\_creds \*cred*);

## DESCRIPTION

*krb5\_creds* holds Kerberos credentials:

```
typedef struct krb5_creds {
    krb5_principal	client;
    krb5_principal	server;
    krb5_keyblock	session;
    krb5_times		times;
    krb5_data		ticket;
    krb5_data		second_ticket;
    krb5_authdata	authdata;
    krb5_addresses	addresses;
    krb5_ticket_flags	flags;
} krb5_creds;
```

**krb5\_copy\_creds**() makes a copy of *incred* to *outcred*. *outcred* should be freed with **krb5\_free\_creds**() by the caller.

**krb5\_copy\_creds\_contents**() makes a copy of the content of *incred* to *outcreds*. *outcreds* should be freed by the called with **krb5\_free\_creds\_contents**().

**krb5\_free\_creds**() frees the content of the *cred* structure and the structure itself.

**krb5\_free\_cred\_contents**() frees the content of the *cred* structure.

## SEE ALSO

[krb5(3)](/krb5/3.md), [krb5\_compare\_creds(3)](/krb5_compare_creds/3.md), [krb5\_get\_init\_creds(3)](/krb5_get_init_creds/3.md), [kerberos(8)](/kerberos/8.md)
