Files
interactive/gms/KT/sdkfreebsd64/libs/mhash-0.9.9.9/lib/keygen.h
2026-08-07 17:38:18 +09:00

86 lines
3.0 KiB
C

#if !defined(__KEYGEN_H)
#define __KEYGEN_H
#include <mutils/mhash_config.h>
#include <mutils/mglobal.h>
#if defined(PROTOTYPES)
mutils_error _mhash_gen_key_asis(void *keyword, mutils_word32 key_size,
mutils_word8 *password, mutils_word32 plen);
mutils_error _mhash_gen_key_mcrypt(hashid algorithm,
void *keyword, mutils_word32 key_size,
void *salt, mutils_word32 salt_size,
mutils_word8 *password, mutils_word32 plen);
mutils_error _mhash_gen_key_hex(void *keyword, mutils_word32 key_size,
mutils_word8 *password, mutils_word32 plen);
mutils_error _mhash_gen_key_s2k_simple(hashid algorithm,
void *keyword, mutils_word32 key_size,
mutils_word8 *password, mutils_word32 plen);
mutils_error _mhash_gen_key_s2k_salted(hashid algorithm,
void *keyword, mutils_word32 key_size,
mutils_word8 *salt, mutils_word32 salt_size,
mutils_word8 *password, mutils_word32 plen);
mutils_error _mhash_gen_key_s2k_isalted(hashid algorithm, mutils_word64 count,
void *keyword, mutils_word32 key_size,
mutils_word8 *salt, mutils_word32 salt_size,
mutils_word8 *password, mutils_word32 plen);
mutils_error _mhash_gen_key_pkdes(void *keyword, mutils_word32 key_size,
mutils_word8 *password, mutils_word32 plen);
mutils_error _mhash_gen_key_crypt(void *keyword, mutils_word32 key_size,
mutils_word8 *password, mutils_word32 plen,
void *salt, mutils_word32 salt_size);
mutils_error _mhash_gen_key_scrypt(void *keyword, mutils_word32 key_size,
mutils_word8 *password, mutils_word32 plen);
#else
mutils_error _mhash_gen_key_asis();
mutils_error _mhash_gen_key_mcrypt();
mutils_error _mhash_gen_key_hex();
mutils_error _mhash_gen_key_s2k_simple();
mutils_error _mhash_gen_key_s2k_salted();
mutils_error _mhash_gen_key_s2k_isalted();
mutils_error _mhash_gen_key_pkdes();
mutils_error _mhash_gen_key_crypt();
mutils_error _mhash_gen_key_scrypt();
#endif
#if defined(KEYGEN_INTERNALS)
#define KEYGEN_ENTRY(name, uses_hash_algorithm, uses_count, uses_salt, salt_size, max_key_size) \
{ (mutils_word8 *) #name, name, uses_hash_algorithm, uses_count, uses_salt, salt_size, max_key_size }
typedef struct __mhash_keygen_entry {
mutils_word8 *name;
keygenid id;
mutils_boolean uses_hash_algorithm;
mutils_boolean uses_count;
mutils_boolean uses_salt;
mutils_word32 salt_size;
mutils_word32 max_key_size;
} mhash_keygen_entry;
static __const mhash_keygen_entry keygen_algorithms[] = {
KEYGEN_ENTRY(KEYGEN_ASIS, 0, 0, 0, 0, 0),
KEYGEN_ENTRY(KEYGEN_PKDES, 0, 0, 0, 0, 0),
KEYGEN_ENTRY(KEYGEN_HEX, 0, 0, 0, 0, 0),
KEYGEN_ENTRY(KEYGEN_MCRYPT, 1, 0, 1, 0, 0),
KEYGEN_ENTRY(KEYGEN_S2K_SIMPLE, 1, 0, 0, 0, 0),
KEYGEN_ENTRY(KEYGEN_S2K_SALTED, 1, 0, 1, 8, 0),
KEYGEN_ENTRY(KEYGEN_S2K_ISALTED, 1, 1, 1, 8, 0),
{0}
};
#define KEYGEN_LOOP(b) \
__const mhash_keygen_entry *p; \
for (p = keygen_algorithms; p->name != NULL; p++) { b ; }
#define KEYGEN_ALG_LOOP(a) \
KEYGEN_LOOP(if (p->id == type) { a; break; } )
#endif
#endif