From 26bea900a531662c6028ecc06f4adea825658434 Mon Sep 17 00:00:00 2001
From: Pawel Kowalski
Date: Wed, 28 Aug 2019 14:28:40 +0200
Subject: Imported Upstream version 4.14
---
src/asn1Decoding.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 48 insertions(+), 8 deletions(-)
(limited to 'src/asn1Decoding.c')
diff --git a/src/asn1Decoding.c b/src/asn1Decoding.c
index 65456bf..b864768 100644
--- a/src/asn1Decoding.c
+++ b/src/asn1Decoding.c
@@ -25,14 +25,15 @@
#include
#include
#include
+#include
+#include
#include
-#include
-#include
-#include
#include "benchmark.h"
+#define program_name "asn1Decoding"
+
static int decode (asn1_node definitions, const char *typeName, void *der,
int der_len, int benchmark, int strict);
@@ -62,11 +63,51 @@ described in ASN.1 DEFINITIONS file, and print decoded structures.\n\
-t, --no-time-strict use strict DER decoding but not in time fields\n\
-h, --help display this help and exit\n\
-v, --version output version information and exit\n");
- emit_bug_reporting_address ();
+ printf ("Report bugs to "PACKAGE_BUGREPORT);
}
exit (status);
}
+static char *read_binary_file(const char *file, size_t *l)
+{
+ FILE *fp;
+ struct stat st;
+ char *out;
+
+ if (stat(file, &st) == -1)
+ {
+ fprintf(stderr, "Error reading file size!\n");
+ exit(1);
+ }
+
+ fp = fopen(file, "rb");
+ if (fp == NULL)
+ {
+ fprintf(stderr, "Error reading file!\n");
+ exit(1);
+ }
+
+ out = malloc(st.st_size+1);
+ if (out == NULL)
+ {
+ fprintf(stderr, "Memory error!\n");
+ exit(1);
+ }
+
+ *l = fread(out, 1, st.st_size, fp);
+ if (*l != st.st_size)
+ {
+ fprintf(stderr, "Error reading contents (got: %ld, expected %ld)!\n",
+ (long)*l, (long)st.st_size);
+ exit(1);
+ }
+
+ out[*l] = 0;
+
+ fclose(fp);
+ return out;
+}
+
int
main (int argc, char *argv[])
{
@@ -92,8 +133,6 @@ main (int argc, char *argv[])
int flags = 0, debug = 0;
/* FILE *outputFile; */
- set_program_name (argv[0]);
-
opterr = 0; /* disable error messages from getopt */
while (1)
@@ -123,8 +162,9 @@ main (int argc, char *argv[])
flags |= ASN1_DECODE_FLAG_ALLOW_INCORRECT_TIME;
break;
case 'v': /* VERSION */
- version_etc (stdout, program_name, PACKAGE, VERSION,
- "Fabio Fiorina", NULL);
+ printf(program_name" "PACKAGE" " VERSION"\n");
+ printf("Copyright (C) 2017-2019 Free Software Foundation, Inc.\n\n");
+ printf("Written by Fabio Fiorina\n");
exit (0);
break;
case '?': /* UNKNOW OPTION */
--
cgit v1.2.3