CRYPT\_CHECKSALT(3) Library Functions Manual CRYPT\_CHECKSALT(3)

# [NAME](#NAME)

`crypt_checksalt` — validate a crypt setting string

# [LIBRARY](#LIBRARY)

Crypt Library (libcrypt, -lcrypt)

# [SYNOPSIS](#SYNOPSIS)

`#include <crypt.h>`

`int`  
`crypt_checksalt`(`const char *setting`);

# [DESCRIPTION](#DESCRIPTION)

`crypt_checksalt` checks the `setting` string against the system configuration and reports whether the hashing method and parameters it specifies are acceptable. It is intended to be used by programs such as [login(1)](/man/os/libxcrypt/login.1) to determine whether the user's passphrase should be re-hashed using the currently preferred hashing method.

# [RETURN VALUES](#RETURN_VALUES)

The return value is 0 if there is nothing wrong with this setting. Otherwise, it is one of the following constants:

[`CRYPT_SALT_OK`](#CRYPT_SALT_OK)

`setting` is a fully correct setting string. This constant is guaranteed to equal 0.

[`CRYPT_SALT_INVALID`](#CRYPT_SALT_INVALID)

`setting` is not a valid setting string; either it specifies a hashing method that is not known to this version of libxcrypt, or it specifies invalid parameters for the method.

[`CRYPT_SALT_METHOD_DISABLED (Not implemented, yet)`](#CRYPT_SALT_METHOD_DISABLED)

`setting` specifies a hashing method that is no longer allowed to be used at all; `crypt` will fail if passed this `setting`. Manual intervention will be required to reactivate the user's account.

[`CRYPT_SALT_METHOD_LEGACY`](#CRYPT_SALT_METHOD_LEGACY)

`setting` specifies a hashing method that is no longer considered strong enough for use with new passphrases. `crypt` will still authenticate a passphrase against this setting, but if authentication succeeds, the passphrase should be re-hashed using the currently preferred method.

[`CRYPT_SALT_TOO_CHEAP (Not implemented, yet)`](#CRYPT_SALT_TOO_CHEAP)

`setting` specifies cost parameters that are considered too cheap for use with new passphrases. `crypt` will still authenticate a passphrase against this setting, but if authentication succeeds, the passphrase should be re-hashed using the currently preferred method.

# [FEATURE TEST MACROS](#FEATURE_TEST_MACROS)

`<crypt.h>` will define the macro `CRYPT_CHECKSALT_AVAILABLE` if `crypt_checksalt` is available in the current version of libxcrypt.

# [BUGS](#BUGS)

Since full configurability is not yet implemented, the current implementation will only ever return `CRYPT_SALT_OK (0)` or `CRYPT_SALT_INVALID` when invoked.

# [PORTABILITY NOTES](#PORTABILITY_NOTES)

The function `crypt_checksalt` is not part of any standard. It was added to libxcrypt in version 4.3.0.

# [ATTRIBUTES](#ATTRIBUTES)

For an explanation of the terms used in this section, see [attributes(7)](/man/os/libxcrypt/attributes.7).

**Interface** **Attribute** **Value** Thread safety MT-Safe

# [SEE ALSO](#SEE_ALSO)

[crypt(3)](/man/os/libxcrypt/crypt.3), [crypt\_gensalt(3)](/man/os/libxcrypt/crypt_gensalt.3), [crypt(5)](/man/os/libxcrypt/crypt.5)

November 8, 2018 libxcrypt

---

Document: crypt_checksalt(3) from libxcrypt 4.5.2-r7 (Chainguard OS)
Source: https://github.com/besser82/libxcrypt
