/* Generated by gen-crypt-hashes-h from hashes.conf.  DO NOT EDIT.  */

#ifndef _CRYPT_HASHES_H
#define _CRYPT_HASHES_H 1

#define INCLUDE_bcrypt        1
#define INCLUDE_bcrypt_a      1
#define INCLUDE_bcrypt_x      1
#define INCLUDE_bcrypt_y      1
#define INCLUDE_bigcrypt      1
#define INCLUDE_bsdicrypt     1
#define INCLUDE_descrypt      1
#define INCLUDE_gost_yescrypt 1
#define INCLUDE_md5crypt      1
#define INCLUDE_nt            1
#define INCLUDE_scrypt        1
#define INCLUDE_sha1crypt     1
#define INCLUDE_sha256crypt   1
#define INCLUDE_sha512crypt   1
#define INCLUDE_sunmd5        1
#define INCLUDE_yescrypt      1

/* Internal symbol renames for static linkage, see crypt-port.h.  */
#define crypt_bcrypt_rn          _crypt_crypt_bcrypt_rn
#define gensalt_bcrypt_rn        _crypt_gensalt_bcrypt_rn
#define crypt_bcrypt_a_rn        _crypt_crypt_bcrypt_a_rn
#define gensalt_bcrypt_a_rn      _crypt_gensalt_bcrypt_a_rn
#define crypt_bcrypt_x_rn        _crypt_crypt_bcrypt_x_rn
#define gensalt_bcrypt_x_rn      _crypt_gensalt_bcrypt_x_rn
#define crypt_bcrypt_y_rn        _crypt_crypt_bcrypt_y_rn
#define gensalt_bcrypt_y_rn      _crypt_gensalt_bcrypt_y_rn
#define crypt_bigcrypt_rn        _crypt_crypt_bigcrypt_rn
#define gensalt_bigcrypt_rn      _crypt_gensalt_bigcrypt_rn
#define crypt_bsdicrypt_rn       _crypt_crypt_bsdicrypt_rn
#define gensalt_bsdicrypt_rn     _crypt_gensalt_bsdicrypt_rn
#define crypt_descrypt_rn        _crypt_crypt_descrypt_rn
#define gensalt_descrypt_rn      _crypt_gensalt_descrypt_rn
#define crypt_gost_yescrypt_rn   _crypt_crypt_gost_yescrypt_rn
#define gensalt_gost_yescrypt_rn _crypt_gensalt_gost_yescrypt_rn
#define crypt_md5crypt_rn        _crypt_crypt_md5crypt_rn
#define gensalt_md5crypt_rn      _crypt_gensalt_md5crypt_rn
#define crypt_nt_rn              _crypt_crypt_nt_rn
#define gensalt_nt_rn            _crypt_gensalt_nt_rn
#define crypt_scrypt_rn          _crypt_crypt_scrypt_rn
#define gensalt_scrypt_rn        _crypt_gensalt_scrypt_rn
#define crypt_sha1crypt_rn       _crypt_crypt_sha1crypt_rn
#define gensalt_sha1crypt_rn     _crypt_gensalt_sha1crypt_rn
#define crypt_sha256crypt_rn     _crypt_crypt_sha256crypt_rn
#define gensalt_sha256crypt_rn   _crypt_gensalt_sha256crypt_rn
#define crypt_sha512crypt_rn     _crypt_crypt_sha512crypt_rn
#define gensalt_sha512crypt_rn   _crypt_gensalt_sha512crypt_rn
#define crypt_sunmd5_rn          _crypt_crypt_sunmd5_rn
#define gensalt_sunmd5_rn        _crypt_gensalt_sunmd5_rn
#define crypt_yescrypt_rn        _crypt_crypt_yescrypt_rn
#define gensalt_yescrypt_rn      _crypt_gensalt_yescrypt_rn

/* Prototypes for hash algorithm entry points.  */
extern void crypt_bcrypt_rn (const char *, size_t, const char *,
                size_t, uint8_t *, size_t, void *, size_t);
extern void gensalt_bcrypt_rn (unsigned long,
                const uint8_t *, size_t, uint8_t *, size_t);

extern void crypt_bcrypt_a_rn (const char *, size_t, const char *,
                size_t, uint8_t *, size_t, void *, size_t);
extern void gensalt_bcrypt_a_rn (unsigned long,
                const uint8_t *, size_t, uint8_t *, size_t);

extern void crypt_bcrypt_x_rn (const char *, size_t, const char *,
                size_t, uint8_t *, size_t, void *, size_t);
extern void gensalt_bcrypt_x_rn (unsigned long,
                const uint8_t *, size_t, uint8_t *, size_t);

extern void crypt_bcrypt_y_rn (const char *, size_t, const char *,
                size_t, uint8_t *, size_t, void *, size_t);
extern void gensalt_bcrypt_y_rn (unsigned long,
                const uint8_t *, size_t, uint8_t *, size_t);

extern void crypt_bigcrypt_rn (const char *, size_t, const char *,
                size_t, uint8_t *, size_t, void *, size_t);
extern void gensalt_bigcrypt_rn (unsigned long,
                const uint8_t *, size_t, uint8_t *, size_t);

extern void crypt_bsdicrypt_rn (const char *, size_t, const char *,
                size_t, uint8_t *, size_t, void *, size_t);
extern void gensalt_bsdicrypt_rn (unsigned long,
                const uint8_t *, size_t, uint8_t *, size_t);

extern void crypt_descrypt_rn (const char *, size_t, const char *,
                size_t, uint8_t *, size_t, void *, size_t);
extern void gensalt_descrypt_rn (unsigned long,
                const uint8_t *, size_t, uint8_t *, size_t);

extern void crypt_gost_yescrypt_rn (const char *, size_t, const char *,
                size_t, uint8_t *, size_t, void *, size_t);
extern void gensalt_gost_yescrypt_rn (unsigned long,
                const uint8_t *, size_t, uint8_t *, size_t);

extern void crypt_md5crypt_rn (const char *, size_t, const char *,
                size_t, uint8_t *, size_t, void *, size_t);
extern void gensalt_md5crypt_rn (unsigned long,
                const uint8_t *, size_t, uint8_t *, size_t);

extern void crypt_nt_rn (const char *, size_t, const char *,
                size_t, uint8_t *, size_t, void *, size_t);
extern void gensalt_nt_rn (unsigned long,
                const uint8_t *, size_t, uint8_t *, size_t);

extern void crypt_scrypt_rn (const char *, size_t, const char *,
                size_t, uint8_t *, size_t, void *, size_t);
extern void gensalt_scrypt_rn (unsigned long,
                const uint8_t *, size_t, uint8_t *, size_t);

extern void crypt_sha1crypt_rn (const char *, size_t, const char *,
                size_t, uint8_t *, size_t, void *, size_t);
extern void gensalt_sha1crypt_rn (unsigned long,
                const uint8_t *, size_t, uint8_t *, size_t);

extern void crypt_sha256crypt_rn (const char *, size_t, const char *,
                size_t, uint8_t *, size_t, void *, size_t);
extern void gensalt_sha256crypt_rn (unsigned long,
                const uint8_t *, size_t, uint8_t *, size_t);

extern void crypt_sha512crypt_rn (const char *, size_t, const char *,
                size_t, uint8_t *, size_t, void *, size_t);
extern void gensalt_sha512crypt_rn (unsigned long,
                const uint8_t *, size_t, uint8_t *, size_t);

extern void crypt_sunmd5_rn (const char *, size_t, const char *,
                size_t, uint8_t *, size_t, void *, size_t);
extern void gensalt_sunmd5_rn (unsigned long,
                const uint8_t *, size_t, uint8_t *, size_t);

extern void crypt_yescrypt_rn (const char *, size_t, const char *,
                size_t, uint8_t *, size_t, void *, size_t);
extern void gensalt_yescrypt_rn (unsigned long,
                const uint8_t *, size_t, uint8_t *, size_t);

#define HASH_ALGORITHM_TABLE_ENTRIES \
  { "$sha1", 5, crypt_sha1crypt_rn,     gensalt_sha1crypt_rn,     20, 0}, \
  { "$2a$",  4, crypt_bcrypt_a_rn,      gensalt_bcrypt_a_rn,      16, 1}, \
  { "$2b$",  4, crypt_bcrypt_rn,        gensalt_bcrypt_rn,        16, 1}, \
  { "$2x$",  4, crypt_bcrypt_x_rn,      gensalt_bcrypt_x_rn,      16, 0}, \
  { "$2y$",  4, crypt_bcrypt_y_rn,      gensalt_bcrypt_y_rn,      16, 1}, \
  { "$gy$",  4, crypt_gost_yescrypt_rn, gensalt_gost_yescrypt_rn, 16, 1}, \
  { "$md5",  4, crypt_sunmd5_rn,        gensalt_sunmd5_rn,        8,  0}, \
  { "$1$",   3, crypt_md5crypt_rn,      gensalt_md5crypt_rn,      9,  0}, \
  { "$3$",   3, crypt_nt_rn,            gensalt_nt_rn,            1,  0}, \
  { "$5$",   3, crypt_sha256crypt_rn,   gensalt_sha256crypt_rn,   15, 0}, \
  { "$6$",   3, crypt_sha512crypt_rn,   gensalt_sha512crypt_rn,   15, 1}, \
  { "$7$",   3, crypt_scrypt_rn,        gensalt_scrypt_rn,        16, 1}, \
  { "$y$",   3, crypt_yescrypt_rn,      gensalt_yescrypt_rn,      16, 1}, \
  { "_",     1, crypt_bsdicrypt_rn,     gensalt_bsdicrypt_rn,     3,  0}, \
  { "",      0, crypt_bigcrypt_rn,      gensalt_bigcrypt_rn,      2,  0}, \
  { "",      0, crypt_descrypt_rn,      gensalt_descrypt_rn,      2,  0}, \
  { 0, 0, 0, 0, 0, 0 }

#define HASH_ALGORITHM_DEFAULT "$y$"

#endif /* crypt-hashes.h */
