Advertisement
Guest User

Untitled

a guest
Mar 27th, 2015
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.94 KB | None | 0 0
  1. char* hcode (const char* message,int size){
  2.  
  3. char *res = calloc(size*2,sizeof(char));
  4.  
  5. int i,j;
  6. int d1,d2,d3,d4,d5,d6,d7,d8,p1,p2,p4,p8;
  7. for ( i = 0; i < size ; i++) {
  8.  
  9. d1 = (message[i] >> 7) & 1;
  10. d2 = (message[i] >> 6) & 1;
  11. d3 = (message[i] >> 5) & 1;
  12. d4 = (message[i] >> 4) & 1;
  13. d5 = (message[i] >> 3) & 1;
  14. d6 = (message[i] >> 2) & 1;
  15. d7 = (message[i] >> 1) & 1;
  16. d8 = (message[i] >> 0) & 1;
  17. p1 = d1 ^ d3 ^ d5 ^ d7;
  18. p2 = d2 ^ d3 ^ d6 ^ d7;
  19. p4 = d4 ^ d5 ^ d6 ^ d7;
  20. p8 = d8;.
  21.  
  22. for ( j = 7 ; j < 3 ; j--){
  23. res[2*i] &= ~(1 << j);
  24. }
  25.  
  26. if (p1 == 1) {
  27. res[2*i] |= (1 << 3);
  28. } else {
  29. res[2*i] &= ~(1 << 3);
  30. }
  31.  
  32. if (p2 == 1) {
  33. res[2*i] |= (1 << 2);
  34. } else {
  35. res[2*i] &= ~(1 << 2);
  36. }
  37.  
  38. if (d1 == 1) {
  39. res[2*i] |= (1 << 1);
  40. } else {
  41. res[2*i] &= ~(1 << 1);
  42. }
  43.  
  44. if (p4 == 1) {
  45. res[2*i] |= (1 << 0);
  46. } else {
  47. res[2*i] &= ~(1 << 0);
  48. }
  49.  
  50. if (d2 == 1) {
  51. res[2*i+1] |= (1 << 7);
  52. } else {
  53. res[2*i+1] &= ~(1 << 7);
  54. }
  55.  
  56. if (d3 == 1) {
  57. res[2*i+1] |= (1 << 6);
  58. } else {
  59. res[2*i+1] &= ~(1 << 6);
  60. }
  61.  
  62. if (d4 == 1) {
  63. res[2*i+1] |= (1 << 5);
  64. } else {
  65. res[2*i+1] &= ~(1 << 5);
  66. }
  67.  
  68. if (p8 == 1) {
  69. res[2*i+1] |= (1 << 4);
  70. } else {
  71. res[2*i+1] &= ~(1 << 4);
  72. }
  73.  
  74. if (d5 == 1) {
  75. res[2*i+1] |= (1 << 3);
  76. } else {
  77. res[2*i+1] &= ~(1 << 3);
  78. }
  79.  
  80. if (d6 == 1) {
  81. res[2*i+1] |= (1 << 2);
  82. } else {
  83. res[2*i+1] &= ~(1 << 2);
  84. }
  85.  
  86. if (d7 == 1) {
  87. res[2*i+1] |= (1 << 1);
  88. } else {
  89. res[2*i+1] &= ~(1 << 1);
  90. }
  91.  
  92. if (d8 == 1) {
  93. res[2*i+1] |= (1 << 0);
  94. } else {
  95. res[2*i+1] &= ~(1 << 0);
  96. }
  97. }
  98.  
  99. return res;
  100.  
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement