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

Function writeFileIfNeeded

keyhunt_legacy.cpp:6826–6916  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6824}
6825
6826void writeFileIfNeeded(const char *fileName) {
6827 //printf("[D] FLAGSAVEREADFILE %i, FLAGREADEDFILE1 %i\n",FLAGSAVEREADFILE,FLAGREADEDFILE1);
6828 if(FLAGSAVEREADFILE && !FLAGREADEDFILE1) {
6829 FILE *fileDescriptor;
6830 char fileBloomName[30];
6831 uint8_t checksum[32],hexPrefix[9];
6832 char dataChecksum[32],bloomChecksum[32];
6833 size_t bytesWrite;
6834 uint64_t dataSize;
6835 if(!sha256_file((const char*)fileName,checksum)){
6836 fprintf(stderr,"[E] sha256_file error line %i\n",__LINE__ - 1);
6837 exit(EXIT_FAILURE);
6838 }
6839 tohex_dst((char*)checksum,4,(char*)hexPrefix); // we save the prefix (last fourt bytes) hexadecimal value
6840 snprintf(fileBloomName,30,"data_%s.dat",hexPrefix);
6841 fileDescriptor = fopen(fileBloomName,"wb");
6842 dataSize = N * (sizeof(struct address_value));
6843 printf("[D] size data %li\n",dataSize);
6844 if(fileDescriptor != NULL) {
6845 printf("[+] Writing file %s ",fileBloomName);
6846
6847
6848 //calculate bloom checksum
6849 //write bloom checksum (expected value to be checked)
6850 //write bloom filter structure
6851 //write bloom filter data
6852
6853
6854 //calculate dataChecksum
6855 //write data checksum (expected value to be checked)
6856 //write data size
6857 //write data
6858
6859
6860
6861
6862 sha256((uint8_t*)bloom.bf,bloom.bytes,(uint8_t*)bloomChecksum);
6863 printf(".");
6864 bytesWrite = fwrite(bloomChecksum,1,32,fileDescriptor);
6865 if(bytesWrite != 32) {
6866 fprintf(stderr,"[E] Errore writing file, code line %i\n",__LINE__ - 2);
6867 exit(EXIT_FAILURE);
6868 }
6869 printf(".");
6870
6871 bytesWrite = fwrite(&bloom,1,sizeof(struct bloom),fileDescriptor);
6872 if(bytesWrite != sizeof(struct bloom)) {
6873 fprintf(stderr,"[E] Error writing file, code line %i\n",__LINE__ - 2);
6874 exit(EXIT_FAILURE);
6875 }
6876 printf(".");
6877
6878 bytesWrite = fwrite(bloom.bf,1,bloom.bytes,fileDescriptor);
6879 if(bytesWrite != bloom.bytes) {
6880 fprintf(stderr,"[E] Error writing file, code line %i\n",__LINE__ - 2);
6881 fclose(fileDescriptor);
6882 exit(EXIT_FAILURE);
6883 }

Callers 1

keyhunt_legacy.cppFile · 0.70

Calls 3

tohex_dstFunction · 0.85
sha256_fileFunction · 0.70
sha256Function · 0.70

Tested by

no test coverage detected