mscat parse complete

remotes/push_mirror/guardrails
aCaB 14 years ago
parent 871afd19d7
commit f1bf58cc3c
  1. 122
      libclamav/asn1.c

@ -615,108 +615,30 @@ int asn1_parse_mscat(FILE *f) {
if(asn1_expect_objtype(map, asn1.next, &size, &asn1, 0xa0)) /* certificates */
break;
/* if(asn1_expect_objtype(map, asn1.next, &hlen, &asn1, 0xa0)) /\* certificates *\/ */
/* break; */
/* old_hlen = hlen; */
/* old_next = asn1.next; */
/* hlen = asn1.size; */
/* asn1.next = asn1.content; */
/* success = 1; */
/* while(hlen) { */
/* if(!asn1_get_x509(map, &asn1.next, &hlen)) */
/* continue; */
/* success = 0; */
/* break; */
/* } */
/* if(!success) */
/* break; */
/* hlen = old_hlen; */
/* if(asn1_get_obj(map, old_next, &hlen, &asn1)) */
/* break; */
/* if(asn1.type == 0xa1 && asn1_get_obj(map, asn1.next, &hlen, &asn1)) /\* crls - unused shouldn't be present *\/ */
/* break; */
/* if(asn1.type != 0x31) /\* signerInfos *\/ */
/* break; */
/* cli_errmsg("good %u - %p\n", hlen, asn1.next); */
dsize = asn1.size;
while(dsize) {
if(asn1_get_x509(map, &asn1.content, &dsize)) {
dsize = 1;
break;
}
}
if(dsize)
break;
if(asn1_get_obj(map, asn1.next, &size, &asn1))
break;
if(asn1.type == 0xa1 && asn1_get_obj(map, asn1.next, &size, &asn1)) /* crls - unused shouldn't be present */
break;
if(asn1.type != 0x31) { /* signerInfos */
cli_dbgmsg("asn1_parse_mscat: unexpected type %02x for signerInfos\n", asn1.type);
break;
}
if(size) {
cli_dbgmsg("asn1_parse_mscat: unexpected extra data after signerInfos\n");
break;
}
cli_errmsg("asn1: parsing ok\n");
} while(0);
return 1;
}
/*
EMBEDDED
-.--------.-
SEQ {
OID = SPC_INDIRECT_DATA_OBJID,
[0] SEQ {
SEQ {
OID = SPC_PE_IMAGE_DATA_OBJID,
[stuff]
},
SEQ {
SEQ {
OID = 1.3.14.3.2.26,
NULL
},
VALUE = fe5723301b5567ced2cc882797560d682f9cc43c
}
},
}
CAT FILE
-.--------.-
SEQ {
OID = szOID_CTL,
[0] SEQ {
SEQ {
OID = szOID_CATALOG_LIST,
},
VALUE = USEFUL?!,
DATE ...
SEQ {
OID = szOID_CATALOG_LIST_MEMBER,
NULL,
},
SEQ {
SEQ {
VALUE = hash(wide)
SET {
SEQ {
OID = CAT_NAMEVALUE_OBJID,
SET {
SEQ { k = v }
}
}, DO NOT WANT!
SEQ {
OID = SPC_INDIRECT_DATA_OBJID.
SET {
SEQ {
OID = 1.3.6.1.4.1.311.2.1.25(ANY) || 1.3.6.1.4.1.311.2.1.15(PE)
[2] 80 ---
},
SEQ {
SEQ {
OID = 1.3.14.3.2.26
NULL,
},
VALUE = hash
},
SEQ {
OID = CAT_MEMBERINFO_OBJID
SET { SEQ {} }
}
} DO WANT
}
}
}
*/

Loading…
Cancel
Save