---
name: "krb5_digest_set_method"
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_digest_set_method"
---

# krb5\_digest\_set\_method(3)

remote digest (HTTP-DIGEST, SASL, CHAP) support

## NAME

**krb5\_digest**, **krb5\_digest\_alloc**, **krb5\_digest\_free**, **krb5\_digest\_set\_server\_cb**, **krb5\_digest\_set\_type**, **krb5\_digest\_set\_hostname**, **krb5\_digest\_get\_server\_nonce**, **krb5\_digest\_set\_server\_nonce**, **krb5\_digest\_get\_opaque**, **krb5\_digest\_set\_opaque**, **krb5\_digest\_get\_identifier**, **krb5\_digest\_set\_identifier**, **krb5\_digest\_init\_request**, **krb5\_digest\_set\_client\_nonce**, **krb5\_digest\_set\_digest**, **krb5\_digest\_set\_username**, **krb5\_digest\_set\_authid**, **krb5\_digest\_set\_authentication\_user**, **krb5\_digest\_set\_realm**, **krb5\_digest\_set\_method**, **krb5\_digest\_set\_uri**, **krb5\_digest\_set\_nonceCount**, **krb5\_digest\_set\_qop**, **krb5\_digest\_request**, **krb5\_digest\_get\_responseData**, **krb5\_digest\_get\_rsp**, **krb5\_digest\_get\_tickets**, **krb5\_digest\_get\_client\_binding**, **krb5\_digest\_get\_a1\_hash** – remote digest (HTTP-DIGEST, SASL, CHAP) support

## LIBRARY

Kerberos 5 Library (libkrb5, -lkrb5)

## SYNOPSIS

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

typedef struct krb5\_digest \*krb5\_digest;

*krb5\_error\_code*\

**krb5\_digest\_alloc**(*krb5\_context context*, *krb5\_digest \*digest*);

*void*\

**krb5\_digest\_free**(*krb5\_digest digest*);

*krb5\_error\_code*\

**krb5\_digest\_set\_type**(*krb5\_context context*, *krb5\_digest digest*, *const char \*type*);

*krb5\_error\_code*\

**krb5\_digest\_set\_server\_cb**(*krb5\_context context*, *krb5\_digest digest*, *const char \*type*, *const char \*binding*);

*krb5\_error\_code*\

**krb5\_digest\_set\_hostname**(*krb5\_context context*, *krb5\_digest digest*, *const char \*hostname*);

*const char \**\

**krb5\_digest\_get\_server\_nonce**(*krb5\_context context*, *krb5\_digest digest*);

*krb5\_error\_code*\

**krb5\_digest\_set\_server\_nonce**(*krb5\_context context*, *krb5\_digest digest*, *const char \*nonce*);

*const char \**\

**krb5\_digest\_get\_opaque**(*krb5\_context context*, *krb5\_digest digest*);

*krb5\_error\_code*\

**krb5\_digest\_set\_opaque**(*krb5\_context context*, *krb5\_digest digest*, *const char \*opaque*);

*const char \**\

**krb5\_digest\_get\_identifier**(*krb5\_context context*, *krb5\_digest digest*);

*krb5\_error\_code*\

**krb5\_digest\_set\_identifier**(*krb5\_context context*, *krb5\_digest digest*, *const char \*id*);

*krb5\_error\_code*\

**krb5\_digest\_init\_request**(*krb5\_context context*, *krb5\_digest digest*, *krb5\_realm realm*, *krb5\_ccache ccache*);

*krb5\_error\_code*\

**krb5\_digest\_set\_client\_nonce**(*krb5\_context context*, *krb5\_digest digest*, *const char \*nonce*);

*krb5\_error\_code*\

**krb5\_digest\_set\_digest**(*krb5\_context context*, *krb5\_digest digest*, *const char \*dgst*);

*krb5\_error\_code*\

**krb5\_digest\_set\_username**(*krb5\_context context*, *krb5\_digest digest*, *const char \*username*);

*krb5\_error\_code*\

**krb5\_digest\_set\_authid**(*krb5\_context context*, *krb5\_digest digest*, *const char \*authid*);

*krb5\_error\_code*\

**krb5\_digest\_set\_authentication\_user**(*krb5\_context context*, *krb5\_digest digest*, *krb5\_principal authentication\_user*);

*krb5\_error\_code*\

**krb5\_digest\_set\_realm**(*krb5\_context context*, *krb5\_digest digest*, *const char \*realm*);

*krb5\_error\_code*\

**krb5\_digest\_set\_method**(*krb5\_context context*, *krb5\_digest digest*, *const char \*method*);

*krb5\_error\_code*\

**krb5\_digest\_set\_uri**(*krb5\_context context*, *krb5\_digest digest*, *const char \*uri*);

*krb5\_error\_code*\

**krb5\_digest\_set\_nonceCount**(*krb5\_context context*, *krb5\_digest digest*, *const char \*nonce\_count*);

*krb5\_error\_code*\

**krb5\_digest\_set\_qop**(*krb5\_context context*, *krb5\_digest digest*, *const char \*qop*);

*krb5\_error\_code*\

**krb5\_digest\_request**(*krb5\_context context*, *krb5\_digest digest*, *krb5\_realm realm*, *krb5\_ccache ccache*);

*const char \**\

**krb5\_digest\_get\_responseData**(*krb5\_context context*, *krb5\_digest digest*);

*const char \**\

**krb5\_digest\_get\_rsp**(*krb5\_context context*, *krb5\_digest digest*);

*krb5\_error\_code*\

**krb5\_digest\_get\_tickets**(*krb5\_context context*, *krb5\_digest digest*, *Ticket \*\*tickets*);

*krb5\_error\_code*\

**krb5\_digest\_get\_client\_binding**(*krb5\_context context*, *krb5\_digest digest*, *char \*\*type*, *char \*\*binding*);

*krb5\_error\_code*\

**krb5\_digest\_get\_a1\_hash**(*krb5\_context context*, *krb5\_digest digest*, *krb5\_data \*data*);

## DESCRIPTION

The **krb5\_digest\_alloc**() function allocatates the *digest* structure.  The structure should be freed with **krb5\_digest\_free**() when it is no longer being used.

**krb5\_digest\_alloc**() returns 0 to indicate success. Otherwise an kerberos code is returned and the pointer that *digest* points to is set to NULL.

**krb5\_digest\_free**() free the structure *digest*.

## SEE ALSO

[krb5(3)](/krb5/3.md), [kerberos(8)](/kerberos/8.md)
