PageRenderTime 27ms CodeModel.GetById 0ms RepoModel.GetById 0ms app.codeStats 0ms

/sha256_hash/sha256_other/test_blocksMil_v1.c

https://bitbucket.org/jasmincrypt/high-speed-high-security-cryptography
C | 124 lines | 45 code | 17 blank | 62 comment | 2 complexity | 629ae1d5a27aeac697b9cb668b398b77 MD5 | raw file
  1. #include "stdio.h"
  2. typedef unsigned long int u64;
  3. extern void crypto_hashblocks(u64[], const unsigned char*, u64[]);
  4. /*extern void test_unpack(u64[], u64[]);
  5. extern void test_mul(u64[], u64[], u64[]);
  6. extern void scalarmult(u64[], u64[], u64[]);
  7. extern int test_ladderstep(u64[], u64[], u64[],u64[], u64[], u64[]);
  8. extern void test_mladder(u64[], u64[], u64[]);*/
  9. int main() {
  10. /*u64 b[4] = { 9, 0, 0, 0};
  11. u64 e[4] = {0x7da518730a6d0777,0x4566b25172c1163c,
  12. 0x2a99c0eb872f4cdf,0x2a2cb91da5fb77b1};
  13. u64 r[4];
  14. scalarmult(r,e,b);
  15. printf("0x%016lx%016lx%016lx%016lx\n",r[3],r[2],r[1],r[0]);
  16. //----------------------------------
  17. */
  18. //u64 h[8];
  19. u64 h[8];
  20. h[0] = 0x6a09e667;
  21. h[1] = 0xbb67ae85;
  22. h[2] = 0x3c6ef372;
  23. h[3] = 0xa54ff53a;
  24. h[4] = 0x510e527f;
  25. h[5] = 0x9b05688c;
  26. h[6] = 0x1f83d9ab;
  27. h[7] = 0x5be0cd19;
  28. static const char tmpin[64] = {
  29. 0x6a,0x09,0xe6,0x67,
  30. 0xbb,0x67,0xae,0x85,
  31. 0x3c,0x6e,0xf3,0x72,
  32. 0xa5,0x4f,0xf5,0x3a,
  33. 0x51,0x0e,0x52,0x7f,
  34. 0x9b,0x05,0x68,0x8c,
  35. 0x1f,0x83,0xd9,0xab,
  36. 0x5b,0xe0,0xcd,0x19,
  37. 0x6a,0x09,0xe6,0x67,
  38. 0xbb,0x67,0xae,0x85,
  39. 0x3c,0x6e,0xf3,0x72,
  40. 0xa5,0x4f,0xf5,0x3a,
  41. 0x51,0x0e,0x52,0x7f,
  42. 0x9b,0x05,0x68,0x8c,
  43. 0x1f,0x83,0xd9,0xab,
  44. 0x5b,0xe0,0xcd,0x19,
  45. } ;
  46. int i;
  47. unsigned char in[64];
  48. for (i = 0;i < 64;++i) in[i] = tmpin[i];
  49. /*int i;
  50. u64 in[16];
  51. for (i = 0;i < 16;++i) {
  52. in[i] = i * i * i + i * 0x9e3779b9;
  53. }*/
  54. //uint64_t len;
  55. //len = 64;
  56. u64 rsp[16];
  57. crypto_hashblocks(h, in, rsp);
  58. printf("0x000000001f60506d - 0x000000003373e350 - 0x000000004bf88213 - 0x00000000a76cc98b - 0x00000000b263dc3a - 0x00000000dd1932ca - 0x000000000cf3187b - 0x000000000ac838ae");
  59. printf("\n");
  60. printf("--------------------------------------");
  61. printf("\n");
  62. for (i = 0;i < 8;++i) {
  63. printf("0x%016lx - ", h[i]);
  64. }
  65. printf("\n");
  66. /*
  67. u64 one[4] = { 1, 0, 0,0};
  68. //u64 e[4] = {0x7da518730a6d0777,0x4566b25172c1163c,
  69. // 0x2a99c0eb872f4cdf,0x2a2cb91da5fb77b1};
  70. u64 e[4] = { 9, 0, 0, 0};
  71. u64 zero[4] = { 0, 0, 0, 0};
  72. u64 r[4*4];
  73. test_ladderstep(e,one,zero,e,one,r);
  74. printf("0x%016lx%016lx%016lx%016lx\n",r[3],r[2],r[1],r[0]);
  75. printf("0x%016lx%016lx%016lx%016lx\n",r[7],r[6],r[5],r[4]);
  76. printf("0x%016lx%016lx%016lx%016lx\n",r[11],r[10],r[9],r[8]);
  77. printf("0x%016lx%016lx%016lx%016lx\n",r[15],r[14],r[13],r[12]);*/
  78. /*printf("0x%016lx %016lx %016lx %016lx %016lx\n",r[4],r[3],r[2],r[1],r[0]);
  79. printf("0x%016lx %016lx %016lx %016lx %016lx\n",r[9],r[8],r[7],r[6],r[5]);
  80. printf("0x%016lx %016lx %016lx %016lx %016lx\n",r[14],r[13],r[12],r[11],r[10]);
  81. printf("0x%016lx %016lx %016lx %016lx %016lx\n",r[19],r[18],r[17],r[16],r[15]);*/
  82. /*
  83. u64 b[4] = { 9, 0, 0, 0};
  84. u64 e[4] = {0x7da518730a6d0776,0x4566b25172c1163c,
  85. 0x2a99c0eb872f4cdf,0x2a2cb91da5fb77b1};
  86. //u64 e[4] = { 0, 1, 0, 0};
  87. u64 r[2*4];
  88. test_mladder(r,e,b);
  89. printf("0x%016lx%016lx%016lx%016lx\n",r[3],r[2],r[1],r[0]);
  90. printf("0x%016lx%016lx%016lx%016lx\n",r[7],r[6],r[5],r[4]);*/
  91. /*
  92. u64 a[4] = {0xffffffffffffffeb, 0xffffffffffffffff, 0xffffffffffffffff, 0x7fffffffffffffff};
  93. u64 b[4] = {9,0, 0,0};
  94. u64 r[4];
  95. test_mul(r,b,a);
  96. printf("0x%016lx%016lx%016lx%016lx\n",r[3],r[2],r[1],r[0]);*/
  97. /*
  98. u64 e[4] = {0x7da518730a6d0777,0x4566b25172c1163c,
  99. 0x2a99c0eb872f4cdf,0x2a2cb91da5fb77b1};
  100. u64 r[5];
  101. test_unpack(r,e);
  102. printf("0x%lx %lx %lx %lx\n",e[3],e[2],e[1],e[0]);
  103. printf("0x%lx %lx %lx %lx %lx\n",r[4],r[3],r[2],r[1],r[0]);
  104. */
  105. }
  106. // 2a2cb91da5fb77b12a99c0eb872f4cdf4566b25172c1163c7da518730a6d0777