fork(2) download
  1. #include <iostream>
  2. #include <vector>
  3. #include <sstream> //this is where istringstream is defined
  4.  
  5. using namespace std;
  6.  
  7.  
  8. int x(unsigned int tab[],int numBit){
  9. return ((tab[numBit / 32] >> (numBit % 32))&1);
  10. }
  11.  
  12. void set(unsigned int tab[],unsigned int numBit,unsigned int v){
  13. unsigned int t=(unsigned int)v<<(numBit%32);
  14. unsigned int m=(unsigned int)1<<(numBit%32);
  15.  
  16. unsigned int o=(tab[numBit / 32]);
  17. o=o&~m;
  18. tab[numBit / 32] = o | t;
  19. }
  20.  
  21. struct Formule{
  22. vector< unsigned int > formuleL;
  23. vector< unsigned int > formuleR;
  24.  
  25. H(){
  26. formuleL = vector< unsigned int >();
  27. formuleR = vector< unsigned int >();
  28. }
  29.  
  30. void add(unsigned int a,unsigned int b){
  31. formuleL.push_back(a);
  32. formuleR.push_back(b);
  33. }
  34. };
  35.  
  36. int main(){
  37. int size;
  38.  
  39. cout<<"funWithFormule"<<endl;
  40. string is="256\n 320a18d5 b61b13f6 1aaaa61c 0afe2a41 1a4ff107 84cc2efc 956ff31d fa595299 33749a7f 6cc9659d dc503569 ef4d0ef5 73b746c5 b8fb36d3 7616e9d6 b21251c4\n";
  41. std::istringstream sin(is);
  42. sin >> size;
  43.  
  44. unsigned int* a = new unsigned int[size / 16]; // <- input tab to encrypt
  45. unsigned int* b = new unsigned int[size / 16]; // <- output tab
  46. vector< Formule > formule= vector<Formule>(size);
  47. //for(int i=0;i<size();i++){
  48. // formule[i]=H
  49. //}
  50. cout<<"funWithFormule begin read"<<endl;
  51.  
  52. for (int i = 0; i < size / 16; i++) { // Read size / 16 integers to a
  53. sin >> hex >> a[i];
  54. }
  55.  
  56. for (int i = 0; i < size / 16; i++) { // Write size / 16 zeros to b
  57. b[i] = 0;
  58. }
  59. for (int i = 0; i < size; i++)
  60. for (int j = 0; j < size; j++){
  61. formule[i+j].add(i,j+size);
  62.  
  63. //set(b,i+j, x(b,i+j)^(x(a,i)&x(a,j+size)));
  64. }
  65. cout<<"funWithFormule apply formulaes"<<endl;
  66. for(int i=0;i<size*2;i++){
  67. cout<<i<<endl;
  68. unsigned int xo=0;
  69. //for(int k=0;i<formule[i].formuleL.size();k++){
  70. //unsigned int v= x(a,formule[i].formuleL[k]) & x(a,formule[i].formuleR[k]);
  71. //xo^=v;
  72. //}
  73.  
  74. set(b,i, xo );
  75. }
  76.  
  77. for(int i = 0; i < size / 16; i++)
  78. cout << hex << b[i] << " "; // print result
  79.  
  80. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:25:6: error: ISO C++ forbids declaration of 'H' with no type [-fpermissive]
    H(){
      ^
stdout
Standard output is empty