constants.h 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  1. /**
  2. * Author......: Jens Steube <jens.steube@gmail.com>
  3. * License.....: MIT
  4. */
  5. #ifdef SHARED_H
  6. #define _BCRYPT_
  7. #define _SHA1_
  8. #define _SHA256_
  9. #define _SHA512_
  10. #define _MD4_
  11. #define _MD5_
  12. #endif
  13. #ifdef _BCRYPT_
  14. /**
  15. * bcrypt Constants
  16. */
  17. #define BCRYPTM_0 0x4F727068u
  18. #define BCRYPTM_1 0x65616E42u
  19. #define BCRYPTM_2 0x65686F6Cu
  20. #define BCRYPTM_3 0x64657253u
  21. #define BCRYPTM_4 0x63727944u
  22. #define BCRYPTM_5 0x6F756274u
  23. #endif
  24. #ifdef _SHA1_
  25. /**
  26. * SHA1 Constants
  27. */
  28. #define SHA1M_A 0x67452301u
  29. #define SHA1M_B 0xefcdab89u
  30. #define SHA1M_C 0x98badcfeu
  31. #define SHA1M_D 0x10325476u
  32. #define SHA1M_E 0xc3d2e1f0u
  33. #define SHA1C00 0x5a827999u
  34. #define SHA1C01 0x6ed9eba1u
  35. #define SHA1C02 0x8f1bbcdcu
  36. #define SHA1C03 0xca62c1d6u
  37. #endif
  38. #ifdef _SHA256_
  39. /**
  40. * SHA256 Constants
  41. */
  42. #define SHA256M_A 0x6a09e667u
  43. #define SHA256M_B 0xbb67ae85u
  44. #define SHA256M_C 0x3c6ef372u
  45. #define SHA256M_D 0xa54ff53au
  46. #define SHA256M_E 0x510e527fu
  47. #define SHA256M_F 0x9b05688cu
  48. #define SHA256M_G 0x1f83d9abu
  49. #define SHA256M_H 0x5be0cd19u
  50. #define SHA256C00 0x428a2f98u
  51. #define SHA256C01 0x71374491u
  52. #define SHA256C02 0xb5c0fbcfu
  53. #define SHA256C03 0xe9b5dba5u
  54. #define SHA256C04 0x3956c25bu
  55. #define SHA256C05 0x59f111f1u
  56. #define SHA256C06 0x923f82a4u
  57. #define SHA256C07 0xab1c5ed5u
  58. #define SHA256C08 0xd807aa98u
  59. #define SHA256C09 0x12835b01u
  60. #define SHA256C0a 0x243185beu
  61. #define SHA256C0b 0x550c7dc3u
  62. #define SHA256C0c 0x72be5d74u
  63. #define SHA256C0d 0x80deb1feu
  64. #define SHA256C0e 0x9bdc06a7u
  65. #define SHA256C0f 0xc19bf174u
  66. #define SHA256C10 0xe49b69c1u
  67. #define SHA256C11 0xefbe4786u
  68. #define SHA256C12 0x0fc19dc6u
  69. #define SHA256C13 0x240ca1ccu
  70. #define SHA256C14 0x2de92c6fu
  71. #define SHA256C15 0x4a7484aau
  72. #define SHA256C16 0x5cb0a9dcu
  73. #define SHA256C17 0x76f988dau
  74. #define SHA256C18 0x983e5152u
  75. #define SHA256C19 0xa831c66du
  76. #define SHA256C1a 0xb00327c8u
  77. #define SHA256C1b 0xbf597fc7u
  78. #define SHA256C1c 0xc6e00bf3u
  79. #define SHA256C1d 0xd5a79147u
  80. #define SHA256C1e 0x06ca6351u
  81. #define SHA256C1f 0x14292967u
  82. #define SHA256C20 0x27b70a85u
  83. #define SHA256C21 0x2e1b2138u
  84. #define SHA256C22 0x4d2c6dfcu
  85. #define SHA256C23 0x53380d13u
  86. #define SHA256C24 0x650a7354u
  87. #define SHA256C25 0x766a0abbu
  88. #define SHA256C26 0x81c2c92eu
  89. #define SHA256C27 0x92722c85u
  90. #define SHA256C28 0xa2bfe8a1u
  91. #define SHA256C29 0xa81a664bu
  92. #define SHA256C2a 0xc24b8b70u
  93. #define SHA256C2b 0xc76c51a3u
  94. #define SHA256C2c 0xd192e819u
  95. #define SHA256C2d 0xd6990624u
  96. #define SHA256C2e 0xf40e3585u
  97. #define SHA256C2f 0x106aa070u
  98. #define SHA256C30 0x19a4c116u
  99. #define SHA256C31 0x1e376c08u
  100. #define SHA256C32 0x2748774cu
  101. #define SHA256C33 0x34b0bcb5u
  102. #define SHA256C34 0x391c0cb3u
  103. #define SHA256C35 0x4ed8aa4au
  104. #define SHA256C36 0x5b9cca4fu
  105. #define SHA256C37 0x682e6ff3u
  106. #define SHA256C38 0x748f82eeu
  107. #define SHA256C39 0x78a5636fu
  108. #define SHA256C3a 0x84c87814u
  109. #define SHA256C3b 0x8cc70208u
  110. #define SHA256C3c 0x90befffau
  111. #define SHA256C3d 0xa4506cebu
  112. #define SHA256C3e 0xbef9a3f7u
  113. #define SHA256C3f 0xc67178f2u
  114. #endif
  115. #ifdef _MD4_
  116. /**
  117. * MD4 Constants
  118. */
  119. #define MD4M_A 0x67452301u
  120. #define MD4M_B 0xefcdab89u
  121. #define MD4M_C 0x98badcfeu
  122. #define MD4M_D 0x10325476u
  123. #define MD4S00 3u
  124. #define MD4S01 7u
  125. #define MD4S02 11u
  126. #define MD4S03 19u
  127. #define MD4S10 3u
  128. #define MD4S11 5u
  129. #define MD4S12 9u
  130. #define MD4S13 13u
  131. #define MD4S20 3u
  132. #define MD4S21 9u
  133. #define MD4S22 11u
  134. #define MD4S23 15u
  135. #define MD4C00 0x00000000u
  136. #define MD4C01 0x5a827999u
  137. #define MD4C02 0x6ed9eba1u
  138. #endif
  139. #ifdef _MD5_
  140. /**
  141. * MD5 Constants
  142. */
  143. #define MD5M_A 0x67452301u
  144. #define MD5M_B 0xefcdab89u
  145. #define MD5M_C 0x98badcfeu
  146. #define MD5M_D 0x10325476u
  147. #define MD5S00 7u
  148. #define MD5S01 12u
  149. #define MD5S02 17u
  150. #define MD5S03 22u
  151. #define MD5S10 5u
  152. #define MD5S11 9u
  153. #define MD5S12 14u
  154. #define MD5S13 20u
  155. #define MD5S20 4u
  156. #define MD5S21 11u
  157. #define MD5S22 16u
  158. #define MD5S23 23u
  159. #define MD5S30 6u
  160. #define MD5S31 10u
  161. #define MD5S32 15u
  162. #define MD5S33 21u
  163. #define MD5C00 0xd76aa478u
  164. #define MD5C01 0xe8c7b756u
  165. #define MD5C02 0x242070dbu
  166. #define MD5C03 0xc1bdceeeu
  167. #define MD5C04 0xf57c0fafu
  168. #define MD5C05 0x4787c62au
  169. #define MD5C06 0xa8304613u
  170. #define MD5C07 0xfd469501u
  171. #define MD5C08 0x698098d8u
  172. #define MD5C09 0x8b44f7afu
  173. #define MD5C0a 0xffff5bb1u
  174. #define MD5C0b 0x895cd7beu
  175. #define MD5C0c 0x6b901122u
  176. #define MD5C0d 0xfd987193u
  177. #define MD5C0e 0xa679438eu
  178. #define MD5C0f 0x49b40821u
  179. #define MD5C10 0xf61e2562u
  180. #define MD5C11 0xc040b340u
  181. #define MD5C12 0x265e5a51u
  182. #define MD5C13 0xe9b6c7aau
  183. #define MD5C14 0xd62f105du
  184. #define MD5C15 0x02441453u
  185. #define MD5C16 0xd8a1e681u
  186. #define MD5C17 0xe7d3fbc8u
  187. #define MD5C18 0x21e1cde6u
  188. #define MD5C19 0xc33707d6u
  189. #define MD5C1a 0xf4d50d87u
  190. #define MD5C1b 0x455a14edu
  191. #define MD5C1c 0xa9e3e905u
  192. #define MD5C1d 0xfcefa3f8u
  193. #define MD5C1e 0x676f02d9u
  194. #define MD5C1f 0x8d2a4c8au
  195. #define MD5C20 0xfffa3942u
  196. #define MD5C21 0x8771f681u
  197. #define MD5C22 0x6d9d6122u
  198. #define MD5C23 0xfde5380cu
  199. #define MD5C24 0xa4beea44u
  200. #define MD5C25 0x4bdecfa9u
  201. #define MD5C26 0xf6bb4b60u
  202. #define MD5C27 0xbebfbc70u
  203. #define MD5C28 0x289b7ec6u
  204. #define MD5C29 0xeaa127fau
  205. #define MD5C2a 0xd4ef3085u
  206. #define MD5C2b 0x04881d05u
  207. #define MD5C2c 0xd9d4d039u
  208. #define MD5C2d 0xe6db99e5u
  209. #define MD5C2e 0x1fa27cf8u
  210. #define MD5C2f 0xc4ac5665u
  211. #define MD5C30 0xf4292244u
  212. #define MD5C31 0x432aff97u
  213. #define MD5C32 0xab9423a7u
  214. #define MD5C33 0xfc93a039u
  215. #define MD5C34 0x655b59c3u
  216. #define MD5C35 0x8f0ccc92u
  217. #define MD5C36 0xffeff47du
  218. #define MD5C37 0x85845dd1u
  219. #define MD5C38 0x6fa87e4fu
  220. #define MD5C39 0xfe2ce6e0u
  221. #define MD5C3a 0xa3014314u
  222. #define MD5C3b 0x4e0811a1u
  223. #define MD5C3c 0xf7537e82u
  224. #define MD5C3d 0xbd3af235u
  225. #define MD5C3e 0x2ad7d2bbu
  226. #define MD5C3f 0xeb86d391u
  227. #endif
  228. #ifdef _SHA512_
  229. /**
  230. * SHA512 Constants (64 bits)
  231. */
  232. #define SHA512M_A 0x6a09e667f3bcc908ull
  233. #define SHA512M_B 0xbb67ae8584caa73bull
  234. #define SHA512M_C 0x3c6ef372fe94f82bull
  235. #define SHA512M_D 0xa54ff53a5f1d36f1ull
  236. #define SHA512M_E 0x510e527fade682d1ull
  237. #define SHA512M_F 0x9b05688c2b3e6c1full
  238. #define SHA512M_G 0x1f83d9abfb41bd6bull
  239. #define SHA512M_H 0x5be0cd19137e2179ull
  240. #define SHA512C00 0x428a2f98d728ae22ull
  241. #define SHA512C01 0x7137449123ef65cdull
  242. #define SHA512C02 0xb5c0fbcfec4d3b2full
  243. #define SHA512C03 0xe9b5dba58189dbbcull
  244. #define SHA512C04 0x3956c25bf348b538ull
  245. #define SHA512C05 0x59f111f1b605d019ull
  246. #define SHA512C06 0x923f82a4af194f9bull
  247. #define SHA512C07 0xab1c5ed5da6d8118ull
  248. #define SHA512C08 0xd807aa98a3030242ull
  249. #define SHA512C09 0x12835b0145706fbeull
  250. #define SHA512C0a 0x243185be4ee4b28cull
  251. #define SHA512C0b 0x550c7dc3d5ffb4e2ull
  252. #define SHA512C0c 0x72be5d74f27b896full
  253. #define SHA512C0d 0x80deb1fe3b1696b1ull
  254. #define SHA512C0e 0x9bdc06a725c71235ull
  255. #define SHA512C0f 0xc19bf174cf692694ull
  256. #define SHA512C10 0xe49b69c19ef14ad2ull
  257. #define SHA512C11 0xefbe4786384f25e3ull
  258. #define SHA512C12 0x0fc19dc68b8cd5b5ull
  259. #define SHA512C13 0x240ca1cc77ac9c65ull
  260. #define SHA512C14 0x2de92c6f592b0275ull
  261. #define SHA512C15 0x4a7484aa6ea6e483ull
  262. #define SHA512C16 0x5cb0a9dcbd41fbd4ull
  263. #define SHA512C17 0x76f988da831153b5ull
  264. #define SHA512C18 0x983e5152ee66dfabull
  265. #define SHA512C19 0xa831c66d2db43210ull
  266. #define SHA512C1a 0xb00327c898fb213full
  267. #define SHA512C1b 0xbf597fc7beef0ee4ull
  268. #define SHA512C1c 0xc6e00bf33da88fc2ull
  269. #define SHA512C1d 0xd5a79147930aa725ull
  270. #define SHA512C1e 0x06ca6351e003826full
  271. #define SHA512C1f 0x142929670a0e6e70ull
  272. #define SHA512C20 0x27b70a8546d22ffcull
  273. #define SHA512C21 0x2e1b21385c26c926ull
  274. #define SHA512C22 0x4d2c6dfc5ac42aedull
  275. #define SHA512C23 0x53380d139d95b3dfull
  276. #define SHA512C24 0x650a73548baf63deull
  277. #define SHA512C25 0x766a0abb3c77b2a8ull
  278. #define SHA512C26 0x81c2c92e47edaee6ull
  279. #define SHA512C27 0x92722c851482353bull
  280. #define SHA512C28 0xa2bfe8a14cf10364ull
  281. #define SHA512C29 0xa81a664bbc423001ull
  282. #define SHA512C2a 0xc24b8b70d0f89791ull
  283. #define SHA512C2b 0xc76c51a30654be30ull
  284. #define SHA512C2c 0xd192e819d6ef5218ull
  285. #define SHA512C2d 0xd69906245565a910ull
  286. #define SHA512C2e 0xf40e35855771202aull
  287. #define SHA512C2f 0x106aa07032bbd1b8ull
  288. #define SHA512C30 0x19a4c116b8d2d0c8ull
  289. #define SHA512C31 0x1e376c085141ab53ull
  290. #define SHA512C32 0x2748774cdf8eeb99ull
  291. #define SHA512C33 0x34b0bcb5e19b48a8ull
  292. #define SHA512C34 0x391c0cb3c5c95a63ull
  293. #define SHA512C35 0x4ed8aa4ae3418acbull
  294. #define SHA512C36 0x5b9cca4f7763e373ull
  295. #define SHA512C37 0x682e6ff3d6b2b8a3ull
  296. #define SHA512C38 0x748f82ee5defb2fcull
  297. #define SHA512C39 0x78a5636f43172f60ull
  298. #define SHA512C3a 0x84c87814a1f0ab72ull
  299. #define SHA512C3b 0x8cc702081a6439ecull
  300. #define SHA512C3c 0x90befffa23631e28ull
  301. #define SHA512C3d 0xa4506cebde82bde9ull
  302. #define SHA512C3e 0xbef9a3f7b2c67915ull
  303. #define SHA512C3f 0xc67178f2e372532bull
  304. #define SHA512C40 0xca273eceea26619cull
  305. #define SHA512C41 0xd186b8c721c0c207ull
  306. #define SHA512C42 0xeada7dd6cde0eb1eull
  307. #define SHA512C43 0xf57d4f7fee6ed178ull
  308. #define SHA512C44 0x06f067aa72176fbaull
  309. #define SHA512C45 0x0a637dc5a2c898a6ull
  310. #define SHA512C46 0x113f9804bef90daeull
  311. #define SHA512C47 0x1b710b35131c471bull
  312. #define SHA512C48 0x28db77f523047d84ull
  313. #define SHA512C49 0x32caab7b40c72493ull
  314. #define SHA512C4a 0x3c9ebe0a15c9bebcull
  315. #define SHA512C4b 0x431d67c49c100d4cull
  316. #define SHA512C4c 0x4cc5d4becb3e42b6ull
  317. #define SHA512C4d 0x597f299cfc657e2aull
  318. #define SHA512C4e 0x5fcb6fab3ad6faecull
  319. #define SHA512C4f 0x6c44198c4a475817ull
  320. #define SHA512REV0 0x5218a97a1b97e8a0ull
  321. #define SHA512REV1 0x4334c1bea164f555ull
  322. #endif