...
 
Commits (107)
*.gcda
*.gcno
*.gcov
*~
ChangeLog
INSTALL
Makefile
Makefile.in
aclocal.m4
aminclude_static.am
autom4te.cache/
build-aux/ar-lib
build-aux/compile
build-aux/config.guess
build-aux/config.sub
build-aux/depcomp
......@@ -16,22 +11,23 @@ build-aux/install-sh
build-aux/ltmain.sh
build-aux/mdate-sh
build-aux/missing
build-aux/test-driver
build-aux/texinfo.tex
build-aux/ylwrap
ChangeLog
config.h
config.h.in
config.log
config.status
configure
doc/Makefile
doc/Makefile.in
.deps
doc/asn1Coding.1
doc/asn1Decoding.1
doc/asn1Parser.1
doc/coverage/
doc/cyclo/cyclo-libtasn1.html
doc/cyclo/Makefile
doc/cyclo/Makefile.in
doc/cyclo/cyclo-libtasn1.html
doc/libtasn1.aux
doc/libtasn1.cp
doc/libtasn1.cps
......@@ -45,139 +41,105 @@ doc/libtasn1.log
doc/libtasn1.pdf
doc/libtasn1.pg
doc/libtasn1.ps
doc/libtasn1.t2d/
doc/libtasn1.t2p/
doc/libtasn1.toc
doc/libtasn1.tp
doc/libtasn1.vr
doc/Makefile
doc/Makefile.in
doc/man/
doc/reference/Makefile
doc/reference/Makefile.in
doc/reference/html/
doc/reference/html-build.stamp
doc/reference/html.stamp
doc/reference/html/
doc/reference/libtasn1.args
doc/reference/libtasn1-decl-list.txt
doc/reference/libtasn1-decl.txt
doc/reference/libtasn1-overrides.txt
doc/reference/libtasn1-sections.txt
doc/reference/libtasn1-undeclared.txt
doc/reference/libtasn1-undocumented.txt
doc/reference/libtasn1-unused.txt
doc/reference/libtasn1.args
doc/reference/libtasn1.hierarchy
doc/reference/libtasn1.interfaces
doc/reference/libtasn1-overrides.txt
doc/reference/libtasn1.pdf
doc/reference/libtasn1.prerequisites
doc/reference/libtasn1-sections.txt
doc/reference/libtasn1.signals
doc/reference/libtasn1.types
doc/reference/libtasn1-undeclared.txt
doc/reference/libtasn1-undocumented.txt
doc/reference/libtasn1-unused.txt
doc/reference/Makefile
doc/reference/Makefile.in
doc/reference/pdf-build.stamp
doc/reference/pdf.stamp
doc/reference/scan-build.stamp
doc/reference/setup-build.stamp
doc/reference/sgml-build.stamp
doc/reference/sgml.stamp
doc/reference/tmpl/
doc/reference/tmpl-build.stamp
doc/reference/tmpl.stamp
doc/reference/tmpl/
doc/reference/version.xml
doc/reference/xml/
doc/stamp_docs
doc/stamp-vti
doc/texi/
doc/version.texi
examples/.deps/
examples/.libs/
examples/CertificateExample
examples/CertificateExample.o
examples/CrlExample
examples/CrlExample.o
examples/.deps/
examples/.libs/
examples/Makefile
examples/Makefile.in
examples/pkix_asn1_tab.c
examples/pkix_asn1_tab.o
gl/.deps/
gl/.libs/
gl/Makefile
gl/Makefile.in
gl/arg-nonnull.h
gl/c++defs.h
gl/getopt.h
gl/getopt.lo
gl/getopt.o
gl/getopt1.lo
gl/getopt1.o
gl/gettime.lo
gl/gettime.o
gl/libgnu.la
gl/progname.lo
gl/progname.o
gl/read-file.lo
gl/read-file.o
gl/stdio.h
gl/stdlib.h
gl/sys/
gl/sys/stat.h
gl/time.h
gl/timespec.lo
gl/timespec.o
gl/unistd.h
gl/unistd.lo
gl/unistd.o
gl/version-etc-fsf.lo
gl/version-etc-fsf.o
gl/version-etc.lo
gl/version-etc.o
gl/warn-on-use.h
gl/wchar.h
lib/.deps/
lib/.libs/
*.gcda
*.gcno
*.gcov
gtk-doc.m4
INSTALL
lib/ASN1.c
lib/ASN1.lo
lib/ASN1.o
lib/ASN1.tab.c
lib/Makefile
lib/Makefile.in
lib/coding.lo
lib/coding.o
lib/decoding.lo
lib/decoding.o
lib/.deps/
lib/element.lo
lib/element.o
lib/errors.lo
lib/errors.o
lib/gllib/.deps/
lib/gllib/.libs/
lib/gllib/Makefile
lib/gllib/Makefile.in
lib/gllib/arg-nonnull.h
lib/gllib/c++defs.h
lib/gllib/dummy.lo
lib/gllib/dummy.o
lib/gllib/hash-pjw-bare.lo
lib/gllib/hash-pjw-bare.o
lib/gllib/libgnu.la
lib/gllib/string.h
lib/gllib/warn-on-use.h
lib/gllib/wchar.h
lib/gl/
lib/gstr.lo
lib/gstr.o
lib/.libs/
lib/includes/libtasn1.h
lib/libtasn1.la
lib/libtasn1.pc
lib/Makefile
lib/Makefile.in
lib/parser_aux.lo
lib/parser_aux.o
lib/structure.lo
lib/structure.o
lib/version.lo
lib/version.o
libtasn1-*.tar.gz
libtasn1-*.tar.gz.sig
libtool
lib/version.lo
lib/version.o
m4-gl/
m4/.gitignore
m4/libtool.m4
m4/lt~obsolete.m4
m4/ltoptions.m4
m4/ltsugar.m4
m4/ltversion.m4
m4/lt~obsolete.m4
Makefile
Makefile.in
README
scan.tmp
src/.deps/
src/.libs/
src/Makefile
src/Makefile.in
src/asn1Coding
src/asn1Coding.o
src/asn1Decoding
......@@ -185,11 +147,34 @@ src/asn1Decoding.o
src/asn1Parser
src/asn1Parser.o
src/benchmark.o
src/.deps/
src/.libs/
src/Makefile
src/Makefile.in
stamp-h1
tags
tests/coding-decoding2
tests/coding-long-oid
tests/copynode
tests/CVE-2018-1000654
tests/CVE-2018-1000654-1_asn1_tab.h
tests/CVE-2018-1000654-2_asn1_tab.h
tests/.deps/
tests-gl/
tests/*.log
tests/Makefile
tests/Makefile.in
tests/*.o
tests/object-id-decoding
tests/ocsp-basic-response
tests/octet-string
tests/setof
tests/spc_pe_image_data
tests/strict-der
tests/Test_choice
tests/Test_choice.o
tests/Test_choice_ocsp
tests/Test_encdec
tests/Test_encoding
tests/Test_encoding.o
tests/Test_errors
......@@ -199,17 +184,14 @@ tests/Test_indefinite.o
tests/Test_overflow
tests/Test_overflow.o
tests/Test_parser
tests/Test_parser.o
tests/Test_parser_ERROR.asn
tests/Test_parser.o
tests/Test_simple
tests/Test_simple.o
tests/Test_strings
tests/Test_strings.o
tests/Test_tree
tests/Test_tree.o
tests/Test_choice
tests/Test_choice.o
tests/*.trs
windows/libtasn1-*-win??.zip
windows/tmp
tests/*.log
tests/*.trs
image: centos:7
before_script:
- yum install -y git make bison autoconf libtool automake gettext-devel glibc-devel gcc valgrind clang libasan-static libubsan
variables:
BUILD_IMAGES_PROJECT: gnutls/build-images
FEDORA_BUILD: buildenv-f30
DEBIAN_X86_CROSS_BUILD: buildenv-debian-x86-cross
GET_SOURCES_ATTEMPTS: "3"
# See http://doc.gitlab.com/ce/ci/yaml/ for documentation.
Build and Check (x86-64):
x86-64:
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
script:
- git submodule update --init && make autoreconf && ./configure --disable-doc && make -j4 && make -j4 check
- yum remove -y libtasn1-devel
- ./bootstrap
- ./configure --disable-doc && make -j$(nproc)
- make -j$(nproc) check
- make abi-check
- make distcheck
except:
- tags
tags:
- shared
Build and Check (x86):
valgrind/werror:
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
script:
- yum install -y libgcc.i686 glibc-devel.i686
- git submodule update --init && make autoreconf &&
PKG_CONFIG_PATH="/usr/lib/pkgconfig/" CFLAGS="-O2 -g -m32" LDFLAGS="-m32" ./configure --build=i686-redhat-linux --target=i686-redhat-linux --disable-doc && make -j4 && make -j4 check
- yum remove -y libtasn1-devel
- ./bootstrap
- CFLAGS="-O2 -g -Werror" ./configure --disable-doc --enable-valgrind-tests && make -j$(nproc)
- make -j$(nproc) check
except:
- tags
tags:
- shared
Build and Check with clang:
x86:
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_X86_CROSS_BUILD
script:
- git submodule update --init && make autoreconf && CC=clang
./configure --disable-doc --disable-valgrind-tests && make -j4 && make check -j4
- build=$(dpkg-architecture -qDEB_HOST_GNU_TYPE)
- host=i686-linux-gnu
- export CC_FOR_BUILD="gcc"
- export CC="$host-gcc"
- ./bootstrap
- mkdir -p build
- cd build
- dash ../configure --build=$build --host=$host --disable-doc
- make -j$(nproc)
- make check -j$(nproc)
- cd ..
tags:
- shared
- docker
except:
- tags
artifacts:
expire_in: 1 week
when: on_failure
paths:
- build/guile/tests/*.log
- build/*.log
- build/tests/*.log
- build/tests/*/*.log
- build/tests/suite/*/*.log
retry: 1
clang:
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
script:
- yum remove -y libtasn1-devel
- ./bootstrap
- CC=clang ./configure --disable-doc --disable-valgrind-tests && make -j$(nproc)
- make check -j$(nproc)
except:
- tags
tags:
- shared
Build and Check with asan:
asan:
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
script:
- git submodule update --init && make autoreconf && CFLAGS="-fsanitize=address -g
-O2" LDFLAGS="-static-libasan" ./configure --disable-doc --disable-valgrind-tests && make -j4 && make check -j4
- yum remove -y libtasn1-devel
- ./bootstrap
- CFLAGS="-fsanitize=address -g -O2" LDFLAGS="-static-libasan" ./configure --disable-doc --disable-valgrind-tests && make -j$(nproc) && make check -j$(nproc)
except:
- tags
tags:
- shared
Build and Check with ubsan:
image: fedora:24
ubsan:
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
script:
- yum install -y git make autoconf libtool automake gettext-devel glibc-devel gcc valgrind clang libasan-static libubsan
- git submodule update --init && make autoreconf && CFLAGS="-fsanitize=undefined -fno-sanitize-recover -g
-O2" ./configure --disable-doc --disable-valgrind-tests && make -j4 && make check -j4
- yum remove -y libtasn1-devel
- ./bootstrap
- CFLAGS="-fsanitize=undefined -fno-sanitize-recover -g -O2" ./configure --disable-doc --disable-valgrind-tests && make -j$(nproc) && make check -j$(nproc)
tags:
- shared
except:
- tags
MinGW32:
image: fedora:24
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
script:
- dnf install -y wine.i686 mingw32-gcc util-linux
- dnf remove -y mingw32-libtasn1
- mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc
- echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register
- make autoreconf && rm -f tests/suite/mini-eagain2.c && mkdir -p build && cd build &&
- ./bootstrap && rm -f tests/suite/mini-eagain2.c && mkdir -p build && cd build &&
mingw32-configure --disable-doc --disable-valgrind-tests &&
mingw32-make -j$(nproc) && mingw32-make -C tests check -j$(nproc)
tags:
......@@ -68,3 +118,88 @@ MinGW32:
- build/tests/*.log
- build/tests/*/*.log
gnutls:
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
script:
- yum remove -y libtasn1-devel
- ./bootstrap
- ./configure --disable-doc --prefix=/usr --libdir=/usr/lib64 &&
make -j$(nproc) && make install
- git clone --depth 1 --branch master https://gitlab.com/gnutls/gnutls.git gnutls-git
- cd gnutls-git && git submodule update --init && ./bootstrap &&
./configure --disable-cxx --disable-guile --disable-doc && make -j$(nproc) &&
make -j $(nproc) check
tags:
- shared
except:
- tags
artifacts:
expire_in: 1 week
when: on_failure
paths:
- gnutls-git/guile/tests/*.log
- gnutls-git/tests/*.log
- gnutls-git/*.log
- gnutls-git/tests/*/*.log
- gnutls-git/tests/suite/*/*.log
static-analyzers:
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
script:
- ./bootstrap
- scan-build ./configure --disable-doc
- make -j$(nproc) syntax-check
- make -j$(nproc) -C lib/gl
- make -j$(nproc) -C lib ASN1.lo
- scan-build --status-bugs -o scan-build-lib make -j$(nproc) -C lib
tags:
- shared
except:
- tags
artifacts:
expire_in: 1 week
when: on_failure
paths:
- scan-build-lib/
# Target to run code coverage on non-master branches. That is intended
# to ensure that compilation in master will not break the pages rule.
pages-test:
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
script:
- ./bootstrap
- ./configure --enable-gtk-doc --disable-gcc-warnings --enable-code-coverage
- mkdir -p public
- make -j$(nproc)
- make -j$(nproc) check
- make local-code-coverage-output || true
- make -C doc libtasn1.html libtasn1.pdf
- mv doc/libtasn1.pdf doc/libtasn1.html public/
- cp -ar GNU*-coverage/ public/coverage
- cp public/libtasn1.html public/index.html
tags:
- shared
except:
- master
pages:
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
script:
- ./bootstrap
- CFLAGS="-g -Og" dash ./configure --disable-doc --enable-code-coverage --enable-gtk-doc --disable-gcc-warnings
- mkdir -p public
- make -j$(nproc)
- make -j$(nproc) check
- make local-code-coverage-output || true
- make -C doc libtasn1.html libtasn1.pdf
- mv doc/libtasn1.pdf doc/libtasn1.html public/
- cp -ar GNU*-coverage/ public/coverage
- cp public/libtasn1.html public/index.html
tags:
- shared
artifacts:
when: on_success
paths:
- public
only:
- master
[submodule "gnulib"]
path = gnulib
url = https://gitlab.com/libidn/gnulib-mirror.git
# libtasn1 -- Information about our contribution rules and coding style
Unless otherwise stated or implied the [GnuTLS contribution rules apply](https://gitlab.com/gnutls/gnutls/blob/master/CONTRIBUTING.md).
The following sections document any differences that apply:
# Function names
All the function names use underscore `_`, to separate words, functions like
asn1DoThat are not used. The exported function names start with the
`asn1_` prefix.
......@@ -5,7 +5,7 @@
# It is necessary if you want to build targets usually of interest
# only to the maintainer.
# Copyright (C) 2001, 2003, 2006-2017 Free Software Foundation, Inc.
# Copyright (C) 2001, 2003, 2006-2019 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......@@ -18,7 +18,7 @@
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# If the user runs GNU make but has not yet run ./configure,
# give them a diagnostic.
......
LICENSING
=========
The libtasn1 library is released under the GNU Lesser General Public
License (LGPL) version 2.1 or later; see [COPYING.LESSER](doc/COPYING.LESSER)
for the license terms.
The GNU LGPL applies to the main libtasn1 library, while the
included applications library are under the GNU GPL version 3.
The libtasn1 library is located in the lib directory, while the applications
in src/.
The documentation in doc/ is under the GNU FDL license 1.3.
For any copyright year range specified as YYYY-ZZZZ in this package
note that the range specifies every single year in that closed interval.
......@@ -24,42 +24,80 @@ EXTRA_DIST = windows/asn1-parser/asn1-parser.vcproj \
windows/gnulib/getopt.h windows/gnulib/gnulib.vcproj \
windows/libtasn1/libtasn1.vcproj \
windows/test-parser/test-parser.vcproj \
windows/test-tree/test-tree.vcproj windows/libtasn14win.mk
windows/test-tree/test-tree.vcproj windows/libtasn14win.mk \
CONTRIBUTING.md cfg.mk maint.mk AUTHORS NEWS ChangeLog \
THANKS LICENSE
SUBDIRS = gl lib src tests
SUBDIRS = lib src tests
if ENABLE_DOC
SUBDIRS += doc examples
endif
ACLOCAL_AMFLAGS = -I m4 -I gl/m4 -I lib/glm4
include $(top_srcdir)/aminclude_static.am
EXTRA_DIST += cfg.mk maint.mk .clcopying
ACLOCAL_AMFLAGS = -I m4 -I m4-gl
gnulib-update:
gnulib-tool --add-import --dir=. --lib=libgnu --source-base=lib/gllib --m4-base=lib/glm4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --lgpl=2 --no-conditional-dependencies --libtool --macro-prefix=lgl --no-vc-files
EXTRA_DIST += cfg.mk maint.mk .clcopying README.md
TMPFILE="abi-temp.xml"
ABIDW_COMMON = --no-show-locs --no-corpus-path
ABIGNORE_FILE = "$(top_srcdir)/devel/libtasn1.abignore"
LIBGNUTLS_ABI_LAST_FILE = "$(top_srcdir)/devel/libtasn1-latest-$$(uname -m).abi"
abi-check:
@rm -f $(TMPFILE)
@echo "Checking libtasn1 ABI"
@echo "<version>$(VERSION)</version>" >$(TMPFILE)
@echo "<headers>$(srcdir)/lib/libtasn1.h" >>$(TMPFILE)
@echo "$(builddir)/lib/libtasn1.h</headers>" >>$(TMPFILE)
@echo "<libs>$(builddir)/lib/.libs</libs>" >>$(TMPFILE)
test ! -f "$(srcdir)/devel/ABI-$$(uname -m).dump" || \
abi-compliance-checker -abi -lib libtasn1 -old "$(srcdir)/devel/ABI-$$(uname -m).dump" -new $(TMPFILE)
@rm -f $(TMPFILE)
abi-dump-versioned: lib/libtasn1.la
@echo "**************************************************"
@echo "Generating versioned ABI files of current libtasn1"
@echo "**************************************************"
@abidw lib/.libs/libtasn1.so $(ABIDW_COMMON) --suppressions $(ABIGNORE_FILE) --out-file "$(srcdir)/devel/libtasn1-$(VERSION)-$$(uname -m).abi"
abi-dump:
@mkdir -p devel/headers-tmp
@cp lib/libtasn1.h devel/headers-tmp
@abi-dumper lib/.libs/libtasn1.so -o "./devel/ABI-$$(uname -m).dump" -public-headers devel/headers-tmp
@rm -rf devel/headers-tmp
abi-dump-latest: lib/libtasn1.la
@echo "****************************************"
@echo "Generating ABI files of current libtasn1"
@echo "****************************************"
@abidw lib/.libs/libtasn1.so $(ABIDW_COMMON) --suppressions $(ABIGNORE_FILE) --out-file $(LIBGNUTLS_ABI_LAST_FILE)
@rm -f "./devel/libtasn1-latest-$$(uname -m).tmp"
abi-check-latest: lib/libtasn1.la
@echo "Checking whether the latest ABI dump matches"
@abidiff --suppressions $(ABIGNORE_FILE) lib/.libs/libtasn1.so $(LIBGNUTLS_ABI_LAST_FILE) --hd2 "$(srcdir)/lib/includes/"; if test $$? != 0;then \
echo "*********************************************************"; \
echo "libtasn1 ABI has changed; use 'make files-update' "; \
echo "and use 'git diff' to check correctness before committing"; \
echo "*********************************************************"; \
false; \
fi
@echo "********************************"
@echo "Current release matches ABI dump"
@echo "********************************"
dist-hook: abi-check
make -C doc/ compare-makefile
ABICHECK_COMMON = --no-added-syms
abi-check: lib/libtasn1.la
@for file in $$(echo $(srcdir)/devel/libtasn1-*-$$(uname -m).abi);do \
echo "Comparing libtasn1 with $$file"; \
abidiff $${file} lib/.libs/libtasn1.so $(ABICHECK_COMMON) --suppressions $(ABIGNORE_FILE) --hd2 "$(srcdir)/lib/includes//"; \
if test $$? != 0;then \
echo "****************************************************************************"; \
echo "ABI check failed; If intentional add suppression in devel/libtasn1.abignore"; \
echo "****************************************************************************"; \
false; \
fi; \
done
@echo "********************"
@echo "ABI checks completed"
@echo "********************"
.PHONY: abi-dump abi-check
files-update: abi-dump-latest
local-code-coverage-output: code-coverage-capture
cat "GNU Libtasn1-$(VERSION)-coverage/index.html"|grep headerCovTableEntry|grep '%'|head -1|sed 's/^.*>\([0-9]\+\.[0-9]\+\s*%\)<.*$$/ coverage lines: \1/' || true
clean-local: code-coverage-clean
distclean-local: code-coverage-dist-clean
dist-hook:
if test -d "$(top_srcdir)/devel";then \
$(MAKE) -C $(top_srcdir) abi-check-latest; \
make -C doc/ compare-makefile; \
fi
.PHONY: abi-check abi-dump-versioned abi-dump-latest
GNU Libtasn1 NEWS -*- outline -*-
* Noteworthy changes in release 4.14 (released 2019-07-21) [stable]
- New #defines for version checking: ASN1_VERSION_MAJOR, ASN1_VERSION_MINOR,
ASN1_VERSION_PATCH, ASN1_VERSION_NUMBER. The next release will switch
to semantic version semantics.
- Simplify ordering of SET OF elements by using qsort().
- Marked explicitly const uses of asn1_node with the introduction
of the (compatible) asn1_node_const type.
- Limit recursion in _asn1_expand_object_id() to detect infinite
recursion in incorrect .asn files (#4).
- asn1_array2tree(): fixed thread safety issues.
- Several fixes in gtk-doc generation.
* Noteworthy changes in release 4.13 (released 2018-01-16) [stable]
- On indefinite string decoding, set a maximum level of allowed recursions
(3) to protect the BER decoder from a stack exhaustion.
......
This is GNU Libtasn1, a small ASN.1 library.
The C library (libtasn1.*) is licensed under the GNU Lesser General
Public License version 2.1 or later. See the file COPYING.LIB.
The command line tool, self tests, examples, and other auxilliary
files, are licensed under the GNU General Public License version 3.0
or later. See the file COPYING.
The manual is in doc/. You can also browse the manual and see updates
about the project on the homepage:
http://www.gnu.org/software/libtasn1/
For any copyright year range specified as YYYY-ZZZZ in this package
note that the range specifies every single year in that closed interval.
----------------------------------------------------------------------
Copyright (C) 2002-2014 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
This file contains instructions for developers and advanced users that
wants to build from version controlled sources.
We require several tools to build the software, including:
- Make <http://www.gnu.org/software/make/>
- Automake <http://www.gnu.org/software/automake/>
- Autoconf <http://www.gnu.org/software/autoconf/>
- Libtool <http://www.gnu.org/software/libtool/>
- Texinfo <http://www.gnu.org/software/texinfo/>
- help2man <http://www.gnu.org/software/help2man/>
- Tar <http://www.gnu.org/software/tar/>
- Gzip <http://www.gnu.org/software/gzip/>
- Texlive & epsf <http://www.tug.org/texlive/> (for PDF manual)
- GTK-DOC <http://www.gtk.org/gtk-doc/> (for API manual)
- Git <http://git.or.cz/>
- Perl <http://www.cpan.org/>
- Valgrind <http://valgrind.org/> (optional)
The required software is typically distributed with your operating
system, and the instructions for installing them differ. Here are
some hints:
gNewSense/Debian/Ubuntu:
sudo apt-get install make git-core autoconf automake libtool
sudo apt-get install texinfo texlive texlive-generic-recommended texlive-extra-utils
sudo apt-get install help2man gtk-doc-tools valgrind
To download the version controlled sources:
$ git clone git://git.savannah.gnu.org/libtasn1.git
$ cd libtasn1
The next step is to run autoreconf, ./configure, etc:
$ make bootstrap
Then build the project normally:
$ make
$ make check
Happy hacking!
----------------------------------------------------------------------
Copyright (C) 2009-2014 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
|Branch|CI system|Status|
|:----:|:-------:|-----:|
|Master|Gitlab|[![build status](https://gitlab.com/gnutls/libtasn1/badges/master/build.svg)](https://gitlab.com/gnutls/libtasn1/commits/master)[![coverage report](https://gitlab.com/gnutls/libtasn1/badges/master/coverage.svg)](https://gnutls.gitlab.io/libtasn1/coverage)|
# libtasn1
This is GNU Libtasn1, a small ASN.1 library.
The C library (libtasn1.*) is licensed under the GNU Lesser General
Public License version 2.1 or later. See the file COPYING.LIB.
The command line tool, self tests, examples, and other auxilliary
files, are licensed under the GNU General Public License version 3.0
or later. See the file COPYING.
## Building the library
We require several tools to build the software, including:
* [Make](https://www.gnu.org/software/make/)
* [Automake](https://www.gnu.org/software/automake/) (use 1.11.3 or later)
* [Autoconf](https://www.gnu.org/software/autoconf/)
* [Libtool](https://www.gnu.org/software/libtool/)
* [Texinfo](https://www.gnu.org/software/texinfo/)
* [help2man](http://www.gnu.org/software/help2man/)
* [Tar](https://www.gnu.org/software/tar/)
* [Gzip](https://www.gnu.org/software/gzip/)
* [bison](https://www.gnu.org/software/bison/)
* [Texlive & epsf](https://www.tug.org/texlive/) (for PDF manual)
* [GTK-DOC](https://www.gtk.org/gtk-doc/) (for API manual)
* [Git](https://git-scm.com/)
* [libabigail](https://pagure.io/libabigail/) (for abi comparison in make dist)
* [Valgrind](https://valgrind.org/) (optional)
The required software is typically distributed with your operating
system, and the instructions for installing them differ. Here are
some hints:
gNewSense/Debian/Ubuntu:
```
sudo apt-get install make git-core autoconf automake libtool
sudo apt-get install texinfo texlive texlive-generic-recommended texlive-extra-utils
sudo apt-get install help2man gtk-doc-tools valgrind abigail-tools
```
The next step is to run autoreconf, ./configure, etc:
```
$ ./bootstrap
```
Then build the project normally:
```
$ make
$ make check
```
Happy hacking!
## Manual
The manual is in the `doc/` directory of the release. You can also browse
the manual online at:
- https://gnutls.gitlab.io/libtasn1/
## Code coverage report
The coverage report is at:
- https://gnutls.gitlab.io/libtasn1/coverage
## Homepage
The project homepage at the gnu site is at:
http://www.gnu.org/software/libtasn1/
For any copyright year range specified as YYYY-ZZZZ in this package
note that the range specifies every single year in that closed interval.
This diff is collapsed.
# Copyright (C) 2016,2018 Tim Rühsen
# Copyright (C) 2016-2017 Simon Josefsson
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# gnulib library name
source_base=lib/gl
tests_base=tests-gl
m4_base=m4-gl
gnulib_name=libgnu
gnulib_tool_option_extras="--lgpl=2 --without-tests --no-vc-files"
use_libtool=1
checkout_only_file=
local_gl_dir=lib/gl/override/
gnulib_modules="
intprops
lib-symbol-versions
lib-symbol-visibility
manywarnings
minmax
stdint
strverscmp
valgrind-tests
maintainer-makefile
"
# Build prerequisites
buildreq="\
autoconf 2.62
automake 1.11.1
git 1.4.4
bison -
"
GTKDOCIZE=$(which gtkdocize 2>/dev/null)
if test $? -ne 0; then
echo "No gtk-doc support found. You can't build the docs."
# rm because gtk-doc.make might be a link to a protected file
rm -f gtk-doc.make 2>/dev/null
echo "EXTRA_DIST =" >gtk-doc.make
echo "CLEANFILES =" >>gtk-doc.make
GTKDOCIZE=""
else
$GTKDOCIZE
fi
# update git submodules
git_options=
if test -n "$SUBMODULE_NOFETCH"; then
git_options="--no-fetch"
fi
bootstrap_post_import_hook ()
{
touch ChangeLog
}
/* A C macro for declaring that specific arguments must not be NULL.
Copyright (C) 2009-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
that the values passed as arguments n, ..., m must be non-NULL pointers.
n = 1 stands for the first argument, n = 2 for the second argument etc. */
#ifndef _GL_ARG_NONNULL
# if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3
# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
# else
# define _GL_ARG_NONNULL(params)
# endif
#endif
This diff is collapsed.
/* A C macro for emitting warnings if a function is used.
Copyright (C) 2010-2017 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* _GL_WARN_ON_USE (function, "literal string") issues a declaration
for FUNCTION which will then trigger a compiler warning containing
the text of "literal string" anywhere that function is called, if
supported by the compiler. If the compiler does not support this
feature, the macro expands to an unused extern declaration.
This macro is useful for marking a function as a potential
portability trap, with the intent that "literal string" include
instructions on the replacement function that should be used
instead. However, one of the reasons that a function is a
portability trap is if it has the wrong signature. Declaring
FUNCTION with a different signature in C is a compilation error, so
this macro must use the same type as any existing declaration so
that programs that avoid the problematic FUNCTION do not fail to
compile merely because they included a header that poisoned the
function. But this implies that _GL_WARN_ON_USE is only safe to
use if FUNCTION is known to already have a declaration. Use of
this macro implies that there must not be any other macro hiding
the declaration of FUNCTION; but undefining FUNCTION first is part
of the poisoning process anyway (although for symbols that are
provided only via a macro, the result is a compilation error rather
than a warning containing "literal string"). Also note that in
C++, it is only safe to use if FUNCTION has no overloads.
For an example, it is possible to poison 'getline' by:
- adding a call to gl_WARN_ON_USE_PREPARE([[#include <stdio.h>]],
[getline]) in configure.ac, which potentially defines
HAVE_RAW_DECL_GETLINE
- adding this code to a header that wraps the system <stdio.h>:
#undef getline
#if HAVE_RAW_DECL_GETLINE
_GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but"
"not universally present; use the gnulib module getline");
#endif
It is not possible to directly poison global variables. But it is
possible to write a wrapper accessor function, and poison that
(less common usage, like &environ, will cause a compilation error
rather than issue the nice warning, but the end result of informing
the developer about their portability problem is still achieved):
#if HAVE_RAW_DECL_ENVIRON
static char ***rpl_environ (void) { return &environ; }
_GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared");
# undef environ
# define environ (*rpl_environ ())
#endif
*/
#ifndef _GL_WARN_ON_USE
# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
/* A compiler attribute is available in gcc versions 4.3.0 and later. */
# define _GL_WARN_ON_USE(function, message) \
extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
/* Verify the existence of the function. */
# define _GL_WARN_ON_USE(function, message) \
extern __typeof__ (function) function
# else /* Unsupported. */
# define _GL_WARN_ON_USE(function, message) \
_GL_WARN_EXTERN_C int _gl_warn_on_use
# endif
#endif
/* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string")
is like _GL_WARN_ON_USE (function, "string"), except that the function is
declared with the given prototype, consisting of return type, parameters,
and attributes.
This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
not work in this case. */
#ifndef _GL_WARN_ON_USE_CXX
# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
extern rettype function parameters_and_attributes \
__attribute__ ((__warning__ (msg)))
# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
/* Verify the existence of the function. */
# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
extern rettype function parameters_and_attributes
# else /* Unsupported. */
# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
_GL_WARN_EXTERN_C int _gl_warn_on_use
# endif
#endif
/* _GL_WARN_EXTERN_C declaration;
performs the declaration with C linkage. */
#ifndef _GL_WARN_EXTERN_C
# if defined __cplusplus
# define _GL_WARN_EXTERN_C extern "C"
# else
# define _GL_WARN_EXTERN_C extern
# endif
#endif
eval '(exit $?0)' && eval 'exec perl -wST "$0" "$@"'
& eval 'exec perl -wST "$0" $argv:q'
if 0;
#!/bin/sh
#! -*-perl-*-
# Detect instances of "if (p) free (p);".
# Likewise "if (p != 0)", "if (0 != p)", or with NULL; and with braces.
my $VERSION = '2016-08-01 17:47'; # UTC
# The definition above must lie within the first 8 lines in order
# for the Emacs time-stamp write hook (at end) to update it.
# If you change this file with Emacs, please let the write hook
# do its job. Otherwise, update this string manually.
# Copyright (C) 2008-2017 Free Software Foundation, Inc.
# Copyright (C) 2008-2019 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# Written by Jim Meyering
# This is a prologue that allows to run a perl script as an executable
# on systems that are compliant to a POSIX version before POSIX:2017.
# On such systems, the usual invocation of an executable through execlp()
# or execvp() fails with ENOEXEC if it is a script that does not start
# with a #! line. The script interpreter mentioned in the #! line has
# to be /bin/sh, because on GuixSD systems that is the only program that
# has a fixed file name. The second line is essential for perl and is
# also useful for editing this file in Emacs. The next two lines below
# are valid code in both sh and perl. When executed by sh, they re-execute
# the script through the perl program found in $PATH. The '-x' option
# is essential as well; without it, perl would re-execute the script
# through /bin/sh. When executed by perl, the next two lines are a no-op.
eval 'exec perl -wSx "$0" "$@"'
if 0;
my $VERSION = '2018-03-07 03:47'; # UTC
# The definition above must lie within the first 8 lines in order
# for the Emacs time-stamp write hook (at end) to update it.
# If you change this file with Emacs, please let the write hook
# do its job. Otherwise, update this string manually.
use strict;
use warnings;
use Getopt::Long;
(my $ME = $0) =~ s|.*/||;
# use File::Coda; # http://meyering.net/code/Coda/
# use File::Coda; # https://meyering.net/code/Coda/
END {
defined fileno STDOUT or return;
close STDOUT and return;
......@@ -202,7 +217,8 @@ EOF
## Local Variables:
## mode: perl
## indent-tabs-mode: nil
## eval: (add-hook 'write-file-hooks 'time-stamp)
## eval: (add-hook 'before-save-hook 'time-stamp)
## time-stamp-line-limit: 50
## time-stamp-start: "my $VERSION = '"
## time-stamp-format: "%:y-%02m-%02d %02H:%02M"
## time-stamp-time-zone: "UTC0"
......
......@@ -2,9 +2,9 @@
# List version-controlled file names.
# Print a version string.
scriptversion=2016-01-11.22; # UTC
scriptversion=2018-03-07.03; # UTC
# Copyright (C) 2006-2017 Free Software Foundation, Inc.
# Copyright (C) 2006-2019 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......@@ -17,7 +17,7 @@ scriptversion=2016-01-11.22; # UTC
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# List the specified version-controlled files.
......@@ -49,7 +49,7 @@ EOF
cat <<EOF
vc-list-files $scriptversion
Copyright (C) $year Free Software Foundation, Inc,
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
EOF
......@@ -65,7 +65,7 @@ test $# = 0 && set .
for dir
do
if test -d .git; then
if test -d .git || test -f .git; then
test "x$dir" = x. \
&& dir= sed_esc= \
|| { dir="$dir/"; sed_esc=`echo "$dir"|env sed 's,\([\\/]\),\\\\\1,g'`; }
......@@ -105,7 +105,7 @@ do
done
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
......
......@@ -29,28 +29,34 @@ endif
local-checks-to-skip = sc_prohibit_strcmp sc_prohibit_have_config_h \
sc_require_config_h sc_require_config_h_first \
sc_immutable_NEWS sc_prohibit_magic_number_exit \
sc_bindtextdomain
sc_bindtextdomain sc_GPL_version sc_prohibit_always_true_header_tests \
sc_prohibit_gnu_make_extensions
VC_LIST_ALWAYS_EXCLUDE_REGEX = ^(maint.mk|gtk-doc.make|build-aux/.*|gl/.*|lib/gllib/.*|lib/glm4/.*|lib/ASN1\.c|m4/pkg.m4|doc/gdoc|windows/.*|doc/fdl-1.3.texi)$$
update-copyright-env = UPDATE_COPYRIGHT_USE_INTERVALS=1
# Explicit syntax-check exceptions.
exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF = ^tests/TestIndef.p12$$
exclude_file_name_regexp--sc_GPL_version = ^lib/libtasn1.h$$
exclude_file_name_regexp--sc_GPL_version = ^lib/includes/libtasn1.h$$
exclude_file_name_regexp--sc_program_name = ^tests/|examples/
exclude_file_name_regexp--sc_prohibit_atoi_atof = ^src/asn1Coding.c|src/asn1Decoding.c$$
exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF = ^tests/crlf.cer|tests/TestIndef.p12$$
exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF = ^tests/.*.(cer|der|asn|txt|p12)|tests/TestIndef.p12|msvc/.*$$
exclude_file_name_regexp--sc_error_message_uppercase = ^tests/Test_tree.c$$
exclude_file_name_regexp--sc_unmarked_diagnostics = ^tests/Test_tree.c$$
exclude_file_name_regexp--sc_prohibit_undesirable_word_seq = ^msvc/.*$$
exclude_file_name_regexp--sc_trailing_blank = ^msvc/.*$$|lib/gl/override/m4/valgrind-tests.m4
exclude_file_name_regexp--sc_useless_cpp_parens = ^lib/includes/libtasn1.h$$
exclude_file_name_regexp--sc_prohibit_intprops_without_use = ^lib/decoding.c$$
exclude_file_name_regexp--sc_m4_quote_check=^m4-gl/.*$$
exclude_file_name_regexp--sc_makefile_at_at_check='lib/gl/Makefile.am'
bootstrap-tools := autoconf,automake,libtool,bison
gpg_key_ID = b565716f
autoreconf:
touch ChangeLog
test -f ./configure || autoreconf --install
@echo "Running ./bootstrap"
./bootstrap
bootstrap: autoreconf
./configure $(CFGFLAGS)
review-diff:
git diff `git describe --abbrev=0`.. \
......@@ -144,23 +150,13 @@ tarball:
rm -f ChangeLog
$(MAKE) ChangeLog distcheck
libtasn14win:
cd windows && make -f libtasn14win.mk libtasn14win VERSION=$(VERSION)
libtasn14win-upload:
cd windows && make -f libtasn14win.mk upload VERSION=$(VERSION)
source:
git tag -u b565716f -m $(VERSION) $(tag)
release-check: syntax-check tarball libtasn14win gendoc-copy gtkdoc-copy coverage coverage-copy clang clang-copy
release-upload-www: gendoc-upload gtkdoc-upload coverage-upload clang-upload
RELEASE_TYPE?=stable
release-upload-ftp:
build-aux/gnupload --to ftp.gnu.org:$(PACKAGE) $(distdir).tar.gz
cp $(distdir).tar.gz $(distdir).tar.gz.sig ../releases/$(PACKAGE)/
git push
git push --tags
release: release-check release-upload-www source release-upload-ftp libtasn14win-upload
release: release-upload-ftp
.PHONY: bootstrap autoreconf
......@@ -16,12 +16,12 @@ dnl Process this file with autoconf to produce a configure script.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
AC_PREREQ([2.61])
AC_INIT([GNU Libtasn1],[4.13],[help-libtasn1@gnu.org])
AC_PREREQ([2.63])
AC_INIT([GNU Libtasn1],[4.14],[help-libtasn1@gnu.org])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_MACRO_DIRS([m4 m4-gl])
AC_CONFIG_HEADERS(config.h)
AM_INIT_AUTOMAKE([1.10 -Wall -Wno-override])
AM_INIT_AUTOMAKE([1.10 foreign -Wall -Wno-override])
AM_SILENT_RULES([yes])
# Library code modified: REVISION++
......@@ -29,12 +29,21 @@ AM_SILENT_RULES([yes])
# Interfaces added: AGE++
# Interfaces removed: AGE=0
AC_SUBST(LT_CURRENT, 11)
AC_SUBST(LT_REVISION, 5)
AC_SUBST(LT_REVISION, 6)
AC_SUBST(LT_AGE, 5)
# Generate version defines for include file
AC_SUBST([ASN1_VERSION_MAJOR], [`echo $VERSION|cut -d'.' -f1`])
AC_SUBST([ASN1_VERSION_MINOR], [`echo $VERSION|cut -d'.' -f2`])
# Let's activate the following line as soon as we change to extended version numbering
#AC_SUBST([ASN1_VERSION_PATCH], [`echo $VERSION|cut -d'.' -f3`])
AC_SUBST([ASN1_VERSION_PATCH], [`echo 0`])
AC_SUBST([ASN1_VERSION_NUMBER], [`printf '0x%02x%02x%02x' $ASN1_VERSION_MAJOR $ASN1_VERSION_MINOR $ASN1_VERSION_PATCH`])
AC_CONFIG_FILES([lib/includes/libtasn1.h])
AC_PROG_CC
gl_EARLY
lgl_EARLY
AC_PROG_YACC
AC_ARG_ENABLE(doc,
......@@ -42,6 +51,8 @@ AC_ARG_ENABLE(doc,
enable_doc=$enableval, enable_doc=yes)
AM_CONDITIONAL(ENABLE_DOC, test "$enable_doc" != "no")
AC_CHECK_FUNCS([clock_gettime])
dnl Checks for programs.
AM_MISSING_PROG(HELP2MAN, help2man, $missing_dir)
AC_LIBTOOL_WIN32_DLL
......@@ -52,15 +63,12 @@ GTK_DOC_CHECK(1.2)
AC_CHECK_SIZEOF(unsigned long int, 4)
AC_CHECK_SIZEOF(unsigned int, 4)
sj_UPDATE_HEADER_VERSION([$srcdir/lib/libtasn1.h])
# For gnulib compatibility modules.
gl_INIT
lgl_INIT
AC_ARG_ENABLE([gcc-warnings],
[AS_HELP_STRING([--disable-gcc-warnings],
[disable GCC warnings (for developers)])],
[disable GCC warnings (for developers)])],
[case $enableval in
yes|no) ;;
*) AC_MSG_ERROR([bad value $enableval for gcc-warnings option]) ;;
......@@ -70,46 +78,41 @@ AC_ARG_ENABLE([gcc-warnings],
)
if test "$gl_gcc_warnings" = yes; then
nw="$nw -Wsystem-headers" # Don't let system headers trigger warnings
nw="$nw -Wc++-compat" # We don't care strongly about C++ compilers
nw="$nw -Wtraditional" # Warns on #elif which we use often
nw="$nw -Wtraditional-conversion" # Too many warnings for now
nw="$nw -Wconversion" # Too many warnings for now
nw="$nw -Wsign-conversion" # Too many warnings for now
nw="$nw -Wold-style-definition" #
nw="$nw -Wpadded" # Our structs are not padded
nw="$nw -Wundef" #
nw="$nw -Wunreachable-code" # Too many false positives
nw="$nw -Wunused-macros" # Breaks on bison generated ASN1.c
nw="$nw -Wswitch-default" # Breaks on bison generated ASN1.c
nw="$nw -Wunsafe-loop-optimizations"
nw="$nw -Wstrict-overflow"
nw="$nw -Woverlength-strings" # Some tests use large strings
nw="$nw -Wsuggest-attribute=pure" # Is it worth using pure attributes?
gl_MANYWARN_ALL_GCC([ws])
gl_MANYWARN_COMPLEMENT(ws, [$ws], [$nw])
for w in $ws; do
gl_MANYWARN_ALL_GCC([warnings])
nw=
nw="$nw -Wsystem-headers" # Don't let system headers trigger warnings
nw="$nw -Wc++-compat" # We don't care strongly about C++ compilers
nw="$nw -Wundef" # All compiler preprocessors support #if UNDEF
nw="$nw -Wtraditional" # All compilers nowadays support ANSI C
nw="$nw -Wconversion" # These warnings usually don't point to mistakes.
nw="$nw -Wpadded" # Padding internal structs doesn't help.
nw="$nw -Wunused-macros" # Lot's of warnings in ASN1.y
nw="$nw -Woverlength-strings" # Modern compilers handle strings > 4096 gracefully
nw="$nw -Wsuggest-attribute=pure" # Asked for several nodes handling functions
gl_MANYWARN_COMPLEMENT([warnings], [$warnings], [$nw])
for w in $warnings; do
gl_WARN_ADD([$w])
done
gl_WARN_ADD([-Wno-type-limits])
gl_WARN_ADD([-Wno-missing-field-initializers])
gl_WARN_ADD([-Wno-type-limits]) # Too many warnings from gnulib macros
gl_WARN_ADD([-Wformat-truncation=1])
gl_WARN_ADD([-Wimplicit-fallthrough=2])
gl_WARN_ADD([-Wno-unused-parameter])
gl_WARN_ADD([-Wno-stack-protector]) # Some functions cannot be protected
gl_WARN_ADD([-fdiagnostics-show-option])
gl_WARN_ADD([-fdiagnostics-color=always]) # colors even when using ccache
fi
AX_CODE_COVERAGE
AC_CONFIG_FILES([
Makefile
doc/Makefile
doc/cyclo/Makefile
doc/reference/Makefile
doc/reference/version.xml
examples/Makefile
gl/Makefile
lib/Makefile
lib/gllib/Makefile
lib/gl/Makefile
lib/libtasn1.pc
src/Makefile
tests/Makefile
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
......@@ -21,7 +21,8 @@ if ENABLE_GTK_DOC
SUBDIRS += reference
endif
EXTRA_DIST = gdoc TODO libtasn1.html libtasn1.ps libtasn1.pdf stamp_docs
EXTRA_DIST = gdoc TODO libtasn1.html libtasn1.ps libtasn1.pdf stamp_docs \
COPYING COPYING.LESSER
info_TEXINFOS = libtasn1.texi
libtasn1_TEXINFOS = fdl-1.3.texi texinfo.css $(gdoc_TEXINFOS)
......
......@@ -5,7 +5,7 @@ in order to avoid having people working on the same thing.
Current list:
+ Audit the code
* Avoid the usage of any global state in array2tree or parser2tree
functions.
functions.
* Allow extracting the time in a reasonable format (e.g. time_t)
* C structure generation instead of a single array
* CHOICE in CHOICE (e.g., RDN in byName in ResponderID in OCSP) cannot
......
......@@ -15,7 +15,7 @@ This manual is for GNU Libtasn1
which is a library for Abstract Syntax Notation One (ASN.1) and
Distinguished Encoding Rules (DER) manipulation.
Copyright @copyright{} 2001-2015 Free Software Foundation, Inc.
Copyright @copyright{} 2001-2019 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
......
## Process this file with automake to produce Makefile.in
# We require automake 1.6 at least.
AUTOMAKE_OPTIONS = 1.6
# -*- mode: makefile -*-
#
# Makefile.am - template makefile for gtk-doc module
# Copyright (C) 2007-2017 Stefan Sauer
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# </