Changeset 97

Show
Ignore:
Timestamp:
05/11/05 13:09:29
Author:
rachel
Message:

SS userdefined packets supported.
new data_t struct introduced

Files:

Legend:

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

    r95 r97  
    7171    { 
    7272    indent(indentlevel); 
    73     printf("%s: len=%d, data=", text, len); 
     73    printf("%s: len=%d, data=0x", text, len); 
    7474    hexdump(data,len); 
    7575    printf("\n"); 
     
    314314        break; 
    315315 
     316    case OPS_PTAG_SS_USERDEFINED00: 
     317    case OPS_PTAG_SS_USERDEFINED01: 
     318    case OPS_PTAG_SS_USERDEFINED02: 
     319    case OPS_PTAG_SS_USERDEFINED03: 
     320    case OPS_PTAG_SS_USERDEFINED04: 
     321    case OPS_PTAG_SS_USERDEFINED05: 
     322    case OPS_PTAG_SS_USERDEFINED06: 
     323    case OPS_PTAG_SS_USERDEFINED07: 
     324    case OPS_PTAG_SS_USERDEFINED08: 
     325    case OPS_PTAG_SS_USERDEFINED09: 
     326    case OPS_PTAG_SS_USERDEFINED10: 
     327        print_hexdump("Internal or user-defined", 
     328                      content->ss_userdefined.data.contents, 
     329                      content->ss_userdefined.data.len, 
     330                      1); 
     331        break; 
     332 
    316333    case OPS_PTAG_CT_LITERAL_DATA_HEADER: 
    317334        printf("  literal data header format=%c filename='%s'\n", 
  • openpgpsdk/trunk/src/packet-parse.c

    r93 r97  
    391391        break; 
    392392 
     393    case OPS_PTAG_SS_USERDEFINED00: 
     394    case OPS_PTAG_SS_USERDEFINED01: 
     395    case OPS_PTAG_SS_USERDEFINED02: 
     396    case OPS_PTAG_SS_USERDEFINED03: 
     397    case OPS_PTAG_SS_USERDEFINED04: 
     398    case OPS_PTAG_SS_USERDEFINED05: 
     399    case OPS_PTAG_SS_USERDEFINED06: 
     400    case OPS_PTAG_SS_USERDEFINED07: 
     401    case OPS_PTAG_SS_USERDEFINED08: 
     402    case OPS_PTAG_SS_USERDEFINED09: 
     403    case OPS_PTAG_SS_USERDEFINED10: 
     404        ops_ss_userdefined_free(&c->content.ss_userdefined); 
     405        break; 
     406 
    393407    case OPS_PARSER_PACKET_END: 
    394408        ops_packet_free(&c->content.packet); 
     
    647661 
    648662    return 1; 
     663    } 
     664 
     665static int read_data(data_t *data, ops_region_t *subregion, ops_parse_options_t *opt) 
     666    { 
     667        data->len = subregion->length - subregion->length_read; 
     668 
     669        data->contents = malloc(data->len); 
     670        if (!data->contents) 
     671            return 0; 
     672 
     673        if (!ops_limited_read(data->contents, data->len, 
     674                              subregion, opt)) 
     675            return 0; 
     676 
     677        return 1; 
    649678    } 
    650679 
     
    791820        break; 
    792821 
     822    case OPS_PTAG_SS_USERDEFINED00: 
     823    case OPS_PTAG_SS_USERDEFINED01: 
     824    case OPS_PTAG_SS_USERDEFINED02: 
     825    case OPS_PTAG_SS_USERDEFINED03: 
     826    case OPS_PTAG_SS_USERDEFINED04: 
     827    case OPS_PTAG_SS_USERDEFINED05: 
     828    case OPS_PTAG_SS_USERDEFINED06: 
     829    case OPS_PTAG_SS_USERDEFINED07: 
     830    case OPS_PTAG_SS_USERDEFINED08: 
     831    case OPS_PTAG_SS_USERDEFINED09: 
     832    case OPS_PTAG_SS_USERDEFINED10: 
     833        if (!read_data(&C.ss_userdefined.data,&subregion,opt)) 
     834            return 0; 
     835        break; 
     836 
    793837    case OPS_PTAG_SS_REVOCATION_KEY: 
    794838  
     
    10871131 
    10881132    return 1; 
     1133    } 
     1134 
     1135void data_free(data_t *data) 
     1136    { 
     1137    free(data->contents); 
     1138    data->contents=NULL; 
     1139    data->len=0; 
     1140    } 
     1141 
     1142void ops_ss_userdefined_free(ops_ss_userdefined_t *ss_userdefined) 
     1143    { 
     1144    data_free(&ss_userdefined->data); 
    10891145    } 
    10901146 
     
    13301386    } 
    13311387 
     1388 
    13321389/* vim:set textwidth=120: */ 
    13331390/* vim:set ts=8: */ 
  • openpgpsdk/trunk/src/packet.h

    r93 r97  
    156156    OPS_PTAG_SS_FEATURES                =0x200+30, /*!< features */ 
    157157 
     158    OPS_PTAG_SS_USERDEFINED00   =0x200+100, /*!< internal or user-defined */ 
     159    OPS_PTAG_SS_USERDEFINED01   =0x200+101,  
     160    OPS_PTAG_SS_USERDEFINED02   =0x200+102, 
     161    OPS_PTAG_SS_USERDEFINED03   =0x200+103, 
     162    OPS_PTAG_SS_USERDEFINED04   =0x200+104, 
     163    OPS_PTAG_SS_USERDEFINED05   =0x200+105, 
     164    OPS_PTAG_SS_USERDEFINED06   =0x200+106, 
     165    OPS_PTAG_SS_USERDEFINED07   =0x200+107, 
     166    OPS_PTAG_SS_USERDEFINED08   =0x200+108, 
     167    OPS_PTAG_SS_USERDEFINED09   =0x200+109, 
     168    OPS_PTAG_SS_USERDEFINED10   =0x200+110, 
     169 
     170         
    158171    /* pseudo content types */ 
    159172    OPS_PTAG_CT_LITERAL_DATA_HEADER     =0x300, 
     
    421434    unsigned char               key_id[OPS_KEY_ID_SIZE]; 
    422435    } ops_ss_key_id_t; 
     436 
     437typedef struct 
     438    { 
     439    size_t len; 
     440    unsigned char *contents; 
     441    } data_t; 
     442 
     443typedef struct 
     444    { 
     445    data_t data; 
     446    } ops_ss_userdefined_t; 
    423447 
    424448typedef struct 
     
    549573    ops_ss_primary_user_id_t    ss_primary_user_id; 
    550574    ops_ss_revocation_key_t     ss_revocation_key; 
     575    ops_ss_userdefined_t        ss_userdefined; 
    551576    ops_literal_data_header_t   literal_data_header; 
    552577    ops_literal_data_body_t     literal_data_body; 
     
    582607void ops_ss_key_server_prefs_free(ops_ss_key_server_prefs_t * ss_key_server_prefs); 
    583608void ops_ss_features_free(ops_ss_features_t * ss_features); 
     609void ops_ss_userdefined_free(ops_ss_userdefined_t *ss_userdefined); 
    584610void ops_packet_free(ops_packet_t *packet); 
    585611void ops_parser_content_free(ops_parser_content_t *c);