_set_arcs_l() replaced by _set_arcs() fror OBJECT IDENTIFIER and RELATIVE-OID
diff --git a/skeletons/tests/check-OIDs.c b/skeletons/tests/check-OIDs.c
index cea630e..97ed33f 100644
--- a/skeletons/tests/check-OIDs.c
+++ b/skeletons/tests/check-OIDs.c
@@ -1,5 +1,5 @@
-#include "../RELATIVE-OID.c"
#include "../OBJECT_IDENTIFIER.c"
+#include "../RELATIVE-OID.c"
#include "../INTEGER.c"
#include "../ber_decoder.c"
#include "../ber_tlv_length.c"
@@ -42,6 +42,7 @@
OBJECT_IDENTIFIER_print(&asn1_DEF_OBJECT_IDENTIFIER, oid, 0, _print, 0);
printf("\n");
+ memset(arcs, 'A', sizeof(arcs));
alen = OBJECT_IDENTIFIER_get_arcs(oid,
arcs, sizeof(arcs[0]), sizeof(arcs)/sizeof(arcs[0]));
assert(alen > 0);
@@ -85,6 +86,7 @@
RELATIVE_OID_print(&asn1_DEF_RELATIVE_OID, oid, 0, _print, 0);
printf("\n");
+ memset(arcs, 'A', sizeof(arcs));
alen = RELATIVE_OID_get_arcs(oid,
arcs, sizeof(arcs[0]), sizeof(arcs)/sizeof(arcs[0]));
assert(alen > 0);
@@ -113,21 +115,23 @@
int ret;
int i;
- printf("Encoding {");
+ printf("Encoding (R) {");
for(i = 0; i < acount; i++) {
printf(" %u", arcs[i]);
}
printf(" }\n");
- ret = RELATIVE_OID_set_arcs_l(&oid, (unsigned long *)arcs, acount);
+ ret = RELATIVE_OID_set_arcs(&oid, arcs, sizeof(arcs[0]), acount);
assert(ret == 0);
+ memset(tmp_arcs, 'A', sizeof(tmp_arcs));
alen = RELATIVE_OID_get_arcs(&oid, tmp_arcs,
sizeof(tmp_arcs[0]), tmp_alen);
assert(alen >= 0);
- assert(alen < tmp_alen);
+ assert(alen <= tmp_alen);
+ assert(alen == acount);
- printf("Encoded {");
+ printf("Encoded (R) {");
for(i = 0; i < alen; i++) {
printf(" %lu", tmp_arcs[i]);
assert((unsigned long)arcs[i] == tmp_arcs[i]);
@@ -148,26 +152,28 @@
int ret;
int i;
- printf("Encoding {");
+ printf("Encoding (O) {");
for(i = 0; i < acount; i++) {
printf(" %u", arcs[i]);
}
printf(" }\n");
- ret = OBJECT_IDENTIFIER_set_arcs_l(&oid, (unsigned long *)arcs, acount);
+ ret = OBJECT_IDENTIFIER_set_arcs(&oid, arcs, sizeof(arcs[0]), acount);
assert(ret == 0);
+ memset(tmp_arcs, 'A', sizeof(tmp_arcs));
alen = OBJECT_IDENTIFIER_get_arcs(&oid,
tmp_arcs, sizeof(tmp_arcs[0]), tmp_alen);
assert(alen >= 0);
- assert(alen < tmp_alen);
+ assert(alen <= tmp_alen);
+ assert(alen == acount);
- printf("Encoded {");
+ printf("Encoded (O) { ");
for(i = 0; i < alen; i++) {
- printf(" %lu", tmp_arcs[i]);
+ printf("%lu ", tmp_arcs[i]); fflush(stdout);
assert((unsigned long)arcs[i] == tmp_arcs[i]);
}
- printf(" }\n");
+ printf("}\n");
}
static int
@@ -224,6 +230,8 @@
int
main() {
+ int i;
+
/* {joint-iso-itu-t 230 3} */
uint8_t buf1[] = {
0x06, /* OBJECT IDENTIFIER */
@@ -240,34 +248,75 @@
};
int buf2_check[] = { 8571, 3, 2 };
- int buf3_check[] = { 0 };
- int buf4_check[] = { 1 };
- int buf5_check[] = { 80, 40 };
- int buf6_check[] = { 127 };
- int buf7_check[] = { 128 };
- int buf8_check[] = { 65535, 65536 };
- int buf9_check[] = { 100000, 0x20000, 1234, 256, 127, 128 };
- int buf10_check[] = { 0, 0xffffffff, 0xff00ff00, 0 };
- int buf11_check[] = { 0, 1, 2 };
- int buf12_check[] = { 1, 38, 3 };
- int buf13_check[] = { 0, 0, 0xf000 };
+ /* {joint-iso-itu-t 42 } */
+ uint8_t buf3[] = {
+ 0x06, /* OBJECT IDENTIFIER */
+ 0x01, /* Length */
+ 0x7A
+ };
+ int buf3_check[] = { 2, 42 };
+
+ /* {joint-iso-itu-t 25957 } */
+ uint8_t buf4[] = {
+ 0x06, /* OBJECT IDENTIFIER */
+ 0x03, /* Length */
+ 0x81, 0x80 + 0x4B, 0x35
+ };
+ int buf4_check[] = { 2, 25957 };
+
+ int buf5_check[] = { 0 };
+ int buf6_check[] = { 1 };
+ int buf7_check[] = { 80, 40 };
+ int buf8_check[] = { 127 };
+ int buf9_check[] = { 128 };
+ int buf10_check[] = { 65535, 65536 };
+ int buf11_check[] = { 100000, 0x20000, 1234, 256, 127, 128 };
+ int buf12_check[] = { 0, 0xffffffff, 0xff00ff00, 0 };
+ int buf13_check[] = { 0, 1, 2 };
+ int buf14_check[] = { 1, 38, 3 };
+ int buf15_check[] = { 0, 0, 0xf000 };
+ int buf16_check[] = { 0, 0, 0, 1, 0 };
+ int buf17_check[] = { 2, 0xffffffAf, 0xff00ff00, 0 };
CHECK_OID(1); /* buf1, buf1_check */
CHECK_ROID(2); /* buf2, buf2_check */
+ CHECK_OID(3); /* buf3, buf3_check */
+ CHECK_OID(4); /* buf4, buf4_check */
- CHECK_REGEN(3); /* Regenerate RELATIVE-OID */
- CHECK_REGEN(4);
- CHECK_REGEN(5);
+ CHECK_REGEN(5); /* Regenerate RELATIVE-OID */
CHECK_REGEN(6);
CHECK_REGEN(7);
CHECK_REGEN(8);
CHECK_REGEN(9);
CHECK_REGEN(10);
+ CHECK_REGEN(11);
+ CHECK_REGEN(12);
+ CHECK_REGEN(13);
+ CHECK_REGEN(14);
+ CHECK_REGEN(15);
+ CHECK_REGEN(16);
+ CHECK_REGEN(17);
CHECK_REGEN_OID(1); /* Regenerate OBJECT IDENTIFIER */
- CHECK_REGEN_OID(11);
- CHECK_REGEN_OID(12);
+ CHECK_REGEN_OID(3); /* Regenerate OBJECT IDENTIFIER */
+ CHECK_REGEN_OID(4); /* Regenerate OBJECT IDENTIFIER */
CHECK_REGEN_OID(13);
+ CHECK_REGEN_OID(14);
+ CHECK_REGEN_OID(15);
+ CHECK_REGEN_OID(16);
+ CHECK_REGEN_OID(17);
+
+ for(i = 0; i < 100000; i++) {
+ int bufA_check[3] = { 2, i, rand() };
+ int bufB_check[2] = { rand(), i * 121 };
+ CHECK_REGEN(A);
+ CHECK_REGEN_OID(A);
+ CHECK_REGEN(B);
+ if(i > 100) i++;
+ if(i > 500) i++;
+ if(i > 1000) i += 3;
+ if(i > 5000) i += 151;
+ }
if(getenv("CHECK_SPEED")) {
/* Useful for developers only */