Skip to content

Commit b23adcc

Browse files
committed
Minor cleanup
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
1 parent e92353e commit b23adcc

File tree

3 files changed

+47
-43
lines changed

3 files changed

+47
-43
lines changed

src/pk/asn1/der/sequence/der_decode_sequence_flexi.c

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,22 @@ static int s_new_element(ltc_asn1_list **l)
2727
}
2828
return CRYPT_OK;
2929
}
30+
#if defined(LTC_TEST_DBG)
31+
void s_print_err(const char *errstr, ltc_asn1_list *l, int err, unsigned long identifier, unsigned long data_offset, unsigned long len)
32+
{
33+
#if LTC_TEST_DBG <= 1
34+
if (err == CRYPT_OK)
35+
return;
36+
#endif
37+
if (l->type == LTC_ASN1_CUSTOM_TYPE) {
38+
fprintf(stderr, "%s %02lx: hl=%4lu l=%4lu - %s[%s %llu] (%s)\n", errstr, identifier, data_offset, len, der_asn1_class_to_string_map[l->klass], der_asn1_pc_to_string_map[l->pc], l->tag, error_to_string(err));
39+
} else {
40+
fprintf(stderr, "%s %02lx: hl=%4lu l=%4lu - %s (%s)\n", errstr, identifier, data_offset, len, der_asn1_tag_to_string_map[l->tag], error_to_string(err));
41+
}
42+
}
43+
#else
44+
#define s_print_err(errstr, l, err, identifier, data_offset, len) LTC_UNUSED_PARAM(data_offset)
45+
#endif
3046

3147
/**
3248
ASN.1 DER Flexi(ble) decoder will decode arbitrary DER packets and create a linked list of the decoded elements.
@@ -39,7 +55,8 @@ static int s_new_element(ltc_asn1_list **l)
3955
static int s_der_decode_sequence_flexi(const unsigned char *in, unsigned long *inlen, ltc_asn1_list **out, unsigned long depth)
4056
{
4157
ltc_asn1_list *l;
42-
unsigned long err, identifier, len, totlen, data_offset, id_len, len_len;
58+
int err;
59+
unsigned long identifier, len, totlen, data_offset, id_len, len_len;
4360
void *realloc_tmp;
4461

4562
LTC_ARGCHK(in != NULL);
@@ -73,30 +90,19 @@ static int s_der_decode_sequence_flexi(const unsigned char *in, unsigned long *i
7390
if (l->type != LTC_ASN1_EOL) {
7491
/* fetch length */
7592
len_len = *inlen - id_len;
76-
#if defined(LTC_TEST_DBG)
93+
/* init with dummy values for error cases */
7794
data_offset = 666;
7895
len = 0;
79-
#endif
8096
if ((err = der_decode_asn1_length(&in[id_len], &len_len, &len)) != CRYPT_OK) {
81-
#if defined(LTC_TEST_DBG)
82-
fprintf(stderr, "E1 %02lx: hl=%4lu l=%4lu - %s (%s)\n", identifier, data_offset, len, der_asn1_tag_to_string_map[l->tag], error_to_string(err));
83-
#endif
97+
s_print_err("E1", l, err, identifier, data_offset, len);
8498
goto error;
8599
} else if (len > (*inlen - id_len - len_len)) {
86100
err = CRYPT_INVALID_PACKET;
87-
#if defined(LTC_TEST_DBG)
88-
fprintf(stderr, "E2 %02lx: hl=%4lu l=%4lu - %s (%s)\n", identifier, data_offset, len, der_asn1_tag_to_string_map[l->tag], error_to_string(err));
89-
#endif
101+
s_print_err("E2", l, err, identifier, data_offset, len);
90102
goto error;
91103
}
92104
data_offset = id_len + len_len;
93-
#if defined(LTC_TEST_DBG) && LTC_TEST_DBG > 1
94-
if (l->type == LTC_ASN1_CUSTOM_TYPE && l->klass == LTC_ASN1_CL_CONTEXT_SPECIFIC) {
95-
fprintf(stderr, "OK %02lx: hl=%4lu l=%4lu - Context Specific[%s %llu]\n", identifier, data_offset, len, der_asn1_pc_to_string_map[l->pc], l->tag);
96-
} else {
97-
fprintf(stderr, "OK %02lx: hl=%4lu l=%4lu - %s\n", identifier, data_offset, len, der_asn1_tag_to_string_map[l->tag]);
98-
}
99-
#endif
105+
s_print_err("OK", l, err, identifier, data_offset, len);
100106
len += data_offset;
101107

102108
if (l->type == LTC_ASN1_CUSTOM_TYPE) {

src/pk/ecc/ecc_ssh_ecdsa_encode_name.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
*/
2020
int ecc_ssh_ecdsa_encode_name(char *buffer, unsigned long *buflen, const ecc_key *key)
2121
{
22-
char oidstr[64] = {0};
22+
char oidstr[LTC_OID_MAX_STRLEN] = {0};
2323
unsigned long oidlen = sizeof(oidstr);
2424
int err, size = 0;
2525

tests/der_test.c

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -691,32 +691,6 @@ static void der_set_test(void)
691691

692692
}
693693

694-
695-
/* we are encoding
696-
697-
SEQUENCE {
698-
PRINTABLE "printable"
699-
IA5 "ia5"
700-
SEQUENCE {
701-
INTEGER 12345678
702-
UTCTIME { 91, 5, 6, 16, 45, 40, 1, 7, 0 }
703-
GENERALIZEDTIME { 2017, 03, 21, 10, 21, 12, 4, 1, 2, 0 }
704-
SEQUENCE {
705-
OCTET STRING { 1, 2, 3, 4 }
706-
BIT STRING { 1, 0, 0, 1 }
707-
SEQUENCE {
708-
OID { 1, 2, 840, 113549 }
709-
NULL
710-
SET OF {
711-
PRINTABLE "333" -- WILL GET SORTED
712-
PRINTABLE "222"
713-
}
714-
}
715-
}
716-
}
717-
718-
*/
719-
720694
static void s_der_oid_test(void)
721695
{
722696
static const unsigned char oid_x690_8_19_5_example[] = { 0x06, 0x03, 0x88, 0x37, 0x03 };
@@ -745,6 +719,30 @@ static void s_der_oid_test(void)
745719
SHOULD_FAIL(der_length_object_identifier(oid, 3, &len));
746720
}
747721

722+
/* we are encoding
723+
724+
SEQUENCE {
725+
PRINTABLE "printable"
726+
IA5 "ia5"
727+
SEQUENCE {
728+
INTEGER 12345678
729+
UTCTIME { 91, 5, 6, 16, 45, 40, 1, 7, 0 }
730+
GENERALIZEDTIME { 2017, 03, 21, 10, 21, 12, 4, 1, 2, 0 }
731+
SEQUENCE {
732+
OCTET STRING { 1, 2, 3, 4 }
733+
BIT STRING { 1, 0, 0, 1 }
734+
SEQUENCE {
735+
OID { 1, 2, 840, 113549 }
736+
NULL
737+
SET OF {
738+
PRINTABLE "333" -- WILL GET SORTED
739+
PRINTABLE "222"
740+
}
741+
}
742+
}
743+
}
744+
745+
*/
748746
static void der_flexi_test(void)
749747
{
750748
static const char printable_str[] = "printable";

0 commit comments

Comments
 (0)