Commit 27d7049f authored by Lev Walkin's avatar Lev Walkin

added tests for length limit

parent 1cbd222a
......@@ -53,12 +53,12 @@ check(int size) {
}
buf_off = 0;
erval = der_encode(&asn1_DEF_OCTET_STRING,
erval = der_encode(&asn_DEF_OCTET_STRING,
os, write_to_buf, 0);
assert(erval.encoded == buf_off);
assert(buf_off > size);
rval = ber_decode(&asn1_DEF_OCTET_STRING, (void **)&nos, buf, buf_off);
rval = ber_decode(0, &asn_DEF_OCTET_STRING, (void **)&nos, buf, buf_off);
assert(rval.code == RC_OK);
assert(rval.consumed == buf_off);
......@@ -76,12 +76,17 @@ check(int size) {
}
asn1_DEF_OCTET_STRING.free_struct(&asn1_DEF_OCTET_STRING, os, 0);
asn1_DEF_OCTET_STRING.free_struct(&asn1_DEF_OCTET_STRING, nos, 0);
asn_DEF_OCTET_STRING.free_struct(&asn_DEF_OCTET_STRING, os, 0);
asn_DEF_OCTET_STRING.free_struct(&asn_DEF_OCTET_STRING, nos, 0);
}
int
main() {
uint8_t buf1[] = { 0x85, 0x00, 0x01, 0x02, 0x03, 0x04 };
uint8_t buf2[] = { 0x85, 0x00, 0x7f, 0xff, 0x03, 0x04 };
uint8_t buf3[] = { 0x85, 0x00, 0x7f, 0xff, 0xff, 0x04 };
ber_tlv_len_t tlv_len;
ssize_t ret;
int i;
for(i = 0; i < 66000; i++) {
......@@ -89,5 +94,17 @@ main() {
check(i);
}
ret = ber_fetch_length(0, buf1, sizeof(buf1), &tlv_len);
printf("ret=%d, len=%d\n", ret, tlv_len);
assert(ret == sizeof(buf1));
ret = ber_fetch_length(0, buf2, sizeof(buf2), &tlv_len);
printf("ret=%d, len=%d\n", ret, tlv_len);
assert(ret == sizeof(buf2));
ret = ber_fetch_length(0, buf3, sizeof(buf3), &tlv_len);
printf("ret=%d\n", ret);
assert(ret == -1);
return 0;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment