X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcasn1%2Ftests%2Ftest_silcasn1.c;h=c6266e1e2e311eb1d23f207a54b683d6aed507f1;hb=e7b6c157b80152bf9fb9266e6bdd93f9fb0db776;hp=b3c5e9154ad90d62430fc264557a2ee3c8576c07;hpb=57fdb449ba19b3303f5c48e0b222b8bb731868eb;p=silc.git diff --git a/lib/silcasn1/tests/test_silcasn1.c b/lib/silcasn1/tests/test_silcasn1.c index b3c5e915..c6266e1e 100644 --- a/lib/silcasn1/tests/test_silcasn1.c +++ b/lib/silcasn1/tests/test_silcasn1.c @@ -48,10 +48,10 @@ int main(int argc, char **argv) SilcBufferStruct node, node2; SilcAsn1 asn1; SilcBool success = FALSE; - SilcBool val = TRUE; + SilcBool val = TRUE, nval; int i; - unsigned char *str; - SilcUInt32 str_len, tmpint; + unsigned char *str, buf[512]; + SilcUInt32 str_len, tmpint, choice; char tmp[32]; SilcRng rng; SilcMPInt mpint, mpint2; @@ -183,7 +183,10 @@ int main(int argc, char **argv) SILC_ASN1_SEQUENCE_T(SILC_ASN1_EXPLICIT, 9), SILC_ASN1_SEQUENCE_T(SILC_ASN1_INDEFINITE, 0), SILC_ASN1_BOOLEAN_T(0, 4, &val), - SILC_ASN1_BOOLEAN(&val), + SILC_ASN1_CHOICE(&choice), + SILC_ASN1_SHORT_INT(&tmpint), + SILC_ASN1_BOOLEAN(&val), + SILC_ASN1_END, SILC_ASN1_END, SILC_ASN1_END, SILC_ASN1_END, SILC_ASN1_END); @@ -193,6 +196,9 @@ int main(int argc, char **argv) } SILC_LOG_DEBUG(("Decoding success")); SILC_LOG_DEBUG(("Boolean val %d", val)); + SILC_LOG_DEBUG(("Choice index %d", choice)); + if (choice != 2) + goto out; printf("\n"); @@ -607,7 +613,7 @@ int main(int argc, char **argv) SILC_ASN1_BOOLEAN_T(0, 100, val), SILC_ASN1_END, SILC_ASN1_SEQUENCE, - SILC_ASN1_NULL, + SILC_ASN1_NULL(TRUE), SILC_ASN1_BOOLEAN_T(SILC_ASN1_EXPLICIT, 0, val), SILC_ASN1_OCTET_STRING("foobar", 6), SILC_ASN1_BOOLEAN_T(SILC_ASN1_PRIVATE, 43, val), @@ -634,7 +640,7 @@ int main(int argc, char **argv) SILC_ASN1_BOOLEAN_T(0, 100, &val), SILC_ASN1_END, SILC_ASN1_SEQUENCE, - SILC_ASN1_NULL, + SILC_ASN1_NULL(&nval), SILC_ASN1_BOOLEAN_T(SILC_ASN1_EXPLICIT, 0, &val), SILC_ASN1_OCTET_STRING(&str, &str_len), SILC_ASN1_BOOLEAN_T(SILC_ASN1_PRIVATE, 43, &val), @@ -648,16 +654,17 @@ int main(int argc, char **argv) } SILC_LOG_DEBUG(("Decoding success")); SILC_LOG_DEBUG(("Boolean val %d", val)); + SILC_LOG_DEBUG(("NULL is present %s", nval ? "yes" : "no")); SILC_LOG_DEBUG(("Ooctet-string %s, len %d", str, str_len)); printf("\n"); memset(&node, 0, sizeof(node)); SILC_LOG_DEBUG(("Encoding ASN.1 tree 10 (INTEGER)")); - str = silc_rng_get_rn_data(rng, 256); + silc_rng_get_rn_data(rng, 256, buf, sizeof(buf)); silc_mp_init(&mpint); silc_mp_init(&mpint2); - silc_mp_bin2mp(str, 256, &mpint); + silc_mp_bin2mp(buf, 256, &mpint); success = silc_asn1_encode(asn1, &node, SILC_ASN1_INT(&mpint),