der tests: improve/implement handling of context-specific data
no more "EOL" in the output as the flexi decoder handles now context-specific data
This commit is contained in:
parent
6da3b856d6
commit
f75b5ec8f4
@ -326,8 +326,37 @@ static void _der_tests_print_flexi(ltc_asn1_list* l, unsigned int level)
|
||||
text = l->data;
|
||||
break;
|
||||
case LTC_ASN1_CONSTRUCTED:
|
||||
name = "CONSTRUCTED";
|
||||
text = "";
|
||||
if (l->used & 0x80)
|
||||
name = "CONTEXT SPECIFIC";
|
||||
else
|
||||
name = "CONSTRUCTED";
|
||||
snprintf(buf, sizeof(buf), "[%d]", l->used & 0x1f);
|
||||
text = buf;
|
||||
break;
|
||||
case LTC_ASN1_CONTEXT_SPECIFIC:
|
||||
name = "CONTEXT SPECIFIC";
|
||||
{
|
||||
int r;
|
||||
char* s = buf;
|
||||
int sz = sizeof(buf);
|
||||
r = snprintf(s, sz, "[%d] ", l->used & 0x1f);
|
||||
if (r < 0 || r >= sz) {
|
||||
printf("Context Specific boom");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
s += r;
|
||||
sz -= r;
|
||||
for (n = 0; n < l->size; ++n) {
|
||||
r = snprintf(s, sz, "%02X", ((unsigned char*)l->data)[n]);
|
||||
if (r < 0 || r >= sz) {
|
||||
printf("Context Specific boom");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
s += r;
|
||||
sz -= r;
|
||||
}
|
||||
text = buf;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user