MCPcopy Create free account
hub / github.com/albertobsd/keyhunt / writeFileIfNeeded

Function writeFileIfNeeded

keyhunt.cpp:6578–6678  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6576}
6577
6578void writeFileIfNeeded(const char *fileName) {
6579 //printf("[D] FLAGSAVEREADFILE %i, FLAGREADEDFILE1 %i\n",FLAGSAVEREADFILE,FLAGREADEDFILE1);
6580 if(FLAGSAVEREADFILE && !FLAGREADEDFILE1) {
6581 FILE *fileDescriptor;
6582 char fileBloomName[30];
6583 uint8_t checksum[32],hexPrefix[9];
6584 char dataChecksum[32],bloomChecksum[32];
6585 size_t bytesWrite;
6586 uint64_t dataSize;
6587 if(!sha256_file((const char*)fileName,checksum)){
6588 fprintf(stderr,"[E] sha256_file error line %i\n",__LINE__ - 1);
6589 exit(EXIT_FAILURE);
6590 }
6591 tohex_dst((char*)checksum,4,(char*)hexPrefix); // we save the prefix (last fourt bytes) hexadecimal value
6592 snprintf(fileBloomName,30,"data_%s.dat",hexPrefix);
6593 fileDescriptor = fopen(fileBloomName,"wb");
6594 dataSize = N * (sizeof(struct address_value));
6595 printf("[D] size data %li\n",dataSize);
6596 if(fileDescriptor != NULL) {
6597 printf("[+] Writing file %s ",fileBloomName);
6598
6599
6600 //calculate bloom checksum
6601 //write bloom checksum (expected value to be checked)
6602 //write bloom filter structure
6603 //write bloom filter data
6604
6605
6606 //calculate dataChecksum
6607 //write data checksum (expected value to be checked)
6608 //write data size
6609 //write data
6610
6611
6612
6613
6614 sha256((uint8_t*)bloom.bf,bloom.bytes,(uint8_t*)bloomChecksum);
6615 printf(".");
6616 bytesWrite = fwrite(bloomChecksum,1,32,fileDescriptor);
6617 if(bytesWrite != 32) {
6618 fprintf(stderr,"[E] Errore writing file, code line %i\n",__LINE__ - 2);
6619 exit(EXIT_FAILURE);
6620 }
6621 printf(".");
6622
6623 bytesWrite = fwrite(&bloom,1,sizeof(struct bloom),fileDescriptor);
6624 if(bytesWrite != sizeof(struct bloom)) {
6625 fprintf(stderr,"[E] Error writing file, code line %i\n",__LINE__ - 2);
6626 exit(EXIT_FAILURE);
6627 }
6628 printf(".");
6629
6630 bytesWrite = fwrite(bloom.bf,1,bloom.bytes,fileDescriptor);
6631 if(bytesWrite != bloom.bytes) {
6632 fprintf(stderr,"[E] Error writing file, code line %i\n",__LINE__ - 2);
6633 fclose(fileDescriptor);
6634 exit(EXIT_FAILURE);
6635 }

Callers 1

keyhunt.cppFile · 0.70

Calls 3

tohex_dstFunction · 0.85
sha256_fileFunction · 0.70
sha256Function · 0.70

Tested by

no test coverage detected