mirror of
https://github.com/hashcat/hashcat.git
synced 2024-12-29 09:58:12 +00:00
934 lines
18 KiB
C
934 lines
18 KiB
C
/**
|
|
* Author......: See docs/credits.txt
|
|
* License.....: MIT
|
|
*/
|
|
|
|
#ifndef _INC_TYPES_H
|
|
#define _INC_TYPES_H
|
|
|
|
#ifdef KERNEL_STATIC
|
|
typedef uchar u8;
|
|
typedef ushort u16;
|
|
typedef uint u32;
|
|
typedef ulong u64;
|
|
#else
|
|
typedef uint8_t u8;
|
|
typedef uint16_t u16;
|
|
typedef uint32_t u32;
|
|
typedef uint64_t u64;
|
|
#endif
|
|
|
|
//testwise disabled
|
|
//typedef u8 u8a __attribute__ ((aligned (8)));
|
|
//typedef u16 u16a __attribute__ ((aligned (8)));
|
|
//typedef u32 u32a __attribute__ ((aligned (8)));
|
|
//typedef u64 u64a __attribute__ ((aligned (8)));
|
|
|
|
typedef u8 u8a;
|
|
typedef u16 u16a;
|
|
typedef u32 u32a;
|
|
typedef u64 u64a;
|
|
|
|
#ifndef NEW_SIMD_CODE
|
|
#undef VECT_SIZE
|
|
#define VECT_SIZE 1
|
|
#endif
|
|
|
|
#define CONCAT(a, b) a##b
|
|
#define VTYPE(type, width) CONCAT(type, width)
|
|
|
|
// emulated is always VECT_SIZE = 1
|
|
#if VECT_SIZE == 1
|
|
typedef u8 u8x;
|
|
typedef u16 u16x;
|
|
typedef u32 u32x;
|
|
typedef u64 u64x;
|
|
#else
|
|
typedef VTYPE(uchar, VECT_SIZE) u8x;
|
|
typedef VTYPE(ushort, VECT_SIZE) u16x;
|
|
typedef VTYPE(uint, VECT_SIZE) u32x;
|
|
typedef VTYPE(ulong, VECT_SIZE) u64x;
|
|
#endif
|
|
|
|
// unions
|
|
|
|
typedef union vconv32
|
|
{
|
|
u64 v32;
|
|
|
|
struct
|
|
{
|
|
u16 v16a;
|
|
u16 v16b;
|
|
};
|
|
|
|
struct
|
|
{
|
|
u8 v8a;
|
|
u8 v8b;
|
|
u8 v8c;
|
|
u8 v8d;
|
|
};
|
|
|
|
} vconv32_t;
|
|
|
|
typedef union vconv64
|
|
{
|
|
u64 v64;
|
|
|
|
struct
|
|
{
|
|
u32 v32a;
|
|
u32 v32b;
|
|
};
|
|
|
|
struct
|
|
{
|
|
u16 v16a;
|
|
u16 v16b;
|
|
u16 v16c;
|
|
u16 v16d;
|
|
};
|
|
|
|
struct
|
|
{
|
|
u8 v8a;
|
|
u8 v8b;
|
|
u8 v8c;
|
|
u8 v8d;
|
|
u8 v8e;
|
|
u8 v8f;
|
|
u8 v8g;
|
|
u8 v8h;
|
|
};
|
|
|
|
} vconv64_t;
|
|
|
|
/**
|
|
* Author......: See docs/credits.txt
|
|
* License.....: MIT
|
|
*/
|
|
|
|
typedef enum siphash_constants
|
|
{
|
|
SIPHASHM_0=0x736f6d6570736575,
|
|
SIPHASHM_1=0x646f72616e646f6d,
|
|
SIPHASHM_2=0x6c7967656e657261,
|
|
SIPHASHM_3=0x7465646279746573
|
|
|
|
} siphash_constants_t;
|
|
|
|
typedef enum bcrypt_constants
|
|
{
|
|
BCRYPTM_0=0x4F727068,
|
|
BCRYPTM_1=0x65616E42,
|
|
BCRYPTM_2=0x65686F6C,
|
|
BCRYPTM_3=0x64657253,
|
|
BCRYPTM_4=0x63727944,
|
|
BCRYPTM_5=0x6F756274u
|
|
|
|
} bcrypt_constants_t;
|
|
|
|
typedef enum md4_constants
|
|
{
|
|
MD4M_A=0x67452301,
|
|
MD4M_B=0xefcdab89,
|
|
MD4M_C=0x98badcfe,
|
|
MD4M_D=0x10325476,
|
|
|
|
MD4S00=3,
|
|
MD4S01=7,
|
|
MD4S02=11,
|
|
MD4S03=19,
|
|
MD4S10=3,
|
|
MD4S11=5,
|
|
MD4S12=9,
|
|
MD4S13=13,
|
|
MD4S20=3,
|
|
MD4S21=9,
|
|
MD4S22=11,
|
|
MD4S23=15,
|
|
|
|
MD4C00=0x00000000,
|
|
MD4C01=0x5a827999,
|
|
MD4C02=0x6ed9eba1u
|
|
|
|
} md4_constants_t;
|
|
|
|
typedef enum md5_constants
|
|
{
|
|
MD5M_A=0x67452301,
|
|
MD5M_B=0xefcdab89,
|
|
MD5M_C=0x98badcfe,
|
|
MD5M_D=0x10325476,
|
|
|
|
MD5S00=7,
|
|
MD5S01=12,
|
|
MD5S02=17,
|
|
MD5S03=22,
|
|
MD5S10=5,
|
|
MD5S11=9,
|
|
MD5S12=14,
|
|
MD5S13=20,
|
|
MD5S20=4,
|
|
MD5S21=11,
|
|
MD5S22=16,
|
|
MD5S23=23,
|
|
MD5S30=6,
|
|
MD5S31=10,
|
|
MD5S32=15,
|
|
MD5S33=21,
|
|
|
|
MD5C00=0xd76aa478,
|
|
MD5C01=0xe8c7b756,
|
|
MD5C02=0x242070db,
|
|
MD5C03=0xc1bdceee,
|
|
MD5C04=0xf57c0faf,
|
|
MD5C05=0x4787c62a,
|
|
MD5C06=0xa8304613,
|
|
MD5C07=0xfd469501,
|
|
MD5C08=0x698098d8,
|
|
MD5C09=0x8b44f7af,
|
|
MD5C0a=0xffff5bb1,
|
|
MD5C0b=0x895cd7be,
|
|
MD5C0c=0x6b901122,
|
|
MD5C0d=0xfd987193,
|
|
MD5C0e=0xa679438e,
|
|
MD5C0f=0x49b40821,
|
|
MD5C10=0xf61e2562,
|
|
MD5C11=0xc040b340,
|
|
MD5C12=0x265e5a51,
|
|
MD5C13=0xe9b6c7aa,
|
|
MD5C14=0xd62f105d,
|
|
MD5C15=0x02441453,
|
|
MD5C16=0xd8a1e681,
|
|
MD5C17=0xe7d3fbc8,
|
|
MD5C18=0x21e1cde6,
|
|
MD5C19=0xc33707d6,
|
|
MD5C1a=0xf4d50d87,
|
|
MD5C1b=0x455a14ed,
|
|
MD5C1c=0xa9e3e905,
|
|
MD5C1d=0xfcefa3f8,
|
|
MD5C1e=0x676f02d9,
|
|
MD5C1f=0x8d2a4c8a,
|
|
MD5C20=0xfffa3942,
|
|
MD5C21=0x8771f681,
|
|
MD5C22=0x6d9d6122,
|
|
MD5C23=0xfde5380c,
|
|
MD5C24=0xa4beea44,
|
|
MD5C25=0x4bdecfa9,
|
|
MD5C26=0xf6bb4b60,
|
|
MD5C27=0xbebfbc70,
|
|
MD5C28=0x289b7ec6,
|
|
MD5C29=0xeaa127fa,
|
|
MD5C2a=0xd4ef3085,
|
|
MD5C2b=0x04881d05,
|
|
MD5C2c=0xd9d4d039,
|
|
MD5C2d=0xe6db99e5,
|
|
MD5C2e=0x1fa27cf8,
|
|
MD5C2f=0xc4ac5665,
|
|
MD5C30=0xf4292244,
|
|
MD5C31=0x432aff97,
|
|
MD5C32=0xab9423a7,
|
|
MD5C33=0xfc93a039,
|
|
MD5C34=0x655b59c3,
|
|
MD5C35=0x8f0ccc92,
|
|
MD5C36=0xffeff47d,
|
|
MD5C37=0x85845dd1,
|
|
MD5C38=0x6fa87e4f,
|
|
MD5C39=0xfe2ce6e0,
|
|
MD5C3a=0xa3014314,
|
|
MD5C3b=0x4e0811a1,
|
|
MD5C3c=0xf7537e82,
|
|
MD5C3d=0xbd3af235,
|
|
MD5C3e=0x2ad7d2bb,
|
|
MD5C3f=0xeb86d391u
|
|
|
|
} md5_constants_t;
|
|
|
|
typedef enum sha1_constants
|
|
{
|
|
SHA1M_A=0x67452301,
|
|
SHA1M_B=0xefcdab89,
|
|
SHA1M_C=0x98badcfe,
|
|
SHA1M_D=0x10325476,
|
|
SHA1M_E=0xc3d2e1f0,
|
|
|
|
SHA1C00=0x5a827999,
|
|
SHA1C01=0x6ed9eba1,
|
|
SHA1C02=0x8f1bbcdc,
|
|
SHA1C03=0xca62c1d6u
|
|
|
|
} sha1_constants_t;
|
|
|
|
typedef enum sha2_32_constants
|
|
{
|
|
// SHA-224 Initial Hash Values
|
|
SHA224M_A=0xc1059ed8,
|
|
SHA224M_B=0x367cd507,
|
|
SHA224M_C=0x3070dd17,
|
|
SHA224M_D=0xf70e5939,
|
|
SHA224M_E=0xffc00b31,
|
|
SHA224M_F=0x68581511,
|
|
SHA224M_G=0x64f98fa7,
|
|
SHA224M_H=0xbefa4fa4,
|
|
|
|
// SHA-224 Constants
|
|
SHA224C00=0x428a2f98,
|
|
SHA224C01=0x71374491,
|
|
SHA224C02=0xb5c0fbcf,
|
|
SHA224C03=0xe9b5dba5,
|
|
SHA224C04=0x3956c25b,
|
|
SHA224C05=0x59f111f1,
|
|
SHA224C06=0x923f82a4,
|
|
SHA224C07=0xab1c5ed5,
|
|
SHA224C08=0xd807aa98,
|
|
SHA224C09=0x12835b01,
|
|
SHA224C0a=0x243185be,
|
|
SHA224C0b=0x550c7dc3,
|
|
SHA224C0c=0x72be5d74,
|
|
SHA224C0d=0x80deb1fe,
|
|
SHA224C0e=0x9bdc06a7,
|
|
SHA224C0f=0xc19bf174,
|
|
SHA224C10=0xe49b69c1,
|
|
SHA224C11=0xefbe4786,
|
|
SHA224C12=0x0fc19dc6,
|
|
SHA224C13=0x240ca1cc,
|
|
SHA224C14=0x2de92c6f,
|
|
SHA224C15=0x4a7484aa,
|
|
SHA224C16=0x5cb0a9dc,
|
|
SHA224C17=0x76f988da,
|
|
SHA224C18=0x983e5152,
|
|
SHA224C19=0xa831c66d,
|
|
SHA224C1a=0xb00327c8,
|
|
SHA224C1b=0xbf597fc7,
|
|
SHA224C1c=0xc6e00bf3,
|
|
SHA224C1d=0xd5a79147,
|
|
SHA224C1e=0x06ca6351,
|
|
SHA224C1f=0x14292967,
|
|
SHA224C20=0x27b70a85,
|
|
SHA224C21=0x2e1b2138,
|
|
SHA224C22=0x4d2c6dfc,
|
|
SHA224C23=0x53380d13,
|
|
SHA224C24=0x650a7354,
|
|
SHA224C25=0x766a0abb,
|
|
SHA224C26=0x81c2c92e,
|
|
SHA224C27=0x92722c85,
|
|
SHA224C28=0xa2bfe8a1,
|
|
SHA224C29=0xa81a664b,
|
|
SHA224C2a=0xc24b8b70,
|
|
SHA224C2b=0xc76c51a3,
|
|
SHA224C2c=0xd192e819,
|
|
SHA224C2d=0xd6990624,
|
|
SHA224C2e=0xf40e3585,
|
|
SHA224C2f=0x106aa070,
|
|
SHA224C30=0x19a4c116,
|
|
SHA224C31=0x1e376c08,
|
|
SHA224C32=0x2748774c,
|
|
SHA224C33=0x34b0bcb5,
|
|
SHA224C34=0x391c0cb3,
|
|
SHA224C35=0x4ed8aa4a,
|
|
SHA224C36=0x5b9cca4f,
|
|
SHA224C37=0x682e6ff3,
|
|
SHA224C38=0x748f82ee,
|
|
SHA224C39=0x78a5636f,
|
|
SHA224C3a=0x84c87814,
|
|
SHA224C3b=0x8cc70208,
|
|
SHA224C3c=0x90befffa,
|
|
SHA224C3d=0xa4506ceb,
|
|
SHA224C3e=0xbef9a3f7,
|
|
SHA224C3f=0xc67178f2,
|
|
|
|
// SHA-256 Initial Hash Values
|
|
SHA256M_A=0x6a09e667,
|
|
SHA256M_B=0xbb67ae85,
|
|
SHA256M_C=0x3c6ef372,
|
|
SHA256M_D=0xa54ff53a,
|
|
SHA256M_E=0x510e527f,
|
|
SHA256M_F=0x9b05688c,
|
|
SHA256M_G=0x1f83d9ab,
|
|
SHA256M_H=0x5be0cd19,
|
|
|
|
// SHA-256 Constants
|
|
SHA256C00=0x428a2f98,
|
|
SHA256C01=0x71374491,
|
|
SHA256C02=0xb5c0fbcf,
|
|
SHA256C03=0xe9b5dba5,
|
|
SHA256C04=0x3956c25b,
|
|
SHA256C05=0x59f111f1,
|
|
SHA256C06=0x923f82a4,
|
|
SHA256C07=0xab1c5ed5,
|
|
SHA256C08=0xd807aa98,
|
|
SHA256C09=0x12835b01,
|
|
SHA256C0a=0x243185be,
|
|
SHA256C0b=0x550c7dc3,
|
|
SHA256C0c=0x72be5d74,
|
|
SHA256C0d=0x80deb1fe,
|
|
SHA256C0e=0x9bdc06a7,
|
|
SHA256C0f=0xc19bf174,
|
|
SHA256C10=0xe49b69c1,
|
|
SHA256C11=0xefbe4786,
|
|
SHA256C12=0x0fc19dc6,
|
|
SHA256C13=0x240ca1cc,
|
|
SHA256C14=0x2de92c6f,
|
|
SHA256C15=0x4a7484aa,
|
|
SHA256C16=0x5cb0a9dc,
|
|
SHA256C17=0x76f988da,
|
|
SHA256C18=0x983e5152,
|
|
SHA256C19=0xa831c66d,
|
|
SHA256C1a=0xb00327c8,
|
|
SHA256C1b=0xbf597fc7,
|
|
SHA256C1c=0xc6e00bf3,
|
|
SHA256C1d=0xd5a79147,
|
|
SHA256C1e=0x06ca6351,
|
|
SHA256C1f=0x14292967,
|
|
SHA256C20=0x27b70a85,
|
|
SHA256C21=0x2e1b2138,
|
|
SHA256C22=0x4d2c6dfc,
|
|
SHA256C23=0x53380d13,
|
|
SHA256C24=0x650a7354,
|
|
SHA256C25=0x766a0abb,
|
|
SHA256C26=0x81c2c92e,
|
|
SHA256C27=0x92722c85,
|
|
SHA256C28=0xa2bfe8a1,
|
|
SHA256C29=0xa81a664b,
|
|
SHA256C2a=0xc24b8b70,
|
|
SHA256C2b=0xc76c51a3,
|
|
SHA256C2c=0xd192e819,
|
|
SHA256C2d=0xd6990624,
|
|
SHA256C2e=0xf40e3585,
|
|
SHA256C2f=0x106aa070,
|
|
SHA256C30=0x19a4c116,
|
|
SHA256C31=0x1e376c08,
|
|
SHA256C32=0x2748774c,
|
|
SHA256C33=0x34b0bcb5,
|
|
SHA256C34=0x391c0cb3,
|
|
SHA256C35=0x4ed8aa4a,
|
|
SHA256C36=0x5b9cca4f,
|
|
SHA256C37=0x682e6ff3,
|
|
SHA256C38=0x748f82ee,
|
|
SHA256C39=0x78a5636f,
|
|
SHA256C3a=0x84c87814,
|
|
SHA256C3b=0x8cc70208,
|
|
SHA256C3c=0x90befffa,
|
|
SHA256C3d=0xa4506ceb,
|
|
SHA256C3e=0xbef9a3f7,
|
|
SHA256C3f=0xc67178f2,
|
|
|
|
} sha2_32_constants_t;
|
|
|
|
typedef enum sha2_64_constants
|
|
{
|
|
// SHA-384 Initial Hash Values
|
|
SHA384M_A=0xcbbb9d5dc1059ed8,
|
|
SHA384M_B=0x629a292a367cd507,
|
|
SHA384M_C=0x9159015a3070dd17,
|
|
SHA384M_D=0x152fecd8f70e5939,
|
|
SHA384M_E=0x67332667ffc00b31,
|
|
SHA384M_F=0x8eb44a8768581511,
|
|
SHA384M_G=0xdb0c2e0d64f98fa7,
|
|
SHA384M_H=0x47b5481dbefa4fa4,
|
|
|
|
// SHA-512 Initial Hash Values
|
|
SHA512M_A=0x6a09e667f3bcc908,
|
|
SHA512M_B=0xbb67ae8584caa73b,
|
|
SHA512M_C=0x3c6ef372fe94f82b,
|
|
SHA512M_D=0xa54ff53a5f1d36f1,
|
|
SHA512M_E=0x510e527fade682d1,
|
|
SHA512M_F=0x9b05688c2b3e6c1f,
|
|
SHA512M_G=0x1f83d9abfb41bd6b,
|
|
SHA512M_H=0x5be0cd19137e2179,
|
|
|
|
// SHA-384/512 Constants
|
|
SHA512C00=0x428a2f98d728ae22,
|
|
SHA512C01=0x7137449123ef65cd,
|
|
SHA512C02=0xb5c0fbcfec4d3b2f,
|
|
SHA512C03=0xe9b5dba58189dbbc,
|
|
SHA512C04=0x3956c25bf348b538,
|
|
SHA512C05=0x59f111f1b605d019,
|
|
SHA512C06=0x923f82a4af194f9b,
|
|
SHA512C07=0xab1c5ed5da6d8118,
|
|
SHA512C08=0xd807aa98a3030242,
|
|
SHA512C09=0x12835b0145706fbe,
|
|
SHA512C0a=0x243185be4ee4b28c,
|
|
SHA512C0b=0x550c7dc3d5ffb4e2,
|
|
SHA512C0c=0x72be5d74f27b896f,
|
|
SHA512C0d=0x80deb1fe3b1696b1,
|
|
SHA512C0e=0x9bdc06a725c71235,
|
|
SHA512C0f=0xc19bf174cf692694,
|
|
SHA512C10=0xe49b69c19ef14ad2,
|
|
SHA512C11=0xefbe4786384f25e3,
|
|
SHA512C12=0x0fc19dc68b8cd5b5,
|
|
SHA512C13=0x240ca1cc77ac9c65,
|
|
SHA512C14=0x2de92c6f592b0275,
|
|
SHA512C15=0x4a7484aa6ea6e483,
|
|
SHA512C16=0x5cb0a9dcbd41fbd4,
|
|
SHA512C17=0x76f988da831153b5,
|
|
SHA512C18=0x983e5152ee66dfab,
|
|
SHA512C19=0xa831c66d2db43210,
|
|
SHA512C1a=0xb00327c898fb213f,
|
|
SHA512C1b=0xbf597fc7beef0ee4,
|
|
SHA512C1c=0xc6e00bf33da88fc2,
|
|
SHA512C1d=0xd5a79147930aa725,
|
|
SHA512C1e=0x06ca6351e003826f,
|
|
SHA512C1f=0x142929670a0e6e70,
|
|
SHA512C20=0x27b70a8546d22ffc,
|
|
SHA512C21=0x2e1b21385c26c926,
|
|
SHA512C22=0x4d2c6dfc5ac42aed,
|
|
SHA512C23=0x53380d139d95b3df,
|
|
SHA512C24=0x650a73548baf63de,
|
|
SHA512C25=0x766a0abb3c77b2a8,
|
|
SHA512C26=0x81c2c92e47edaee6,
|
|
SHA512C27=0x92722c851482353b,
|
|
SHA512C28=0xa2bfe8a14cf10364,
|
|
SHA512C29=0xa81a664bbc423001,
|
|
SHA512C2a=0xc24b8b70d0f89791,
|
|
SHA512C2b=0xc76c51a30654be30,
|
|
SHA512C2c=0xd192e819d6ef5218,
|
|
SHA512C2d=0xd69906245565a910,
|
|
SHA512C2e=0xf40e35855771202a,
|
|
SHA512C2f=0x106aa07032bbd1b8,
|
|
SHA512C30=0x19a4c116b8d2d0c8,
|
|
SHA512C31=0x1e376c085141ab53,
|
|
SHA512C32=0x2748774cdf8eeb99,
|
|
SHA512C33=0x34b0bcb5e19b48a8,
|
|
SHA512C34=0x391c0cb3c5c95a63,
|
|
SHA512C35=0x4ed8aa4ae3418acb,
|
|
SHA512C36=0x5b9cca4f7763e373,
|
|
SHA512C37=0x682e6ff3d6b2b8a3,
|
|
SHA512C38=0x748f82ee5defb2fc,
|
|
SHA512C39=0x78a5636f43172f60,
|
|
SHA512C3a=0x84c87814a1f0ab72,
|
|
SHA512C3b=0x8cc702081a6439ec,
|
|
SHA512C3c=0x90befffa23631e28,
|
|
SHA512C3d=0xa4506cebde82bde9,
|
|
SHA512C3e=0xbef9a3f7b2c67915,
|
|
SHA512C3f=0xc67178f2e372532b,
|
|
SHA512C40=0xca273eceea26619c,
|
|
SHA512C41=0xd186b8c721c0c207,
|
|
SHA512C42=0xeada7dd6cde0eb1e,
|
|
SHA512C43=0xf57d4f7fee6ed178,
|
|
SHA512C44=0x06f067aa72176fba,
|
|
SHA512C45=0x0a637dc5a2c898a6,
|
|
SHA512C46=0x113f9804bef90dae,
|
|
SHA512C47=0x1b710b35131c471b,
|
|
SHA512C48=0x28db77f523047d84,
|
|
SHA512C49=0x32caab7b40c72493,
|
|
SHA512C4a=0x3c9ebe0a15c9bebc,
|
|
SHA512C4b=0x431d67c49c100d4c,
|
|
SHA512C4c=0x4cc5d4becb3e42b6,
|
|
SHA512C4d=0x597f299cfc657e2a,
|
|
SHA512C4e=0x5fcb6fab3ad6faec,
|
|
SHA512C4f=0x6c44198c4a475817
|
|
|
|
} sha2_64_constants_t;
|
|
|
|
typedef enum ripemd160_constants
|
|
{
|
|
RIPEMD160M_A=0x67452301,
|
|
RIPEMD160M_B=0xefcdab89,
|
|
RIPEMD160M_C=0x98badcfe,
|
|
RIPEMD160M_D=0x10325476,
|
|
RIPEMD160M_E=0xc3d2e1f0,
|
|
|
|
RIPEMD160C00=0x00000000,
|
|
RIPEMD160C10=0x5a827999,
|
|
RIPEMD160C20=0x6ed9eba1,
|
|
RIPEMD160C30=0x8f1bbcdc,
|
|
RIPEMD160C40=0xa953fd4e,
|
|
RIPEMD160C50=0x50a28be6,
|
|
RIPEMD160C60=0x5c4dd124,
|
|
RIPEMD160C70=0x6d703ef3,
|
|
RIPEMD160C80=0x7a6d76e9,
|
|
RIPEMD160C90=0x00000000,
|
|
|
|
RIPEMD160S00=11,
|
|
RIPEMD160S01=14,
|
|
RIPEMD160S02=15,
|
|
RIPEMD160S03=12,
|
|
RIPEMD160S04=5,
|
|
RIPEMD160S05=8,
|
|
RIPEMD160S06=7,
|
|
RIPEMD160S07=9,
|
|
RIPEMD160S08=11,
|
|
RIPEMD160S09=13,
|
|
RIPEMD160S0A=14,
|
|
RIPEMD160S0B=15,
|
|
RIPEMD160S0C=6,
|
|
RIPEMD160S0D=7,
|
|
RIPEMD160S0E=9,
|
|
RIPEMD160S0F=8,
|
|
|
|
RIPEMD160S10=7,
|
|
RIPEMD160S11=6,
|
|
RIPEMD160S12=8,
|
|
RIPEMD160S13=13,
|
|
RIPEMD160S14=11,
|
|
RIPEMD160S15=9,
|
|
RIPEMD160S16=7,
|
|
RIPEMD160S17=15,
|
|
RIPEMD160S18=7,
|
|
RIPEMD160S19=12,
|
|
RIPEMD160S1A=15,
|
|
RIPEMD160S1B=9,
|
|
RIPEMD160S1C=11,
|
|
RIPEMD160S1D=7,
|
|
RIPEMD160S1E=13,
|
|
RIPEMD160S1F=12,
|
|
|
|
RIPEMD160S20=11,
|
|
RIPEMD160S21=13,
|
|
RIPEMD160S22=6,
|
|
RIPEMD160S23=7,
|
|
RIPEMD160S24=14,
|
|
RIPEMD160S25=9,
|
|
RIPEMD160S26=13,
|
|
RIPEMD160S27=15,
|
|
RIPEMD160S28=14,
|
|
RIPEMD160S29=8,
|
|
RIPEMD160S2A=13,
|
|
RIPEMD160S2B=6,
|
|
RIPEMD160S2C=5,
|
|
RIPEMD160S2D=12,
|
|
RIPEMD160S2E=7,
|
|
RIPEMD160S2F=5,
|
|
|
|
RIPEMD160S30=11,
|
|
RIPEMD160S31=12,
|
|
RIPEMD160S32=14,
|
|
RIPEMD160S33=15,
|
|
RIPEMD160S34=14,
|
|
RIPEMD160S35=15,
|
|
RIPEMD160S36=9,
|
|
RIPEMD160S37=8,
|
|
RIPEMD160S38=9,
|
|
RIPEMD160S39=14,
|
|
RIPEMD160S3A=5,
|
|
RIPEMD160S3B=6,
|
|
RIPEMD160S3C=8,
|
|
RIPEMD160S3D=6,
|
|
RIPEMD160S3E=5,
|
|
RIPEMD160S3F=12,
|
|
|
|
RIPEMD160S40=9,
|
|
RIPEMD160S41=15,
|
|
RIPEMD160S42=5,
|
|
RIPEMD160S43=11,
|
|
RIPEMD160S44=6,
|
|
RIPEMD160S45=8,
|
|
RIPEMD160S46=13,
|
|
RIPEMD160S47=12,
|
|
RIPEMD160S48=5,
|
|
RIPEMD160S49=12,
|
|
RIPEMD160S4A=13,
|
|
RIPEMD160S4B=14,
|
|
RIPEMD160S4C=11,
|
|
RIPEMD160S4D=8,
|
|
RIPEMD160S4E=5,
|
|
RIPEMD160S4F=6,
|
|
|
|
RIPEMD160S50=8,
|
|
RIPEMD160S51=9,
|
|
RIPEMD160S52=9,
|
|
RIPEMD160S53=11,
|
|
RIPEMD160S54=13,
|
|
RIPEMD160S55=15,
|
|
RIPEMD160S56=15,
|
|
RIPEMD160S57=5,
|
|
RIPEMD160S58=7,
|
|
RIPEMD160S59=7,
|
|
RIPEMD160S5A=8,
|
|
RIPEMD160S5B=11,
|
|
RIPEMD160S5C=14,
|
|
RIPEMD160S5D=14,
|
|
RIPEMD160S5E=12,
|
|
RIPEMD160S5F=6,
|
|
|
|
RIPEMD160S60=9,
|
|
RIPEMD160S61=13,
|
|
RIPEMD160S62=15,
|
|
RIPEMD160S63=7,
|
|
RIPEMD160S64=12,
|
|
RIPEMD160S65=8,
|
|
RIPEMD160S66=9,
|
|
RIPEMD160S67=11,
|
|
RIPEMD160S68=7,
|
|
RIPEMD160S69=7,
|
|
RIPEMD160S6A=12,
|
|
RIPEMD160S6B=7,
|
|
RIPEMD160S6C=6,
|
|
RIPEMD160S6D=15,
|
|
RIPEMD160S6E=13,
|
|
RIPEMD160S6F=11,
|
|
|
|
RIPEMD160S70=9,
|
|
RIPEMD160S71=7,
|
|
RIPEMD160S72=15,
|
|
RIPEMD160S73=11,
|
|
RIPEMD160S74=8,
|
|
RIPEMD160S75=6,
|
|
RIPEMD160S76=6,
|
|
RIPEMD160S77=14,
|
|
RIPEMD160S78=12,
|
|
RIPEMD160S79=13,
|
|
RIPEMD160S7A=5,
|
|
RIPEMD160S7B=14,
|
|
RIPEMD160S7C=13,
|
|
RIPEMD160S7D=13,
|
|
RIPEMD160S7E=7,
|
|
RIPEMD160S7F=5,
|
|
|
|
RIPEMD160S80=15,
|
|
RIPEMD160S81=5,
|
|
RIPEMD160S82=8,
|
|
RIPEMD160S83=11,
|
|
RIPEMD160S84=14,
|
|
RIPEMD160S85=14,
|
|
RIPEMD160S86=6,
|
|
RIPEMD160S87=14,
|
|
RIPEMD160S88=6,
|
|
RIPEMD160S89=9,
|
|
RIPEMD160S8A=12,
|
|
RIPEMD160S8B=9,
|
|
RIPEMD160S8C=12,
|
|
RIPEMD160S8D=5,
|
|
RIPEMD160S8E=15,
|
|
RIPEMD160S8F=8,
|
|
|
|
RIPEMD160S90=8,
|
|
RIPEMD160S91=5,
|
|
RIPEMD160S92=12,
|
|
RIPEMD160S93=9,
|
|
RIPEMD160S94=12,
|
|
RIPEMD160S95=5,
|
|
RIPEMD160S96=14,
|
|
RIPEMD160S97=6,
|
|
RIPEMD160S98=8,
|
|
RIPEMD160S99=13,
|
|
RIPEMD160S9A=6,
|
|
RIPEMD160S9B=5,
|
|
RIPEMD160S9C=15,
|
|
RIPEMD160S9D=13,
|
|
RIPEMD160S9E=11,
|
|
RIPEMD160S9F=11u
|
|
|
|
} ripemd160_constants_t;
|
|
|
|
typedef enum keccak_constants
|
|
{
|
|
KECCAK_RNDC_00=0x0000000000000001,
|
|
KECCAK_RNDC_01=0x0000000000008082,
|
|
KECCAK_RNDC_02=0x000000000000808a,
|
|
KECCAK_RNDC_03=0x0000000080008000,
|
|
KECCAK_RNDC_04=0x000000000000808b,
|
|
KECCAK_RNDC_05=0x0000000080000001,
|
|
KECCAK_RNDC_06=0x0000000080008081,
|
|
KECCAK_RNDC_07=0x0000000000008009,
|
|
KECCAK_RNDC_08=0x000000000000008a,
|
|
KECCAK_RNDC_09=0x0000000000000088,
|
|
KECCAK_RNDC_10=0x0000000080008009,
|
|
KECCAK_RNDC_11=0x000000008000000a,
|
|
KECCAK_RNDC_12=0x000000008000808b,
|
|
KECCAK_RNDC_13=0x000000000000008b,
|
|
KECCAK_RNDC_14=0x0000000000008089,
|
|
KECCAK_RNDC_15=0x0000000000008003,
|
|
KECCAK_RNDC_16=0x0000000000008002,
|
|
KECCAK_RNDC_17=0x0000000000000080,
|
|
KECCAK_RNDC_18=0x000000000000800a,
|
|
KECCAK_RNDC_19=0x000000008000000a,
|
|
KECCAK_RNDC_20=0x0000000080008081,
|
|
KECCAK_RNDC_21=0x0000000000008080,
|
|
KECCAK_RNDC_22=0x0000000080000001,
|
|
KECCAK_RNDC_23=0x0000000080008008,
|
|
|
|
KECCAK_PILN_00=10,
|
|
KECCAK_PILN_01=7,
|
|
KECCAK_PILN_02=11,
|
|
KECCAK_PILN_03=17,
|
|
KECCAK_PILN_04=18,
|
|
KECCAK_PILN_05=3,
|
|
KECCAK_PILN_06=5,
|
|
KECCAK_PILN_07=16,
|
|
KECCAK_PILN_08=8,
|
|
KECCAK_PILN_09=21,
|
|
KECCAK_PILN_10=24,
|
|
KECCAK_PILN_11=4,
|
|
KECCAK_PILN_12=15,
|
|
KECCAK_PILN_13=23,
|
|
KECCAK_PILN_14=19,
|
|
KECCAK_PILN_15=13,
|
|
KECCAK_PILN_16=12,
|
|
KECCAK_PILN_17=2,
|
|
KECCAK_PILN_18=20,
|
|
KECCAK_PILN_19=14,
|
|
KECCAK_PILN_20=22,
|
|
KECCAK_PILN_21=9,
|
|
KECCAK_PILN_22=6,
|
|
KECCAK_PILN_23=1,
|
|
|
|
KECCAK_ROTC_00=1,
|
|
KECCAK_ROTC_01=3,
|
|
KECCAK_ROTC_02=6,
|
|
KECCAK_ROTC_03=10,
|
|
KECCAK_ROTC_04=15,
|
|
KECCAK_ROTC_05=21,
|
|
KECCAK_ROTC_06=28,
|
|
KECCAK_ROTC_07=36,
|
|
KECCAK_ROTC_08=45,
|
|
KECCAK_ROTC_09=55,
|
|
KECCAK_ROTC_10=2,
|
|
KECCAK_ROTC_11=14,
|
|
KECCAK_ROTC_12=27,
|
|
KECCAK_ROTC_13=41,
|
|
KECCAK_ROTC_14=56,
|
|
KECCAK_ROTC_15=8,
|
|
KECCAK_ROTC_16=25,
|
|
KECCAK_ROTC_17=43,
|
|
KECCAK_ROTC_18=62,
|
|
KECCAK_ROTC_19=18,
|
|
KECCAK_ROTC_20=39,
|
|
KECCAK_ROTC_21=61,
|
|
KECCAK_ROTC_22=20,
|
|
KECCAK_ROTC_23=44,
|
|
|
|
} keccak_constants_t;
|
|
|
|
typedef enum mysql323_constants
|
|
{
|
|
MYSQL323_A=0x50305735,
|
|
MYSQL323_B=0x12345671u
|
|
|
|
} mysql323_constants_t;
|
|
|
|
typedef enum fortigate_constants
|
|
{
|
|
FORTIGATE_A=0x2eba88a3,
|
|
FORTIGATE_B=0x4ab04c42,
|
|
FORTIGATE_C=0xc1307953,
|
|
FORTIGATE_D=0x3fcc0731,
|
|
FORTIGATE_E=0x299032a1,
|
|
FORTIGATE_F=0x705b81a9
|
|
|
|
} fortigate_constants_t;
|
|
|
|
typedef enum blake2b_constants
|
|
{
|
|
BLAKE2B_IV_00=0x6a09e667f3bcc908,
|
|
BLAKE2B_IV_01=0xbb67ae8584caa73b,
|
|
BLAKE2B_IV_02=0x3c6ef372fe94f82b,
|
|
BLAKE2B_IV_03=0xa54ff53a5f1d36f1,
|
|
BLAKE2B_IV_04=0x510e527fade682d1,
|
|
BLAKE2B_IV_05=0x9b05688c2b3e6c1f,
|
|
BLAKE2B_IV_06=0x1f83d9abfb41bd6b,
|
|
BLAKE2B_IV_07=0x5be0cd19137e2179
|
|
|
|
} blake2b_constants_t;
|
|
|
|
typedef enum combinator_mode
|
|
{
|
|
COMBINATOR_MODE_BASE_LEFT = 10001,
|
|
COMBINATOR_MODE_BASE_RIGHT = 10002
|
|
|
|
} combinator_mode_t;
|
|
|
|
#ifdef KERNEL_STATIC
|
|
typedef struct digest
|
|
{
|
|
u32 digest_buf[DGST_ELEM];
|
|
|
|
} digest_t;
|
|
#endif
|
|
|
|
typedef struct salt
|
|
{
|
|
u32 salt_buf[64];
|
|
u32 salt_buf_pc[64];
|
|
|
|
u32 salt_len;
|
|
u32 salt_len_pc;
|
|
u32 salt_iter;
|
|
u32 salt_iter2;
|
|
u32 salt_sign[2];
|
|
|
|
u32 digests_cnt;
|
|
u32 digests_done;
|
|
|
|
u32 digests_offset;
|
|
|
|
u32 scrypt_N;
|
|
u32 scrypt_r;
|
|
u32 scrypt_p;
|
|
|
|
} salt_t;
|
|
|
|
typedef struct
|
|
{
|
|
u32 key;
|
|
u64 val;
|
|
|
|
} hcstat_table_t;
|
|
|
|
typedef struct
|
|
{
|
|
u32 cs_buf[0x100];
|
|
u32 cs_len;
|
|
|
|
} cs_t;
|
|
|
|
typedef struct
|
|
{
|
|
u32 cmds[32];
|
|
|
|
} kernel_rule_t;
|
|
|
|
typedef struct pw
|
|
{
|
|
u32 i[64];
|
|
|
|
u32 pw_len;
|
|
|
|
} pw_t;
|
|
|
|
typedef struct pw_idx
|
|
{
|
|
u32 off;
|
|
u32 cnt;
|
|
u32 len;
|
|
|
|
} pw_idx_t;
|
|
|
|
typedef struct bf
|
|
{
|
|
u32 i;
|
|
|
|
} bf_t;
|
|
|
|
typedef struct bs_word
|
|
{
|
|
u32 b[32];
|
|
|
|
} bs_word_t;
|
|
|
|
typedef struct plain
|
|
{
|
|
u64 gidvid;
|
|
u32 il_pos;
|
|
u32 salt_pos;
|
|
u32 digest_pos;
|
|
u32 hash_pos;
|
|
u32 extra1;
|
|
u32 extra2;
|
|
|
|
} plain_t;
|
|
|
|
typedef struct keyboard_layout_mapping
|
|
{
|
|
u32 src_char;
|
|
int src_len;
|
|
u32 dst_char;
|
|
int dst_len;
|
|
|
|
} keyboard_layout_mapping_t;
|
|
|
|
#endif
|