diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2016-07-11 16:31:47 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2016-07-13 15:43:25 +0200 |
commit | 76aaff21980de4f9baf3d19370fbd8aabfb7b77a (patch) | |
tree | e4a0863e0ab802906e8765c0158aeacfbe95e225 /tests/crq_apis.c | |
parent | f6309aabe48c89a167241ab73d33ff7cf4e289ca (diff) | |
download | gnutls-76aaff21980de4f9baf3d19370fbd8aabfb7b77a.tar.gz |
tests: added basic testing of gnutls_x509_crq_set_extension_by_oid()
Diffstat (limited to 'tests/crq_apis.c')
-rw-r--r-- | tests/crq_apis.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/crq_apis.c b/tests/crq_apis.c index 576a1baca7..7eebb38000 100644 --- a/tests/crq_apis.c +++ b/tests/crq_apis.c @@ -64,6 +64,7 @@ static gnutls_x509_crq_t generate_crq(void) size_t s = 0; char smallbuf[10]; gnutls_datum_t out; + unsigned crit; ret = gnutls_x509_privkey_init(&pkey); if (ret != 0) @@ -178,6 +179,19 @@ static gnutls_x509_crq_t generate_crq(void) if (ret != 0) fail("gnutls_x509_crq_set_key_purpose_oid2 %d\n", ret); +#define EXT_ID1 "1.2.3.4.5" +#define EXT_ID2 "1.5.3.555555991.5" +#define EXT_DATA1 "\xCA\xFE\xFF" +#define EXT_DATA2 "\xCA\xFE\xFF\xFA\xFE" + /* test writing arbitrary extensions */ + ret = gnutls_x509_crq_set_extension_by_oid(crq, EXT_ID1, EXT_DATA1, sizeof(EXT_DATA1)-1, 0); + if (ret != 0) + fail("gnutls_x509_crq_set_extension_by_oid %s\n", gnutls_strerror(ret)); + + ret = gnutls_x509_crq_set_extension_by_oid(crq, EXT_ID2, EXT_DATA2, sizeof(EXT_DATA2)-1, 1); + if (ret != 0) + fail("gnutls_x509_crq_set_extension_by_oid %s\n", gnutls_strerror(ret)); + ret = gnutls_x509_crq_print(crq, GNUTLS_CRT_PRINT_FULL, &out); if (ret != 0) fail("gnutls_x509_crq_print\n"); @@ -190,6 +204,35 @@ static gnutls_x509_crq_t generate_crq(void) fail("gnutls_x509_crq_sign2: %s\n", gnutls_strerror(ret)); gnutls_x509_privkey_deinit(pkey); + + /* test reading the arb. extensions */ + crit = -1; + ret = gnutls_x509_crq_get_extension_by_oid2(crq, EXT_ID1, 0, &out, &crit); + if (ret < 0) + fail("gnutls_x509_crq_get_extension_by_oid2: %s\n", gnutls_strerror(ret)); + + if (out.size != sizeof(EXT_DATA1)-1 || memcmp(out.data, EXT_DATA1, out.size) != 0) { + fail("ext1 doesn't match\n"); + } + if (crit != 0) { + fail("ext1 crit flag doesn't match\n"); + } + gnutls_free(out.data); + + crit = -1; + ret = gnutls_x509_crq_get_extension_by_oid2(crq, EXT_ID2, 0, &out, &crit); + if (ret < 0) + fail("gnutls_x509_crq_get_extension_by_oid2: %s\n", gnutls_strerror(ret)); + + if (out.size != sizeof(EXT_DATA2)-1 || memcmp(out.data, EXT_DATA2, out.size) != 0) { + fail("ext2 doesn't match\n"); + } + if (crit != 1) { + fail("ext2 crit flag doesn't match\n"); + } + + gnutls_free(out.data); + return crq; } |