/* Generated by genhashes.awk from hashes.lst.  DO NOT EDIT.  */

#ifndef _CRYPT_HASHES_H
#define _CRYPT_HASHES_H 1

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

/* Internal symbol renames for static linkage, see crypt-port.h.  */
#define crypt_yescrypt_rn _crypt_crypt_yescrypt_rn
#define gensalt_yescrypt_rn _crypt_gensalt_yescrypt_rn

#define crypt_gost_yescrypt_rn _crypt_crypt_gost_yescrypt_rn
#define gensalt_gost_yescrypt_rn _crypt_gensalt_gost_yescrypt_rn

#define crypt_scrypt_rn _crypt_crypt_scrypt_rn
#define gensalt_scrypt_rn _crypt_gensalt_scrypt_rn

#define crypt_bcrypt_rn _crypt_crypt_bcrypt_rn
#define gensalt_bcrypt_rn _crypt_gensalt_bcrypt_rn

#define crypt_bcrypt_y_rn _crypt_crypt_bcrypt_y_rn
#define gensalt_bcrypt_y_rn _crypt_gensalt_bcrypt_y_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_sha512crypt_rn _crypt_crypt_sha512crypt_rn
#define gensalt_sha512crypt_rn _crypt_gensalt_sha512crypt_rn

#define crypt_sha256crypt_rn _crypt_crypt_sha256crypt_rn
#define gensalt_sha256crypt_rn _crypt_gensalt_sha256crypt_rn

#define crypt_sha1crypt_rn _crypt_crypt_sha1crypt_rn
#define gensalt_sha1crypt_rn _crypt_gensalt_sha1crypt_rn

#define crypt_sunmd5_rn _crypt_crypt_sunmd5_rn
#define gensalt_sunmd5_rn _crypt_gensalt_sunmd5_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_bsdicrypt_rn _crypt_crypt_bsdicrypt_rn
#define gensalt_bsdicrypt_rn _crypt_gensalt_bsdicrypt_rn

#define crypt_bigcrypt_rn _crypt_crypt_bigcrypt_rn
#define gensalt_bigcrypt_rn _crypt_gensalt_bigcrypt_rn

#define crypt_descrypt_rn _crypt_crypt_descrypt_rn
#define gensalt_descrypt_rn _crypt_gensalt_descrypt_rn

/* Prototypes for hash algorithm entry points.  */
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);

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_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_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_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_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_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_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_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_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_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_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_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_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);

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

#define HASH_ALGORITHM_DEFAULT "$y$"

#endif /* crypt-hashes.h */
