sl_hash.c 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. /* ************************************************************************** */
  2. /* */
  3. /* ::: :::::::: */
  4. /* sl_sha256.c :+: :+: :+: */
  5. /* +:+ +:+ +:+ */
  6. /* By: bchanot <bchanot@student.42.fr> +#+ +:+ +#+ */
  7. /* +#+#+#+#+#+ +#+ */
  8. /* Created: 2018/09/24 00:11:06 by bchanot #+# #+# */
  9. /* Updated: 2018/10/08 21:23:37 by bchanot ### ########.fr */
  10. /* */
  11. /* ************************************************************************** */
  12. #include "ft_ssl.h"
  13. #include "sl_md5.h"
  14. #include "sl_sha2.h"
  15. #include "sl_sha3_5.h"
  16. void sl_md5(const char *str)
  17. {
  18. t_uint8 hash[16];
  19. t_md5 ctx;
  20. size_t i;
  21. sl_md5_init(&ctx);
  22. sl_md5_update(&ctx, (const t_uint8 *)str, ft_strlen(str));
  23. sl_md5_final(&ctx, hash);
  24. i = -1;
  25. while (++i < 16)
  26. ft_printf(1, "%02x", hash[i]);
  27. }
  28. void sl_sha224(const char *str)
  29. {
  30. t_uint8 hash[28];
  31. t_sha2 ctx;
  32. size_t i;
  33. ft_bzero(&ctx, sizeof(t_sha2));
  34. sl_sha2_init(&ctx, SHA224);
  35. sl_sha2_update(&ctx, (const t_uint8 *)str, ft_strlen(str));
  36. sl_sha2_final(&ctx);
  37. sl_sha2_get_hash(&ctx, hash);
  38. i = -1;
  39. while (++i < 28)
  40. ft_printf(1, "%02x", hash[i]);
  41. }
  42. void sl_sha256(const char *str)
  43. {
  44. t_uint8 hash[32];
  45. t_sha2 ctx;
  46. size_t i;
  47. ft_bzero(&ctx, sizeof(t_sha2));
  48. sl_sha2_init(&ctx, SHA256);
  49. sl_sha2_update(&ctx, (const t_uint8 *)str, ft_strlen(str));
  50. sl_sha2_final(&ctx);
  51. sl_sha2_get_hash(&ctx, hash);
  52. i = -1;
  53. while (++i < 32)
  54. ft_printf(1, "%02x", hash[i]);
  55. }
  56. void sl_sha384(const char *str)
  57. {
  58. t_uint8 hash[48];
  59. t_sha3_5 ctx;
  60. size_t i;
  61. ft_bzero(&ctx, sizeof(t_sha3_5));
  62. sl_sha3_5_init(&ctx, SHA384);
  63. sl_sha3_5_update(&ctx, (const t_uint8 *)str, ft_strlen(str));
  64. sl_sha3_5_final(&ctx);
  65. sl_sha3_5_get_hash(&ctx, hash);
  66. i = -1;
  67. while (++i < 48)
  68. ft_printf(1, "%02x", hash[i]);
  69. }
  70. void sl_sha512(const char *str)
  71. {
  72. t_uint8 hash[64];
  73. t_sha3_5 ctx;
  74. size_t i;
  75. ft_bzero(&ctx, sizeof(t_sha3_5));
  76. sl_sha3_5_init(&ctx, SHA512);
  77. sl_sha3_5_update(&ctx, (const t_uint8 *)str, ft_strlen(str));
  78. sl_sha3_5_final(&ctx);
  79. sl_sha3_5_get_hash(&ctx, hash);
  80. i = -1;
  81. while (++i < 64)
  82. ft_printf(1, "%02x", hash[i]);
  83. }