提交 e10aeee1 编写于 作者: K Kurt Roeckx

fuzzers: print and convert it back

Reviewed-by: NRich Salz <rsalz@openssl.org>
GH: #1323
上级 5e3553c2
......@@ -69,11 +69,33 @@ int FuzzerInitialize(int *argc, char ***argv) {
int FuzzerTestOneInput(const uint8_t *buf, size_t len) {
int n;
ASN1_PCTX *pctx = ASN1_PCTX_new();
ASN1_PCTX_set_flags(pctx, ASN1_PCTX_FLAGS_SHOW_ABSENT |
ASN1_PCTX_FLAGS_SHOW_SEQUENCE | ASN1_PCTX_FLAGS_SHOW_SSOF |
ASN1_PCTX_FLAGS_SHOW_TYPE | ASN1_PCTX_FLAGS_SHOW_FIELD_STRUCT_NAME);
ASN1_PCTX_set_str_flags(pctx, ASN1_STRFLGS_UTF8_CONVERT |
ASN1_STRFLGS_SHOW_TYPE | ASN1_STRFLGS_DUMP_ALL);
for (n = 0; item_type[n] != NULL; ++n) {
const uint8_t *b = buf;
unsigned char *der = NULL;
const ASN1_ITEM *i = ASN1_ITEM_ptr(item_type[n]);
ASN1_VALUE *o = ASN1_item_d2i(NULL, &b, len, i);
ASN1_item_free(o, i);
if (o != NULL) {
BIO *bio = BIO_new(BIO_s_null());
ASN1_item_print(bio, o, 4, i, pctx);
BIO_free(bio);
ASN1_item_i2d(o, &der, i);
OPENSSL_free(der);
ASN1_item_free(o, i);
}
}
ASN1_PCTX_free(pctx);
return 0;
}
......@@ -22,7 +22,17 @@ int FuzzerInitialize(int *argc, char ***argv) {
int FuzzerTestOneInput(const uint8_t *buf, size_t len) {
const uint8_t **pp = &buf;
unsigned char *der = NULL;
STACK_OF(SCT) *scts = d2i_SCT_LIST(NULL, pp, len);
SCT_LIST_free(scts);
if (scts != NULL) {
BIO *bio = BIO_new(BIO_s_null());
SCT_LIST_print(scts, bio, 4, "\n", NULL);
BIO_free(bio);
i2d_SCT_LIST(scts, &der);
OPENSSL_free(der);
SCT_LIST_free(scts);
}
return 0;
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册