diff --git a/src/libstrongswan/asn1/asn1.c b/src/libstrongswan/asn1/asn1.c index ef1dd9eaa..cf684e720 100644 --- a/src/libstrongswan/asn1/asn1.c +++ b/src/libstrongswan/asn1/asn1.c @@ -648,18 +648,27 @@ int asn1_parse_algorithmIdentifier(chunk_t blob, int level0, chunk_t *parameters if (asn1_unwrap(&blob, &blob) == ASN1_SEQUENCE) { - DBG2(DBG_ASN, "L%d - algorithmIdentifier:", level0); + if (level0 >= 0) + { + DBG2(DBG_ASN, "L%d - algorithmIdentifier:", level0); + } if (asn1_unwrap(&blob, &object) == ASN1_OID) { - DBG2(DBG_ASN, "L%d - algorithm:", level0+1); - asn1_debug_simple_object(object, ASN1_OID, FALSE); + if (level0 >= 0) + { + DBG2(DBG_ASN, "L%d - algorithm:", level0+1); + asn1_debug_simple_object(object, ASN1_OID, FALSE); + } alg = asn1_known_oid(object); if (blob.len) { - DBG2(DBG_ASN, "L%d - parameters:", level0+1); - DBG3(DBG_ASN, "%B", &blob); + if (level0 >= 0) + { + DBG2(DBG_ASN, "L%d - parameters:", level0+1); + DBG3(DBG_ASN, "%B", &blob); + } if (parameters) { *parameters = blob; diff --git a/src/libstrongswan/asn1/asn1.h b/src/libstrongswan/asn1/asn1.h index cb5d86c5c..a94c82e30 100644 --- a/src/libstrongswan/asn1/asn1.h +++ b/src/libstrongswan/asn1/asn1.h @@ -163,7 +163,7 @@ int asn1_unwrap(chunk_t *blob, chunk_t *content); * Parses an ASN.1 algorithmIdentifier object * * @param blob ASN.1 coded blob - * @param level0 top-most level offset + * @param level0 top-most level offset (-1 to suppress log messages) * @param params returns optional [ASN.1 coded] parameters * @return known OID index or OID_UNKNOWN */ diff --git a/src/libstrongswan/tests/suites/test_asn1.c b/src/libstrongswan/tests/suites/test_asn1.c index 7cedf8e0f..fc207355d 100644 --- a/src/libstrongswan/tests/suites/test_asn1.c +++ b/src/libstrongswan/tests/suites/test_asn1.c @@ -81,11 +81,11 @@ START_TEST(test_asn1_parse_algorithmIdentifier) parameters = chunk_empty; if (i == 2) { - alg = asn1_parse_algorithmIdentifier(algid, 0, NULL); + alg = asn1_parse_algorithmIdentifier(algid, _i, NULL); } else { - alg = asn1_parse_algorithmIdentifier(algid, 0, ¶meters); + alg = asn1_parse_algorithmIdentifier(algid, _i, ¶meters); if (test[i].empty) { ck_assert(parameters.len == 0 && parameters.ptr == NULL); @@ -824,7 +824,7 @@ Suite *asn1_suite_create() suite_add_tcase(s, tc); tc = tcase_create("parse_algorithmIdentifier"); - tcase_add_test(tc, test_asn1_parse_algorithmIdentifier); + tcase_add_loop_test(tc, test_asn1_parse_algorithmIdentifier, -1, 1); suite_add_tcase(s, tc); tc = tcase_create("known_oid");