View difference between Paste ID: Sf0kFTkq and Ecd239qq
SHOW: | | - or go back to the newest paste.
1
#include <stdlib.h>
2
#include <stdio.h>
3
#include <stdint.h>
4
#include <string.h>
5-
#include <pthread.h>
5+
6
7
int main(int argc, char** argv)
8-
typedef struct {
8+
9-
    int threadid;
9+
10-
    int iterations;
10+
11
    uint64_t dataMin;
12-
    unsigned char outputMin[64];
12+
13-
} Setup;
13+
14
    if(argc > 1) iter = atoi(argv[1]);
15-
void* runSearch(void* context)
15+
16
    uint64_t data = 0;
17-
    Setup* setup = context;
17+
18-
    uint64_t data = setup->threadid;
18+
19
    data &= 0x1f1f1f1f1f1f1f1fll;
20-
    setup->dataMin = data;
20+
21-
    unsigned char* min = setup->outputMin;
21+
    for(int x=0 ; x<iter ; x++)
22-
    min[0] = 0xff;
22+
23
        SHA512((unsigned char*)&data, 8, output);
24
        for(int i=0 ; i<64 ; i++)
25
        {
26-
    for(int x=0 ; x<setup->iterations ; x++)
26+
            if(output[i] < outputMin[i])
27
            {
28
                memcpy(outputMin, output, 64);
29
                dataMin = data;
30
                break;
31-
            if(output[i] < min[i])
31+
32
            else if(output[i] > outputMin[i])
33-
                memcpy(min, output, 64);
33+
34-
                setup->dataMin = data;
34+
35
            }
36
        }
37-
            else if(output[i] > min[i])
37+
38
        data += 1;
39
        data &= 0x1f1f1f1f1f1f1f1fll;
40
        data |= 0x4040404040404040ll;
41
    }
42
    
43-
        data += 8;
43+
44
        printf("%c", ((char*)&dataMin)[i]);
45
    puts("");
46
    
47
    for(int i=0 ; i<64 ; i++)
48-
    return NULL;
48+
49-
}
49+
50
}