libtasn1-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU libtasn1 branch, master, updated. libtasn1_4.7-30-gc8d8c06


From: Nikos Mavrogiannopoulos
Subject: [SCM] GNU libtasn1 branch, master, updated. libtasn1_4.7-30-gc8d8c06
Date: Fri, 08 Apr 2016 10:04:23 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU libtasn1".

http://git.savannah.gnu.org/cgit/libtasn1.git/commit/?id=c8d8c06676976df78defba22ab3d1db2425c442a

The branch, master has been updated
       via  c8d8c06676976df78defba22ab3d1db2425c442a (commit)
      from  45e02558981f053338e57d103c705fd533c35dbc (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit c8d8c06676976df78defba22ab3d1db2425c442a
Author: Nikos Mavrogiannopoulos <address@hidden>
Date:   Fri Apr 8 11:30:41 2016 +0200

    tests: added check on OCSP BasicOCSPResponse parsing

-----------------------------------------------------------------------

Summary of changes:
 tests/Makefile.am             |    9 ++-
 tests/ocsp-basic-response.c   |  109 +++++++++++++++++++++++++++++++++++++++++
 tests/ocsp-basic-response.der |  Bin 0 -> 441 bytes
 3 files changed, 115 insertions(+), 3 deletions(-)
 create mode 100644 tests/ocsp-basic-response.c
 create mode 100644 tests/ocsp-basic-response.der

diff --git a/tests/Makefile.am b/tests/Makefile.am
index 6b10a1c..0a4ea44 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -25,7 +25,7 @@ LDADD = ../lib/libtasn1.la ../gl/libgnu.la
 EXTRA_DIST = Test_parser.asn Test_tree.asn Test_tree_asn1_tab.c        \
        Test_encoding.asn pkix.asn TestIndef.p12 choice.asn 
coding-decoding2.asn \
        TestIndef2.p12 TestIndef3.der TestCertOctetOverflow.der \
-       libtasn1.supp \
+       libtasn1.supp ocsp-response-data.der \
        invalid-x509/id-000000.der invalid-x509/id-000001.der \
        invalid-x509/id-000002.der invalid-x509/id-000003.der \
        invalid-x509/id-000004.der invalid-x509/id-000005.der \
@@ -53,12 +53,14 @@ MOSTLYCLEANFILES = Test_parser_ERROR.asn
 
 check_PROGRAMS = Test_parser Test_tree Test_encoding Test_indefinite \
        Test_errors Test_simple Test_overflow Test_strings Test_choice \
-       Test_encdec copynode coding-decoding2 strict-der Test_choice_ocsp
+       Test_encdec copynode coding-decoding2 strict-der Test_choice_ocsp \
+       ocsp-basic-response
 
 TESTS = Test_parser Test_tree Test_encoding Test_indefinite    \
        Test_errors Test_simple Test_overflow crlf threadsafety \
        Test_strings Test_choice Test_encdec copynode coding-decoding2 \
-       strict-der Test_choice_ocsp decoding decoding-invalid-x509
+       strict-der Test_choice_ocsp decoding decoding-invalid-x509 \
+       ocsp-basic-response
 
 TESTS_ENVIRONMENT = \
        ASN1PARSER=$(srcdir)/Test_parser.asn \
@@ -73,6 +75,7 @@ TESTS_ENVIRONMENT = \
        ASN1ENCODING=$(srcdir)/Test_encoding.asn \
        ASN1CHOICE_OCSP=$(srcdir)/pkix.asn \
        ASN1CHOICE_OCSP_DATA=$(srcdir)/ocsp.der \
+       ASN1_RESPONSE_OCSP_DATA=$(srcdir)/ocsp-basic-response.der \
        THREADSAFETY_FILES=`find $(top_srcdir)/lib -name \*.c` \
        EXEEXT=$(EXEEXT) \
        LSAN_OPTIONS=suppressions=libtasn1.supp \
diff --git a/tests/ocsp-basic-response.c b/tests/ocsp-basic-response.c
new file mode 100644
index 0000000..701ed53
--- /dev/null
+++ b/tests/ocsp-basic-response.c
@@ -0,0 +1,109 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <libtasn1.h>
+
+int
+main (int argc, char** argv)
+{
+  int result = 0, len;
+  asn1_node definitions = NULL, node1 = NULL;
+  char errorDescription[ASN1_MAX_ERROR_DESCRIPTION_SIZE];
+  const char *choicefile = getenv ("ASN1CHOICE_OCSP");
+  const char *datafile = getenv ("ASN1_RESPONSE_OCSP_DATA");
+  FILE *fp;
+  char data[1024];
+  int data_size = sizeof (data);
+  unsigned etype;
+
+  if (!choicefile)
+    choicefile = "pkix.asn";
+
+  if (!datafile)
+    datafile = "ocsp-basic-response.der";
+
+  result = asn1_parser2tree (choicefile, &definitions, errorDescription);
+  if (result != ASN1_SUCCESS)
+    {
+      fprintf (stderr, "error in %d: %s\n", __LINE__, errorDescription);
+      exit (1);
+    }
+
+  result = asn1_create_element (definitions, "PKIX1.BasicOCSPResponse", 
&node1);
+  if (result != ASN1_SUCCESS)
+    {
+      fprintf (stderr, "error in %d\n", __LINE__);
+      exit (1);
+    }
+
+  fp = fopen(datafile, "r");
+  if (fp == NULL)
+    {
+      fprintf (stderr, "error in %d\n", __LINE__);
+      exit (1);
+    }
+  data_size = fread(data, 1, sizeof(data), fp);
+  fclose(fp);
+
+  result = asn1_der_decoding2 (&node1, data, &data_size, 
ASN1_DECODE_FLAG_STRICT_DER, errorDescription);
+  if (result != ASN1_SUCCESS)
+    {
+      fprintf (stderr, "error in %d: decoding: %s\n", __LINE__, 
errorDescription);
+      exit (1);
+    }
+
+  len = sizeof(data);
+  result = asn1_read_value(node1, "tbsResponseData.responderID", data, &len);
+  if (result != ASN1_SUCCESS)
+    {
+      fprintf (stderr, "error in %d: %s\n", __LINE__, errorDescription);
+      exit (1);
+    }
+
+  if (strcmp(data, "byKey") != 0)
+    {
+      fprintf (stderr, "error in %d: %s\n", __LINE__, data);
+      exit (1);
+    }
+
+  len = 0;
+  result = asn1_read_value_type(node1, "tbsResponseData.responderID.byKey", 
NULL, &len, &etype);
+  if (result != ASN1_MEM_ERROR)
+    {
+      fprintf (stderr, "error in %d: result is: %s\n", __LINE__, 
asn1_strerror(result));
+      exit (1);
+    }
+
+  if (etype != ASN1_ETYPE_OCTET_STRING)
+    {
+      fprintf (stderr, "error in %d: The type (%d) doesn't match octet 
string.\n", __LINE__, etype);
+      exit (1);
+    }
+
+  if (len != 20)
+    {
+      fprintf (stderr, "length doesn't match the expected (got: %d, should be: 
20)\n", len);
+      exit (1);
+    }
+
+  
+
+  len = sizeof(data);
+  result = asn1_read_value(node1, "tbsResponseData.responderID.byKey", data, 
&len);
+  if (result != ASN1_SUCCESS)
+    {
+      fprintf (stderr, "error in %d: %s\n", __LINE__, errorDescription);
+      exit (1);
+    }
+
+  if (memcmp(data, 
"\x50\xEA\x73\x89\xDB\x29\xFB\x10\x8F\x9E\xE5\x01\x20\xD4\xDE\x79\x99\x48\x83\xF7",
 len) != 0)
+    {
+      fprintf (stderr, "contents don't match\n");
+      exit (1);
+    }
+
+  asn1_delete_structure (&node1);
+  asn1_delete_structure (&definitions);
+
+  return 0;
+}
diff --git a/tests/ocsp-basic-response.der b/tests/ocsp-basic-response.der
new file mode 100644
index 0000000..d87678c
Binary files /dev/null and b/tests/ocsp-basic-response.der differ


hooks/post-receive
-- 
GNU libtasn1



reply via email to

[Prev in Thread] Current Thread [Next in Thread]