Changeset 520

Show
Ignore:
Timestamp:
10/18/07 18:55:58
Author:
rachel
Message:

Partial Body Lengths aren't yet supported in parsing.
Added error message to detect them and say so.

Files:

Legend:

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

    r518 r520  
    610610    if(c[0] < 192) 
    611611        { 
     612    // 1. One-octet packet 
    612613        *length=c[0]; 
    613614        return ops_true; 
    614615        } 
    615     if(c[0] < 255) 
    616         { 
    617         unsigned t=(c[0]-192) << 8; 
    618  
    619         if(base_read(c,1,pinfo) != 1) 
    620             return ops_false; 
    621         *length=t+c[0]+192; 
    622         return ops_true; 
    623         } 
    624     return _read_scalar(length,4,pinfo); 
     616 
     617    else if (c[0]>=192 && c[0]<=223) 
     618        { 
     619        // 2. Two-octet packet 
     620        unsigned t=(c[0]-192) << 8; 
     621         
     622        if(base_read(c,1,pinfo) != 1) 
     623            return ops_false; 
     624        *length=t+c[0]+192; 
     625        return ops_true; 
     626        } 
     627 
     628    else if (c[0]==255) 
     629        { 
     630        // 3. Five-Octet packet 
     631        return _read_scalar(length,4,pinfo); 
     632        } 
     633 
     634    else if (c[0]>=224 && c[0]<255) 
     635        { 
     636        // 4. Partial Body Length 
     637        OPS_ERROR(&pinfo->errors,OPS_E_UNIMPLEMENTED, 
     638                    "New format Partial Body Length fields not yet implemented"); 
     639        return ops_false; 
     640        } 
     641    return ops_false; 
    625642    } 
    626643