Changeset 339

Show
Ignore:
Timestamp:
01/26/06 16:37:18
Author:
ben
Message:

More hash support, print the right thing.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • openpgpsdk/trunk/examples/packet-dump.c

    r338 r339  
    1919static const char *pname; 
    2020static ops_keyring_t keyring; 
     21static ops_boolean_t passphrase_prompt; 
    2122 
    2223static void print_indent() 
     
    805806 
    806807    case OPS_PARSER_CMD_GET_PASSPHRASE: 
    807         printf(">>> ASKED FOR PASSPHRASE <<<\n"); 
     808        if(passphrase_prompt) 
     809            { 
     810            *content->passphrase=ops_get_passphrase(); 
     811            if(!**content->passphrase) 
     812                break; 
     813            return OPS_KEEP_MEMORY; 
     814            } 
     815        else 
     816            printf(">>> ASKED FOR PASSPHRASE <<<\n"); 
    808817        break; 
    809818 
     
    817826        print_public_key(&content->secret_key.public_key); 
    818827        printf("S2K Usage: %d\n",content->secret_key.s2k_usage); 
    819         printf("S2K Specifier: %d\n",content->secret_key.s2k_usage); 
     828        printf("S2K Specifier: %d\n",content->secret_key.s2k_specifier); 
    820829        printf("Symmetric algorithm: %d\n",content->secret_key.algorithm); 
    821830        printf("Hash algorithm: %d\n",content->secret_key.hash_algorithm); 
     
    943952    fprintf(stderr,"-a\tRead armoured data\n" 
    944953            "-b\tDon't buffer stdout/stderr\n" 
    945             "-B\tRead via a memory buffer\n"); 
     954            "-B\tRead via a memory buffer\n" 
     955            "-k <file>\tRead in a keyring\n" 
     956            "-p\tPrompt for passphrases\n"); 
     957     
    946958    exit(1); 
    947959    } 
     
    960972    pname=argv[0]; 
    961973 
    962     while((ch=getopt(argc,argv,"abBk:")) != -1) 
     974    while((ch=getopt(argc,argv,"abBk:p")) != -1) 
    963975        switch(ch) 
    964976            { 
     
    978990        case 'k': 
    979991            keyring_file=optarg; 
     992            break; 
     993 
     994        case 'p': 
     995            passphrase_prompt=ops_true; 
    980996            break; 
    981997 
  • openpgpsdk/trunk/include/openpgpsdk/crypto.h

    r336 r339  
    4949const char *ops_text_from_hash(ops_hash_t *hash); 
    5050unsigned ops_hash_size(ops_hash_algorithm_t alg); 
     51unsigned ops_hash(unsigned char *out,ops_hash_algorithm_t alg,const void *in, 
     52                  size_t length); 
    5153 
    5254void ops_hash_add_int(ops_hash_t *hash,unsigned n,unsigned length); 
  • openpgpsdk/trunk/src/hash.c

    r245 r339  
    6060    return OPS_HASH_UNKNOWN; 
    6161    } 
     62 
     63unsigned ops_hash(unsigned char *out,ops_hash_algorithm_t alg,const void *in, 
     64                  size_t length) 
     65    { 
     66    ops_hash_t hash; 
     67 
     68    ops_hash_any(&hash,alg); 
     69    hash.init(&hash); 
     70    hash.add(&hash,in,length); 
     71    return hash.finish(&hash,out); 
     72    } 
  • openpgpsdk/trunk/src/packet-parse.c

    r336 r339  
    18331833        C.secret_key.s2k_usage=OPS_S2KU_ENCRYPTED; 
    18341834        C.secret_key.s2k_specifier=OPS_S2KS_SIMPLE; 
     1835        C.secret_key.hash_algorithm=OPS_HASH_MD5; 
    18351836        } 
    18361837 
     
    18411842        ops_parser_content_t pc; 
    18421843        char *passphrase; 
     1844        unsigned char hash[OPS_MAX_HASH]; 
    18431845 
    18441846        n=ops_block_size(C.secret_key.algorithm); 
     
    18581860            return 1; 
    18591861            } 
     1862 
     1863        ops_hash(hash,C.secret_key.hash_algorithm,passphrase, 
     1864                 strlen(passphrase)); 
    18601865        } 
    18611866