Exemplo n.º 1
0
int main(int argc, char *argv[]) {
    int file_descript;
    unsigned long file_size;
    char* file_buffer;

    if(argc != 2) { 
            printf("Must specify the file\n");
            exit(-1);
    }
    printf("using file:\t%s\n", argv[1]);

    file_descript = open(argv[1], O_RDONLY);
    if(file_descript < 0) exit(-1);

    file_size = get_size_by_fd(file_descript);
    printf("file size:\t%lu\n", file_size);

    file_buffer = mmap(0, file_size, PROT_READ, MAP_SHARED, file_descript, 0);
    MD5((unsigned char*) file_buffer, file_size, result);
    munmap(file_buffer, file_size); 

    print_md5_sum(result);
    printf("  %s\n", argv[1]);

    return 0;
}
Exemplo n.º 2
0
            object* digest::md5file(string *file)
            {
                int file_descript = open(file->string_val.c_str(), O_RDONLY);
                if(file_descript < 0) exit(-1);

                size_t file_size = get_size_by_fd(file_descript);
                
                char *file_buffer = (char*)mmap(0, file_size, PROT_READ, MAP_SHARED, file_descript, 0);
                MD5((unsigned char*) file_buffer, file_size, result);
                munmap(file_buffer, file_size);
                
                return new string((char*)&result);
            }
Exemplo n.º 3
0
int main(int argc, char *argv[]) {
    char md5[MD5_DIGEST_LENGTH];
    int file_descript;
    unsigned long file_size;
    char *file_buffer;
    FILE *pkr_file;
    int signature_size = BITS*sizeof(DES_cblock);
    
    file_descript = open(argv[1], O_RDONLY);
    if(file_descript < 0) { 
        puts("Signed message unreadable");
        exit(-1);
    }
    
    //read signed message
    file_size = get_size_by_fd(file_descript);    
    file_buffer = mmap(0, file_size, PROT_READ, MAP_SHARED, file_descript, 0);
    //copy signature
    memcpy(SG, file_buffer, signature_size);
    
    MD5((unsigned char*) (file_buffer+signature_size), file_size-signature_size, md5);
    //read PKR

    pkr_file = fopen (argv[2],"r");
    if (pkr_file!=NULL)
    {
        fread(S, sizeof(DES_cblock), 2*BITS, pkr_file);
        fread(R, sizeof(DES_cblock), 2*BITS, pkr_file);
        fclose (pkr_file);
    } else { puts("PKR unreadable"); return -1; }
    
    if (verifyMsg(md5)) puts("FAIL");
    else puts ("OK");
    
    return (0);
}