6 main (int argc, char** argv)
9 asn1_node definitions = NULL, node1 = NULL, node2 = NULL;
10 char errorDescription[ASN1_MAX_ERROR_DESCRIPTION_SIZE];
13 int data_size = sizeof (data);
16 result = asn1_parser2tree ("choice.asn", &definitions, errorDescription);
17 if (result != ASN1_SUCCESS)
19 printf ("error in %d\n", __LINE__);
23 result = asn1_create_element (definitions, "TEST.Choice0", &node1);
24 if (result != ASN1_SUCCESS)
26 printf ("error in %d\n", __LINE__);
30 result = asn1_write_value (node1, "", "choice1", 1);
31 if (result != ASN1_SUCCESS)
33 printf ("error in %d\n", __LINE__);
37 result = asn1_write_value (node1, "choice1", "choice2", 1);
38 if (result != ASN1_SUCCESS)
40 printf ("error in %d\n", __LINE__);
44 result = asn1_write_value (node1, "choice1.choice2", "int1", 1);
45 if (result != ASN1_SUCCESS)
47 printf ("error in %d\n", __LINE__);
51 result = asn1_write_value (node1, "choice1.choice2.int1", "1234", 0);
52 if (result != ASN1_SUCCESS)
54 printf ("error in %d\n", __LINE__);
58 result = asn1_der_coding (node1, "", data, &data_size, errorDescription);
59 if (result != ASN1_SUCCESS)
61 printf ("error in %d\n", __LINE__);
65 asn1_delete_structure (&node1);
68 result = asn1_create_element (definitions, "TEST.Choice0", &node2);
69 if (result != ASN1_SUCCESS)
71 printf ("error in %d\n", __LINE__);
77 for (i = 0; i < data_size; i++)
78 printf ("%.2x ", (unsigned char) (data[i]));
82 result = asn1_der_decoding (&node2, data, data_size, errorDescription);
83 if (result != ASN1_SUCCESS)
85 printf ("error in %d\n", __LINE__);
89 asn1_delete_structure (&node2);
90 asn1_delete_structure (&definitions);