---
name: "gsasl_scram_secrets_from_password"
section: "3"
platform: "linux"
package: "gsasl"
version: "2.2.4-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/gsasl_scram_secrets_from_password"
---

# gsasl\_scram\_secrets\_from\_password(3)

API function

## NAME

gsasl\_scram\_secrets\_from\_password - API function

## SYNOPSIS

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

**int gsasl\_scram\_secrets\_from\_password(Gsasl\_hash** *hash***, const char \*** *password***, unsigned int** *iteration\_count***, const char \*** *salt***, size\_t** *saltlen***, char \*** *salted\_password***, char \*** *client\_key***, char \*** *server\_key***, char \*** *stored\_key***);**

## ARGUMENTS

- Gsasl\_hash hash

  a **Gsasl\_hash** element, e.g., **GSASL\_HASH\_SHA256**.

- const char \* password

  input parameter with password.

- unsigned int iteration\_count

  number of PBKDF2 rounds to apply.

- const char \* salt

  input character array of  *saltlen* length with salt for PBKDF2.

- size\_t saltlen

  length of  *salt* .

- char \* salted\_password

  pre-allocated output array with derived salted password.

- char \* client\_key

  pre-allocated output array with derived client key.

- char \* server\_key

  pre-allocated output array with derived server key.

- char \* stored\_key

  pre-allocated output array with derived stored key.

## DESCRIPTION

Helper function to generate SCRAM secrets from a password.  The\
  *salted\_password* ,  *client\_key* ,  *server\_key* , and  *stored\_key* buffers must have room to hold digest for given  *hash* , use **GSASL\_HASH\_MAX\_SIZE** which is sufficient for all hashes.

Return value: Returns **GSASL\_OK** if successful, or error code.

## SINCE

1\.10

## REPORTING BUGS

Report bugs to \<bug-gsasl@gnu.org\>.\
 General guidelines for reporting bugs: https://www.gnu.org/gethelp/\
 GNU SASL home page: https://www.gnu.org/software/gsasl/

## COPYRIGHT

Copyright © 2002-2026 Simon Josefsson.\
 Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.

## SEE ALSO

The full documentation for **gsasl** is maintained as a Texinfo manual.  If the **info** and **gsasl** programs are properly installed at your site, the command

-

  **info gsasl**

should give you access to the complete manual. As an alternative you may obtain the manual from:

-

  **https://www.gnu.org/software/libidn/gsasl/manual/**
