Changeset 358

Show
Ignore:
Timestamp:
02/06/06 17:55:59
Author:
ben
Message:

Don't clear the IV!

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • openpgpsdk/trunk/src/packet-parse.c

    r357 r358  
    18051805    if(!parse_public_key_data(&C.secret_key.public_key,region,parse_info)) 
    18061806        return 0; 
     1807 
     1808    parse_info->reading_v3_secret=C.secret_key.public_key.version != OPS_V4; 
     1809 
    18071810    if(!limited_read(c,1,region,parse_info)) 
    18081811        return 0; 
     
    19661969        ops_reader_push_sum16(parse_info); 
    19671970 
    1968     parse_info->reading_v3_secret=C.secret_key.public_key.version != OPS_V4; 
     1971    /* XXX: this should be refactored into the IDEA init function */ 
    19691972    if(parse_info->reading_v3_secret) 
    19701973        { 
    19711974        // flagrantly disregard how CFB IV's work... 
    19721975        unsigned char iv[OPS_MAX_BLOCK_SIZE]; 
    1973         unsigned char iv2[OPS_MAX_BLOCK_SIZE]; 
    1974  
    1975         memcpy(iv,C.secret_key.iv,blocksize); 
    1976         memset(C.secret_key.iv,'\0',sizeof C.secret_key.iv); 
    1977         decrypt.set_iv(&decrypt,C.secret_key.iv); 
    1978         decrypt.decrypt(&decrypt,iv2,iv,blocksize); 
     1976 
     1977        memset(iv,'\0',sizeof iv); 
     1978        decrypt.set_iv(&decrypt,iv); 
     1979        decrypt.decrypt(&decrypt,iv,C.secret_key.iv,blocksize); 
    19791980        } 
    19801981 
     
    19911992        break; 
    19921993 
    1993  
    19941994    case OPS_PKA_DSA: 
    19951995        if(!limited_read_mpi(&C.secret_key.key.dsa.x,region,parse_info))