Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl-Convert-ASN1 for
openSUSE:Factory checked in at 2021-06-05 23:30:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Convert-ASN1 (Old)
and /work/SRC/openSUSE:Factory/.perl-Convert-ASN1.new.1898 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Convert-ASN1"
Sat Jun 5 23:30:48 2021 rev:28 rq:896602 version:0.29
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Convert-ASN1/perl-Convert-ASN1.changes
2020-11-06 23:42:44.263535959 +0100
+++
/work/SRC/openSUSE:Factory/.perl-Convert-ASN1.new.1898/perl-Convert-ASN1.changes
2021-06-05 23:31:10.132400070 +0200
@@ -1,0 +2,8 @@
+Tue Jun 1 03:41:31 UTC 2021 - Ferdinand Thiessen <[email protected]>
+
+- Update to version 0.29
+ * typo fixes
+ * Fix unsafe decoding CVE-2013-7488
+- Drop upstream fixed perl-Convert-ASN1-CVE-2013-7488.patch
+
+-------------------------------------------------------------------
Old:
----
Convert-ASN1-0.27.tar.gz
perl-Convert-ASN1-CVE-2013-7488.patch
New:
----
Convert-ASN1-0.29.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Convert-ASN1.spec ++++++
--- /var/tmp/diff_new_pack.Ishc4W/_old 2021-06-05 23:31:10.604400891 +0200
+++ /var/tmp/diff_new_pack.Ishc4W/_new 2021-06-05 23:31:10.604400891 +0200
@@ -17,19 +17,17 @@
Name: perl-Convert-ASN1
-Version: 0.27
+Version: 0.29
Release: 0
%define cpan_name Convert-ASN1
Summary: ASN.1 Encode/Decode library
License: Artistic-1.0 OR GPL-1.0-or-later
Group: Development/Libraries/Perl
URL: https://metacpan.org/release/%{cpan_name}
-Source0:
https://cpan.metacpan.org/authors/id/G/GB/GBARR/%{cpan_name}-%{version}.tar.gz
+Source0:
https://cpan.metacpan.org/authors/id/T/TI/TIMLEGGE/Convert-ASN1-%{version}.tar.gz
Source1: cpanspec.yml
# MANUAL BEGIN
Patch0: Convert-ASN1-0.22-test.diff
-# PATCH-FIX-UPSTREAM bsc#1168934 CVE-2013-7488 Infinite loop via unexpected
input
-Patch1: perl-Convert-ASN1-CVE-2013-7488.patch
# MANUAL END
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -46,7 +44,6 @@
%prep
%setup -q -n %{cpan_name}-%{version}
%patch0
-%patch1
%build
perl Makefile.PL INSTALLDIRS=vendor
++++++ Convert-ASN1-0.27.tar.gz -> Convert-ASN1-0.29.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/ChangeLog
new/Convert-ASN1-0.29/ChangeLog
--- old/Convert-ASN1-0.27/ChangeLog 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/ChangeLog 2021-05-24 23:27:48.000000000 +0200
@@ -1,3 +1,18 @@
+0.29 -- Mon May 24 18:27:46 ADT 2021
+
+ * Release Version no changes from 0.28
+ * Increment Version in Makefile.PL
+
+0.28 -- Sun May 23 18:03:47 ADT 2021
+
+ * Add github actions for repo testing and add new maintainer [Timothy Legge]
+ * typo fix [Adam Leskis]
+ * Fix test failures under Perl 5.26+ without '.' in @INC [Kent Fredric
(KENTNL)]
+ * Correct a typo - SYNOPSIS [Shlomi Fish]
+ * unsafe decoding CVE-2013-7488 [Dana Jacobsen]
+ * Typo fixes from dsteinbrunner [David Steinbrunner]
+ * Add files via upload [Peter Sylvester]
+
0.27 -- Wed Jun 25 13:47:28 CDT 2014
* Avoid recursion when encountering an invalid tag and length
* Avoid negative repetition counts (5.22 compatibility) [Alex Vandiver]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/LICENSE
new/Convert-ASN1-0.29/LICENSE
--- old/Convert-ASN1-0.27/LICENSE 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/LICENSE 2021-05-24 23:27:48.000000000 +0200
@@ -1,4 +1,4 @@
-This software is copyright (c) 2014 by Graham Barr.
+This software is copyright (c) 2021 by Graham Barr.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -12,7 +12,7 @@
--- The GNU General Public License, Version 1, February 1989 ---
-This software is Copyright (c) 2014 by Graham Barr.
+This software is Copyright (c) 2021 by Graham Barr.
This is free software, licensed under:
@@ -22,7 +22,7 @@
Version 1, February 1989
Copyright (C) 1989 Free Software Foundation, Inc.
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -272,7 +272,7 @@
--- The Artistic License 1.0 ---
-This software is Copyright (c) 2014 by Graham Barr.
+This software is Copyright (c) 2021 by Graham Barr.
This is free software, licensed under:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/MANIFEST
new/Convert-ASN1-0.29/MANIFEST
--- old/Convert-ASN1-0.27/MANIFEST 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/MANIFEST 2021-05-24 23:27:48.000000000 +0200
@@ -1,3 +1,4 @@
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest
v6.017.
ChangeLog
LICENSE
MANIFEST
@@ -7,9 +8,11 @@
OldChanges
README.md
SIGNATURE
+cpanfile
dist.ini
examples/ldap
examples/ldap-search
+examples/tsa3161
examples/x509decode
lib/Convert/ASN1.pm
lib/Convert/ASN1.pod
@@ -41,6 +44,7 @@
t/16extset.t
t/17extchoice.t
t/18tagdefault.t
+t/19issue14.t
t/99misc.t
t/aj.cer
t/aj2.cer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/META.json
new/Convert-ASN1-0.29/META.json
--- old/Convert-ASN1-0.27/META.json 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/META.json 2021-05-24 23:27:48.000000000 +0200
@@ -4,26 +4,26 @@
"Graham Barr <[email protected]>"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 4.300030, CPAN::Meta::Converter
version 2.120921",
+ "generated_by" : "Dist::Zilla version 6.017, CPAN::Meta::Converter version
2.150010",
"license" : [
"perl_5"
],
"meta-spec" : {
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
- "version" : "2"
+ "version" : 2
},
"name" : "Convert-ASN1",
"no_index" : {
"directory" : [
+ "examples",
"lib/Convert/ASN1",
- "t",
- "examples"
+ "t"
]
},
"prereqs" : {
"configure" : {
"requires" : {
- "ExtUtils::MakeMaker" : "6.30"
+ "ExtUtils::MakeMaker" : "0"
}
},
"test" : {
@@ -44,6 +44,12 @@
"web" : "https://github.com/gbarr/perl-Convert-ASN1"
}
},
- "version" : "0.27"
+ "version" : "0.29",
+ "x_generated_by_perl" : "v5.30.3",
+ "x_maintainers" : [
+ "Timothy Legge <[email protected]>"
+ ],
+ "x_serialization_backend" : "Cpanel::JSON::XS version 4.21",
+ "x_spdx_expression" : "Artistic-1.0-Perl OR GPL-1.0-or-later"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/META.yml
new/Convert-ASN1-0.29/META.yml
--- old/Convert-ASN1-0.27/META.yml 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/META.yml 2021-05-24 23:27:48.000000000 +0200
@@ -3,23 +3,28 @@
author:
- 'Graham Barr <[email protected]>'
build_requires:
- Math::BigInt: 1.997
- Test::More: 0.90
+ Math::BigInt: '1.997'
+ Test::More: '0.90'
configure_requires:
- ExtUtils::MakeMaker: 6.30
+ ExtUtils::MakeMaker: '0'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 4.300030, CPAN::Meta::Converter version
2.120921'
+generated_by: 'Dist::Zilla version 6.017, CPAN::Meta::Converter version
2.150010'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: Convert-ASN1
no_index:
directory:
+ - examples
- lib/Convert/ASN1
- t
- - examples
resources:
bugtracker: https://github.com/gbarr/perl-Convert-ASN1/issues
repository: git://github.com/gbarr/perl-Convert-ASN1.git
-version: 0.27
+version: '0.29'
+x_generated_by_perl: v5.30.3
+x_maintainers:
+ - 'Timothy Legge <[email protected]>'
+x_serialization_backend: 'YAML::Tiny version 1.73'
+x_spdx_expression: 'Artistic-1.0-Perl OR GPL-1.0-or-later'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/Makefile.PL
new/Convert-ASN1-0.29/Makefile.PL
--- old/Convert-ASN1-0.27/Makefile.PL 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/Makefile.PL 2021-05-24 23:27:48.000000000 +0200
@@ -1,52 +1,45 @@
-
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker
v6.017.
use strict;
use warnings;
-use ExtUtils::MakeMaker 6.30;
-
-
+use ExtUtils::MakeMaker;
my %WriteMakefileArgs = (
"ABSTRACT" => "Convert between perl data structures and ASN.1 encoded
packets",
"AUTHOR" => "Graham Barr <gbarr\@cpan.org>",
- "BUILD_REQUIRES" => {
- "Math::BigInt" => "1.997",
- "Test::More" => "0.90"
- },
"CONFIGURE_REQUIRES" => {
- "ExtUtils::MakeMaker" => "6.30"
+ "ExtUtils::MakeMaker" => 0
},
"DISTNAME" => "Convert-ASN1",
- "EXE_FILES" => [],
"LICENSE" => "perl",
"NAME" => "Convert::ASN1",
"PREREQ_PM" => {},
- "VERSION" => "0.27",
+ "TEST_REQUIRES" => {
+ "Math::BigInt" => "1.997",
+ "Test::More" => "0.90"
+ },
+ "VERSION" => "0.29",
"test" => {
"TESTS" => "t/*.t"
}
);
-unless ( eval { ExtUtils::MakeMaker->VERSION(6.56) } ) {
- my $br = delete $WriteMakefileArgs{BUILD_REQUIRES};
- my $pp = $WriteMakefileArgs{PREREQ_PM};
- for my $mod ( keys %$br ) {
- if ( exists $pp->{$mod} ) {
- $pp->{$mod} = $br->{$mod} if $br->{$mod} > $pp->{$mod};
- }
- else {
- $pp->{$mod} = $br->{$mod};
- }
- }
+my %FallbackPrereqs = (
+ "Math::BigInt" => "1.997",
+ "Test::More" => "0.90"
+);
+
+
+unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
+ delete $WriteMakefileArgs{TEST_REQUIRES};
+ delete $WriteMakefileArgs{BUILD_REQUIRES};
+ $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs;
}
delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
unless eval { ExtUtils::MakeMaker->VERSION(6.52) };
WriteMakefile(%WriteMakefileArgs);
-
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/README.md
new/Convert-ASN1-0.29/README.md
--- old/Convert-ASN1-0.27/README.md 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/README.md 2021-05-24 23:27:48.000000000 +0200
@@ -47,7 +47,7 @@
git fetch upstream git checkout -b mybranch upstream/master
this will checkout a new branch called _mybranch_ from the latest
-code the the master branch of the upstream repository.
+code in the master branch of the upstream repository.
Once you have finished push that branch to your origin repository
with
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/SIGNATURE
new/Convert-ASN1-0.29/SIGNATURE
--- old/Convert-ASN1-0.27/SIGNATURE 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/SIGNATURE 2021-05-24 23:27:48.000000000 +0200
@@ -1,5 +1,5 @@
This file contains message digests of all files listed in MANIFEST,
-signed via the Module::Signature module, version 0.70.
+signed via the Module::Signature module, version 0.87.
To verify the content in this distribution, first make sure you have
Module::Signature installed, then type:
@@ -12,76 +12,78 @@
not run its Makefile.PL or Build.PL.
-----BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
+Hash: RIPEMD160
-SHA1 95a797cc83966e4549083166706faede0033c02e ChangeLog
-SHA1 2bf572da781c106f615754e11dd1523480f4a25b LICENSE
-SHA1 84af6f43ee677a8517171da76c222c5663b2cfac MANIFEST
-SHA1 1383bc711147d4e8b27cf33e0a71598867763d21 META.json
-SHA1 be1839de63caa8458fa97aaf0ec7ef8ff55cd457 META.yml
-SHA1 110ea3a472d2edd79860232cdbe23e2e2b9d7dbd Makefile.PL
-SHA1 34baa595be366d4d07d3719e0ffedec7598dd5cb OldChanges
-SHA1 8505ff40c7ae961f694d42fd0e5b3a71b3b43d3c README.md
-SHA1 96177abd8d9a3cba4927b4c1dd9e3bb8b5ec8d10 dist.ini
-SHA1 905b1f3ec388b43432882585f70627d81a2d64eb examples/ldap
-SHA1 731cdbffc8b4275c20f194422584b6278a728fa0 examples/ldap-search
-SHA1 e9c1b61ecaf01da809b2311e48e779d7855f2703 examples/x509decode
-SHA1 d6b43486eeb24bbf3e95d9fdd7f68cc4467e39de lib/Convert/ASN1.pm
-SHA1 749e448b66badf820f0330a6e4b4a98457411fa5 lib/Convert/ASN1.pod
-SHA1 1a485981089f46207e4cd2376cc770e3980abb2e lib/Convert/ASN1/Debug.pm
-SHA1 dd559f8259616a66998df6c31d5d05d3b8efd136 lib/Convert/ASN1/IO.pm
-SHA1 702f64aee094f179bed1cc90e16d4b5e22284c11 lib/Convert/ASN1/_decode.pm
-SHA1 440b181e7343d7f0f37bdac68ecef3a3980c97a4 lib/Convert/ASN1/_encode.pm
-SHA1 a90d553c0508b7c662d21d29234925528909aff8 lib/Convert/ASN1/parser.pm
-SHA1 025eb26d2828ae9153d5b5e50eb2cafed8d91ec0 mkparse
-SHA1 49ea4886da04ec358bf75114917784ffe01ef9ca parser.y
-SHA1 47ea660ec5b7d891511376631ca8bc703152de52 t/00prim.t
-SHA1 be18a157f0146d6565ee8d408953fc4fb6b5a277 t/01tag.t
-SHA1 99d1ebf5730490b798bd72101a891098f274c106 t/02seq.t
-SHA1 1f2efdd0eb2c3105fa9004f29a6b48b58a3bb6a2 t/03seqof.t
-SHA1 052881761fe4f75b21be7d4f053e0b5ca7c3bf49 t/04opt.t
-SHA1 6ea952799c1f8e5fca2c56a87b8c75d4c1c3c2af t/05time.t
-SHA1 3eb1f4fddf2a2ed424e5efc833e258241b1340ca t/06bigint.t
-SHA1 eb66af2adefb38a4f3ba05374007a9fa6179c368 t/07input.dat
-SHA1 6ec4a7f978fab3e0e9afeb4a5ad23f8071994491 t/07io.t
-SHA1 7dd7bb7e54ae35e3cc1ae324c5a796aac37a98e1 t/08set.t
-SHA1 37137256d188382385b4751daa104fd9dcbe309b t/09contr.t
-SHA1 5db8faa253b5b05c8483bbe83417aef68d63b390 t/10choice.t
-SHA1 e19b783d36c747212c20cba92645c90439248c6e t/11explicit.t
-SHA1 6eec4adad72499b9e42bbe4e0e2b41b81771c2bb t/11indef.t
-SHA1 3d6b0ebe0f12297666e095388152adb695a389c5 t/12der.t
-SHA1 a6668ec882a88fcf18f16c0e45db93c358dbb764 t/13utf8.t
-SHA1 c07c93dcd8a0c0ecd346a9623735235e9aee09db t/14any.t
-SHA1 4ad9e59d332f55d19c1aa6b6dc851f93d08fba03 t/15extseq.t
-SHA1 204dcecb1793fc8347a58d54af27fd5fa87c3fd7 t/16extset.t
-SHA1 40041d7c6b861590d977f183801a5ee929a46801 t/17extchoice.t
-SHA1 a07dfd87a3d672f546500b302526710245ee611a t/18tagdefault.t
-SHA1 fe78bbe85d225fd7030703537c9ae65157e69d81 t/99misc.t
-SHA1 4478dba7f3c409d8cd4673022470301d7197eb74 t/aj.cer
-SHA1 b4dfb113e0d45ae9c5dce0311ec3c604d9913ba5 t/aj2.cer
-SHA1 a82a05d7a22a348abe1e01116ecaf118d22a67ff t/allianz_root.cer
-SHA1 59d0504e0044defc1b8fec9ee6ae6085db38f60e t/dsacert.der
-SHA1 86a8f5b8402ce9813e1467d61cd40bb0959866d1 t/funcs.pl
-SHA1 02fff6b3fc815c57e6832dfc3861851333b0c30b t/new_root_ca.cer
-SHA1 7ec9e04b1a926299ca3d4aa1a3e206f992043438 t/pgpextension.der
-SHA1 eef94a05ef12c316e052233a1d903d3850245de3 t/subca_2.cer
-SHA1 48994ae679ae98975889b7e60d004b6532ddd537 t/telesec_799972029.crt
-SHA1 273ee12457fdc4f90c55e82b56167f62f532e547 t/verisign.der
-SHA1 e908b8c53c098d96bb4499a56e1d5320173ccae9 t/x509.t
+SHA256 13413be69a50b6c33778b2d77245c7a960393401f13c9be13d4fc7a35791138b
ChangeLog
+SHA256 db9e46a932b02253c8bddc05a44a0c1c6979627190afb2251dd76462dd370d79 LICENSE
+SHA256 f64a7da4ef30b95977ff5f18f2d6e6d76c16e0e545729d9f4cd3a1416b2f159d
MANIFEST
+SHA256 de6a8fe412d9e90d65cccc247008758b063c1b2ff666c8823ac12fdaf59bf4b0
META.json
+SHA256 439a528279269dc9839d13fde0fd030839039ba4f5ee56e32b60da538b938459
META.yml
+SHA256 6d942f30dd632fc695df5c18e2d3e5b3657f11210ffd7e5bd4c45f6f2fbf34d5
Makefile.PL
+SHA256 2f65af5435c7628fe9b12a31c7dee484ea1943aa6d0b5db7b07acbc86ee1d313
OldChanges
+SHA256 b8572ca9bbfe771e21646af79fdb271a883b2ff0992d4f232becab74b2b02c33
README.md
+SHA256 d5139c3f6afcfda547568f4ec274915f28b41f4f4b4084e6ab48e0d25b701f28
cpanfile
+SHA256 8da33b86392b4d2b97f5d5f08cf229dc5e9c515b2b40b1c053b3c8e4200be760
dist.ini
+SHA256 d623e30de9808125db0dd134e964e41fed3fdd6988b8007a3ce44c8017d6b2f6
examples/ldap
+SHA256 bf193dc78f8dd2a67fcc2412fa3d0d6c263192b22a4458c4c8470e2c5bc7198a
examples/ldap-search
+SHA256 681fc5cf9c397a0ecf6f17f459d2e2b46839d95e6bbfb6521a4e9e04dc114e03
examples/tsa3161
+SHA256 3a9f35b599d0a83a4cf4ee7342ca754349c42c15c18dc85780576fe834ffbdcc
examples/x509decode
+SHA256 a40dc0c5e51a245f614184af352fb5a21f196b4d15a72ec8c4f5d4b42713add8
lib/Convert/ASN1.pm
+SHA256 f36f7bf37d74a6f9d9d9e6f04329ddbe3d80e769c4fd91188a613eafc3626651
lib/Convert/ASN1.pod
+SHA256 71fce57c2a7792aa6921327cb11814524d535da05746afa9e69099021f335740
lib/Convert/ASN1/Debug.pm
+SHA256 d49950edec69ea2db26289f00f78bb77c7298f5fd12ee229760f772eb1bc4737
lib/Convert/ASN1/IO.pm
+SHA256 a46be250f8e212fa86d9aa27f80a6359693c83dc75229c8f746450e779bc2ed9
lib/Convert/ASN1/_decode.pm
+SHA256 3a048c41d864d41ed2d059a1f0646e4327eca6bdd61a34385375df7a156f3910
lib/Convert/ASN1/_encode.pm
+SHA256 7ba331668cb92b8faaab73f79bbbee98214e2b16db73d1c7b2564de8473d56bb
lib/Convert/ASN1/parser.pm
+SHA256 182a8e9fa177b23b9796d7e13f941056399af20f734c32674e3a28c23f81c781 mkparse
+SHA256 515a06c03ef8ff349b73b3c8103dd18dc6aaec8348e7286733411dbe812c8e12
parser.y
+SHA256 26e21894199abb37a074b3dd2c66777f2bb071a4eac72d96355bee060c78b554
t/00prim.t
+SHA256 66017c50c09cd4cb350cd2c6b92032fc0e3a55c06677facb3eec602e27cbd37d
t/01tag.t
+SHA256 638fb287a4f3286f91dad280d5d1faa369fde97caa5e197ab1e1ff5a4342c422
t/02seq.t
+SHA256 ab212d4c978fc405a49abe40b827cc0ae5755bc982118e4ecb7f0821747a50e1
t/03seqof.t
+SHA256 540b45aa66508a8702ef0aa7d6e5a4e2cd14bc53a8704abb4875794260fdfe20
t/04opt.t
+SHA256 a529f3ddc509c720bf1df88fc4dcad2eb7c16478a6cc37a8fd0e75a83fbcd063
t/05time.t
+SHA256 01544958ff35843b3ac7f663fe705ea19b70f20fbe75da1ef51290b98fe25a7f
t/06bigint.t
+SHA256 d2f0d6d746afe8062aebe31ebd4bdc6a9070b363398da2f5015285c31e223a09
t/07input.dat
+SHA256 7bb3c7e578928c85488d65a4f2b01c158e296291c9b4aa48f0483151d912be80
t/07io.t
+SHA256 7f9eddaaa3692764154e04c6bc37a0a525a5d9c1e6a0769a5e95353d7b097d9b
t/08set.t
+SHA256 9b8671ae805588da3e027c2e0153c987e76826f5bb6866c95fa06e762bd38752
t/09contr.t
+SHA256 df7dea4df2d8ab2dd3cdd4e25bb5f5229f238f2ec1382a119ad31a5fef103b92
t/10choice.t
+SHA256 3f9dec767169fa60b0b77357dca56fdc18fc6542f15f484cd9bf63425709a804
t/11explicit.t
+SHA256 53e17c3a8dbef1560a3aaa66fb78215ab0b5c38899498ab6324cc55922bb4086
t/11indef.t
+SHA256 7ceb2c9d58d002c32c30465588daa696f37e7bc62b6b9ffba56a4d076926b2b1
t/12der.t
+SHA256 7abcc496e5e84d990b31537eb4e5069842a5787dbb85a06ea13457572eb33455
t/13utf8.t
+SHA256 71b68947e3709dc99e99cf6ea7c1d7c558260a40840dd496486503cad5918f89
t/14any.t
+SHA256 4be884cb7256866227b45a08c8b1710aadfe4bd93d0c4c51d16e7929ab66459f
t/15extseq.t
+SHA256 8376bb2d6157b846d5aba40576003fccbfd1126881ae6d88fff10daf2cd21d6f
t/16extset.t
+SHA256 530dc4cdb5db6d1b5a0267153d28d72fbaba1d21a1fac42ffdf1b1683dd4978d
t/17extchoice.t
+SHA256 006e44cfe62bfaf5b1cdbf7a097a1fda9efe5c79fce610e2667134fec24e3a7c
t/18tagdefault.t
+SHA256 6408aaf175daa31007e407cb457a6c7296250dfe8687e43c49fdcc0a5c17ef24
t/19issue14.t
+SHA256 bf3b78508bcef6211770430990697eacdf8cecd30e302276212105c2b23b23c3
t/99misc.t
+SHA256 fce74f9afed75d5494f607ae0586b0f2780f7fafe07dde4a0b7c8fab40a63aac
t/aj.cer
+SHA256 df5e1cb00e255ead52a163ceea18cc1a2b1db11cd46fb0313aa85d6f7e96039e
t/aj2.cer
+SHA256 3e149b399b650b782a2f79a68a552d214243eb4826b61a2baa60936e9deb8525
t/allianz_root.cer
+SHA256 4a8e02dbf6721b6386f97ef5a824a22fb842c5173f2a286c6ff7f28ec662d97c
t/dsacert.der
+SHA256 cc963ced59075118c11d90acccb1285dc5a9c66509465a33489927dac03221e7
t/funcs.pl
+SHA256 5f4f6cda1e012ce81947a5b972b7178d97461992b07de7e025b7dd7ab8a3a63b
t/new_root_ca.cer
+SHA256 722c80f430cb6a0f3a241c438cf6fdd2f0975e9590470c938f1ee4cf21e4a269
t/pgpextension.der
+SHA256 11a65c164d326af0632e8ea7334960a8a04b004a534138fe822434e29e6380ad
t/subca_2.cer
+SHA256 ded0032c6bd787e146f1d9b2521a19be04d65f4c67320be2d032aee7fe350818
t/telesec_799972029.crt
+SHA256 341de98b1392abf7f4ab90a960cf25d4bd6ec65b9a51ce6ed067d00ec7ce9b7f
t/verisign.der
+SHA256 cbcf0c7c141fbaf1da0c2f5ecd47e22dc1743158d3cf24413e425b0ad891ec85
t/x509.t
-----BEGIN PGP SIGNATURE-----
-Version: GnuPG v1
-iQIcBAEBAgAGBQJTqxlCAAoJEF0awSLzqjNNWkAQAJhWThEq4+yfpDYAp7W6Fuil
-FD7NRfC5GuiDzfh2AU1tyPrvVEWIQOVkKxlyTvsfyV4iwfhDIpFp378KhmaSFNoV
-+xfjI7lPj5/N1QzHvHRzApU0myZpPFK0sftfkuDB/K8XM18c2Z69PKAFaNSdceVg
-xAHJXxCZmlcp4fNPoMyrStqBJmJzPICIJmeWrh32gqgs29HOzOvzINELs54C0Jw3
-ZqxoeskBMcmICF+RsfQjCZ3bxpn+C873wPeXE7Yx3frBCL61JjphCCBRgEC8FfGf
-rkZK+tmkQoiKiDNu5tK1JJ32m9odh1eazxuZpmfC2Nh5nHDzZnXog4PqFcqwlRZm
-3gP3rMlmaWDurNBXOMH/uWygvSYh5XevygQPf1JrleVo1G1qXb28u1Bfgkh2PSQX
-gnGp642Zkrd40r2Fo4+ckmnf4NBa/Ayu/qfUPdYTv28x26HoXmTJhQZcuVAXAUYi
-w7ISFsK1sVXkERRfD4JoIXn4kkXKXVTesGsNzFSmmY1Dyve0CQBNuCv2qNF6+hv9
-X8fW1czVuDLElJw0y0uqXquR+NH7mWg55gwXAevhxbrHZRqmhgEUfs4JX0WVhyOM
-zv06eq4hy43H61l+RCdtu7MSDucL5DeAbp2OgrStNqAG3NGFWf4PX/NirxX+3k7D
-1EcaVqHSXp5uvWdtJdUt
-=Tocd
+iQIzBAEBAwAdFiEEMguXHBCUSzAt6mNu1fh7LgYGpfkFAmCsGlMACgkQ1fh7LgYG
+pfnpjw//Wozq/Mc6s8ZMsf+kq2WoJPflbHWUme1BBzcDQl/65cr73oDpp6T7I8OG
+eestvf/JaH8AYrUeDjtELui0rXdNI0hxkeT+2ESGt5uUD1rOpG6FE7UIcimdSC+s
+mOG00fO7s15JpWO8uh2UnT6wsD3Ge4Oz7McCN3xRYMMIxv7pfkUkgHrFVucQlvTJ
+8iMxldQm+xC/BGtt1M/Ac5k0ot341C60LlyQSv9ykyz/7bs3yUztYLm0dTWY/5Gq
+tFhDW36wvw50ocaMzJhszPwJVQXJE/1PAHlweczbFIDtNc9XyZ94NkXox6NeuC3p
+2x3Pbr3vIT5IZVnZhPzvc4bcN7o38tHLYimkj7/Qe2qAfoV/TMaRdltbQ0eYux6L
+VxVe7B9ehCMe0/9R3nG6v2FE9vhBk8+pmrzesPTvxRunxHztTreGBF6iDTDuDs9r
+RtkCC2LmgMkkb/An6jEjCv3YzKY/5S6pB+ZFy0JJNakrHRrEn/DNKuIF3D0f7IU7
+v5Jl09Y62PmsgHewx25b6vGMX0BuNhoMu8HSrCM12+J7z4aPijz2FXnO7bmsSz79
+IPfOz++8dN27a2SKRs6LD142XzEI/BJ2zaQmyTIFQZwj6jGnKJwEE3s/gUI2x7aY
+RpkZI3iPt6btCxFO1W0BTL024911UXfHbRr67EKcxFxKCAoprPc=
+=wusu
-----END PGP SIGNATURE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/cpanfile
new/Convert-ASN1-0.29/cpanfile
--- old/Convert-ASN1-0.27/cpanfile 1970-01-01 01:00:00.000000000 +0100
+++ new/Convert-ASN1-0.29/cpanfile 2021-05-24 23:27:48.000000000 +0200
@@ -0,0 +1,12 @@
+# This file is generated by Dist::Zilla::Plugin::CPANFile v6.017
+# Do not edit this file directly. To change prereqs, edit the `dist.ini` file.
+
+
+on 'test' => sub {
+ requires "Math::BigInt" => "1.997";
+ requires "Test::More" => "0.90";
+};
+
+on 'configure' => sub {
+ requires "ExtUtils::MakeMaker" => "0";
+};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/dist.ini
new/Convert-ASN1-0.29/dist.ini
--- old/Convert-ASN1-0.27/dist.ini 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/dist.ini 2021-05-24 23:27:48.000000000 +0200
@@ -3,6 +3,8 @@
license = Perl_5
copyright_holder = Graham Barr
abstract = Convert between perl data structures and ASN.1 encoded packets
+[Meta::Maintainers]
+maintainer = Timothy Legge <[email protected]>
[@Filter]
@@ -17,6 +19,8 @@
directory = examples
[Git::GatherDir]
+exclude_filename = cpanfile
+exclude_filename = Makefile.PL
[Git::NextVersion]
[PkgVersion]
@@ -37,6 +41,14 @@
repository.url = git://github.com/gbarr/perl-Convert-ASN1.git
repository.type = git
+[CPANFile]
+
+[CopyFilesFromBuild::Filtered]
+copy = cpanfile
+copy = Makefile.PL
+
+[CopyFilesFromRelease]
+copy = cpanfile, Makefile.PL
[Signature]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/examples/tsa3161
new/Convert-ASN1-0.29/examples/tsa3161
--- old/Convert-ASN1-0.27/examples/tsa3161 1970-01-01 01:00:00.000000000
+0100
+++ new/Convert-ASN1-0.29/examples/tsa3161 2021-05-24 23:27:48.000000000
+0200
@@ -0,0 +1,535 @@
+#!/usr/bin/perl
+#
+# EdelStamp (C) 2000-2016, ON-X, All rights reserved.
+# Author: Peter Sylvester <[email protected]>
+# This program is free software; you can redistribute it and/or
+# modify it under the same terms as Perl itself.
+#
+# Function: Create RFC 3161 time stamps
+# Runs as CGI when REQUEST_METHOD is present.
+#
+# Input: The program needs three environment variables:
+# TSAKeyFile name of a pem encoded RS private key
+# TSACertificateFile name of a der encoded certficate for the key
+# TSAPolicy a list of dot separated numbers
+#
+# If the program finds REQUEST_METHOD, httpd context is assumed
+# program reads a time stamp request from STDIN
+# The REQUEST_METHOD must be POST
+#
+# Output: A time stamp response (if http response is 200) to STDOUT.
+# if under http context headers are prepended.
+# Not details of errors are provided when status=2=rejected
+#
+# Errors: Error details are written to STDERR and can be written to Syslog in
+# and httpd context:
+# Environement varibles SyslogOptions and SyslogFacility are used
for parameterization
+# See perl module Sys::Syslog fpr details
+# Notes: Policy on input is ignored, hash algorithms are not checked and
copied as is.
+# Since the maximim size of a request is limited, it is unlikely
that a request
+# contains the data instead of a hash.
+# Example: The following example are for the apache httpd server
configuration
+#
+# ScriptAlias "/tsa/" "/var/www/cgi-bin/"
+# <Directory "/var/www/cgi-bin">
+# AllowOverride None
+# Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
+# Require all granted
+# SetEnv TSACertificateFile /etc/apache2/pki/TSA.der
+# SetEnv TSAKeyFile /etc/apache2/pki/TSA.key
+# SetEnv TSAPolicy 1.2.3.4.1
+# SetEnv TSATimeout 15
+# SetEnv TSARequestLimit 500
+# SetEnv SyslogOptions "nofatal,ndelay,pid"
+# SetEnv SyslogFacility "user"
+# </Directory>
+
+use strict;
+use warnings;
+
+use Convert::ASN1;
+use Time::HiRes;
+use Digest::SHA qw(sha256 sha1);
+use Crypt::OpenSSL::RSA;
+
+#{status=> {status=>2}} hard coded.
+my $rejected = "\x30\x05\x30\x03\x02\x01\x02";
+
+binmode(STDOUT);
+binmode(STDIN);
+binmode(STDERR,':utf8');
+
+# we like to test out a web server.
+my $HTTP = defined $ENV{'REQUEST_METHOD'} ;
+
+# and we can do syslog
+my $SYSLOG = ($HTTP && defined $ENV{'SyslogOptions'});
+if ($SYSLOG) {
+ use Sys::Syslog ;
+ $ENV{'SyslogFacility'} = 'user' unless $ENV{'SyslogFacility'} ;
+ openlog('EdelStamp', $ENV{'SyslogOptions'}, $ENV{'SyslogFacility'}) or
dieif(1,'Cannot open Syslog');
+}
+
+print "Content-Type: application/timestamp-response\n"
+ ."Content-Transfer-Encoding: binary\n" if $HTTP;
+
+# To be or not to be sorry
+sub dieif {
+ my ($cond,$text) = @_;
+ return unless $cond;
+ print "Content-Length: ".length($rejected)."\n\n" if $HTTP;
+ print $rejected;
+ print STDERR "$text\n";
+ syslog("info", $ENV{'REMOTE_ADDR'} . " $text") if $SYSLOG;
+ exit ;
+}
+# To leave some traces
+sub log {
+ my ($text) = @_;
+ print STDERR "$text\n";
+ syslog("info", $ENV{'REMOTE_ADDR'} . " $text") if $SYSLOG;
+}
+
+# Ok, start parse the ASN. It would be nice to have them directly.
+
+my $asn = Convert::ASN1->new;
+$asn->prepare(q<
+TimeStampReq ::= SEQUENCE {
+ version INTEGER ,
+ messageImprint MessageImprint,
+ reqPolicy TSAPolicyId OPTIONAL,
+ nonce INTEGER OPTIONAL,
+ certReq BOOLEAN OPTIONAL,
+ extensions [0] IMPLICIT Extensions OPTIONAL
+ }
+
+MessageImprint ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashedMessage OCTET STRING }
+
+AlgorithmIdentifier ::= SEQUENCE {
+ algorithm OBJECT IDENTIFIER,
+ parameters NULL }
+
+TSAPolicyId ::= OBJECT IDENTIFIER
+
+Extensions ::= SEQUENCE OF Extension
+
+Extension ::= SEQUENCE {
+ extnID OBJECT IDENTIFIER,
+ critical BOOLEAN OPTIONAL,
+ extnValue OCTET STRING }
+
+TimeStampResp ::= SEQUENCE {
+ status PKIStatusInfo,
+ timeStampToken TimeStampToken OPTIONAL }
+
+PKIStatusInfo ::= SEQUENCE {
+ status PKIStatus,
+ statusString PKIFreeText OPTIONAL,
+ failInfo PKIFailureInfo OPTIONAL }
+
+PKIStatus ::= INTEGER
+
+PKIFailureInfo ::= BIT STRING
+
+PKIFreeText ::= SEQUENCE OF UTF8String
+
+TimeStampToken ::= SEQUENCE {
+ contentType ContentType,
+ content [0] EXPLICIT SignedData }
+ ContentType ::= OBJECT IDENTIFIER
+
+TSTInfo ::= SEQUENCE {
+ version INTEGER ,
+ policy TSAPolicyId,
+ messageImprint MessageImprint,
+ serialNumber INTEGER,
+ genTime GeneralizedTime,
+ accuracy Accuracy OPTIONAL,
+ ordering BOOLEAN OPTIONAL,
+ nonce INTEGER OPTIONAL,
+ tsa [0] GeneralName OPTIONAL,
+ extensions [1] IMPLICIT Extensions OPTIONAL
+}
+
+Accuracy ::= SEQUENCE {
+ seconds INTEGER OPTIONAL,
+ millis [0] INTEGER OPTIONAL,
+ micros [1] INTEGER OPTIONAL
+}
+
+Attribute ::= SEQUENCE {
+ type AttributeType,
+ values SET OF AttributeValue
+ }
+
+AttributeType ::= OBJECT IDENTIFIER
+
+AttributeValue ::= ANY
+
+AttributeTypeAndValue ::= SEQUENCE {
+ type AttributeType,
+ value AttributeValue
+ }
+
+Name ::= CHOICE { -- only one possibility for now
+ rdnSequence RDNSequence
+ }
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+DistinguishedName ::= RDNSequence
+
+RelativeDistinguishedName ::=
+ SET OF AttributeTypeAndValue --SET SIZE (1 .. MAX) OF
+
+DirectoryString ::= CHOICE {
+ teletexString TeletexString, --(SIZE (1..MAX)),
+ printableString PrintableString, --(SIZE (1..MAX)),
+ bmpString BMPString, --(SIZE (1..MAX)),
+ universalString UniversalString, --(SIZE (1..MAX)),
+ utf8String UTF8String, --(SIZE (1..MAX)),
+ ia5String IA5String --added for EmailAddress
+ }
+
+Certificate ::= SEQUENCE {
+ tbsCertificate TBSCertificate,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING
+ }
+
+TBSCertificate ::= SEQUENCE {
+ version [0] EXPLICIT Version OPTIONAL, --DEFAULT v1
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- If present, version shall be v2 or v3
+ subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- If present, version shall be v2 or v3
+ extensions [3] EXPLICIT Extensions OPTIONAL
+ -- If present, version shall be v3
+ }
+
+Version ::= INTEGER --{ v1(0), v2(1), v3(2) }
+CertificateSerialNumber ::= INTEGER
+
+Validity ::= SEQUENCE {
+ notBefore Time,
+ notAfter Time
+ }
+
+UniqueIdentifier ::= BIT STRING
+
+SubjectPublicKeyInfo ::= SEQUENCE {
+ algorithm AlgorithmIdentifier,
+ subjectPublicKey BIT STRING
+ }
+
+AlgorithmIdentifier ::= SEQUENCE {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY
+ }
+
+GeneralNames ::= SEQUENCE OF GeneralName
+GeneralName ::= CHOICE {
+ otherName [0] AnotherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ANY, --ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER }
+
+AnotherName ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY } --DEFINED BY type-id }
+
+EDIPartyName ::= SEQUENCE {
+ nameAssigner [0] DirectoryString OPTIONAL,
+ partyName [1] DirectoryString }
+
+IssuerAltName ::= GeneralNames
+
+SubjectDirectoryAttributes ::= SEQUENCE OF Attribute
+
+EncapsulatedContentInfo ::= SEQUENCE {
+ eContentType ContentType,
+ eContent [0] EXPLICIT OCTET STRING OPTIONAL }
+
+ContentType ::= OBJECT IDENTIFIER
+
+CMSVersion ::= INTEGER
+
+DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier
+
+DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+SignerInfo ::= SEQUENCE {
+ version CMSVersion,
+ sid SignerIdentifier,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ signedAttrs [0] IMPLICIT SignedAttributes OPTIONAL,
+ signatureAlgorithm SignatureAlgorithmIdentifier,
+ signature SignatureValue,
+ unsignedAttrs [1] IMPLICIT UnsignedAttributes OPTIONAL }
+SignerIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] OCTET STRING }
+
+SignatureAlgorithmIdentifier ::= AlgorithmIdentifier
+
+SignedAttributes ::= SET OF ANY
+UnsignedAttributes ::= SET OF ANY
+CMSAttribute ::= SEQUENCE {
+ attrType OBJECT IDENTIFIER,
+ attrValues SET OF CMSAttributeValue }
+
+CMSAttributeValue ::= ANY
+SignatureValue ::= OCTET STRING
+IssuerAndSerialNumber ::= SEQUENCE {
+ issuer Name,
+ serialNumber CertificateSerialNumber }
+CertificateSerialNumber ::= INTEGER
+
+SigningTime ::= Time
+Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+MessageDigest ::= OCTET STRING
+SignedData ::= SEQUENCE {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+-- crls [1] IMPLICIT RevocationInfoChoices OPTIONAL,
+ signerInfos SignerInfos }
+DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier
+SignerInfos ::= SET OF SignerInfo
+CertificateSet ::= SET OF CertificateChoices
+SigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF ESSCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL }
+
+PolicyInformation ::= SEQUENCE {
+ policyIdentifier CertPolicyId,
+ policyQualifiers SEQUENCE OF
+ PolicyQualifierInfo } --OPTIONAL }
+CertPolicyId ::= OBJECT IDENTIFIER
+PolicyQualifierInfo ::= SEQUENCE {
+ policyQualifierId PolicyQualifierId,
+ qualifier ANY } --DEFINED BY policyQualifierId }
+PolicyQualifierId ::=
+ OBJECT IDENTIFIER --( id-qt-cps | id-qt-unotice )
+-- CPS pointer qualifier
+CPSuri ::= IA5String
+-- user notice qualifier
+UserNotice ::= SEQUENCE {
+ noticeRef NoticeReference OPTIONAL,
+ explicitText DisplayText OPTIONAL}
+
+NoticeReference ::= SEQUENCE {
+ organization DisplayText,
+ noticeNumbers SEQUENCE OF INTEGER }
+
+DisplayText ::= CHOICE {
+ visibleString VisibleString ,
+ bmpString BMPString ,
+ utf8String UTF8String }
+
+ESSCertID ::= SEQUENCE {
+ certHash OCTET STRING, -- SHA1 hash of entire certificate
+ issuerSerial IssuerSerial OPTIONAL }
+IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serialNumber CertificateSerialNumber }
+CertificateChoices ::= CHOICE {
+ certificate ANY -- we already have it encoded
+-- v2AttrCert [2] IMPLICIT AttributeCertificateV2,
+-- other [3] IMPLICIT OtherCertificateFormat
+}
+ >) or &dieif(1, "Bad ASN1 definitions: " . $asn->error) ;
+
+# a little helper
+sub asnfind {
+ my ($macro) = @_;
+ my $asn_macro = $asn->find($macro) or &dieif(1,"No ASN1 syntax for
'$macro'");
+ return $asn_macro;
+}
+# can we give a response?
+my $asn_resp = &asnfind('TimeStampResp');
+$asn_resp->configure('encoding','DER');
+
+# can we parse?
+my $asn_tspreq = &asnfind('TimeStampReq');
+&dieif(!$HTTP || $ENV{CONTENT_TYPE} ne 'application/timestamp-query',"Invalid
content type received");
+&dieif(!$HTTP || $ENV{'REQUEST_METHOD'} ne 'POST',"Request Method is not
POST");
+
+# requests are small, we don't want large files here and we timeout,
+# we don't care about contentlength
+
+my $cnt=$ENV{'TSATimeout'}+0; $cnt=15 unless $cnt>2 && $cnt<120;
+my $limit=$ENV{'TSARequestLimit'}+0; $limit=300 unless $limit>5 && $cnt<20000;
+
+# normally a request comes in one packet, but we never know.
+my $pdu='';
+while ($cnt-- >0) {
+ my $asn_tspreq = &asnfind('TimeStampReq');
+ my $next;
+ read STDIN, $next, $limit;
+ if ($next eq '') {
+ sleep(1);
+ } else {
+ $pdu .= $next;
+ &dieif(($cnt <= 0),"Timeout");
+ &dieif((length($pdu)>$limit),"Request too long");
+ my $tspreq = $asn_tspreq->decode($pdu);
+ }
+ last unless $asn_tspreq->error() ;
+}
+
+my $tspreq = $asn_tspreq->decode($pdu);
+&dieif($asn_tspreq->error(),'Invalid request');
+&dieif($tspreq->{'version'} != 1,'Invalid version');
+
+# get policy, cert and key
+{
+ &dieif(!$ENV{'TSAPolicy'});
+ my $asn_policyid=&asnfind('TSAPolicyId');
+ $asn_policyid->encode($ENV{'TSAPolicy'});
+ &dieif($asn_policyid->error(),"Invalid TSAPolicy syntax");
+}
+my $tsa_cert;
+my $tsa_cert_asn;
+my $certDigest;
+ { # get certificate
+ my $filename = $ENV{'TSACertificateFile'} or &dieif(1, "Missing
environment variable 'TSACertificateFile'");
+ my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
+ $atime,$mtime,$ctime,$blksize,$blocks) = stat $filename;
+ open TSACERT, "<$filename" or &dieif(1, "cannot open TSACertificateFile
'$filename'");
+ binmode TSACERT;
+ read TSACERT, $tsa_cert_asn, $size;
+ close TSACERT;
+ $certDigest=sha1($tsa_cert_asn);
+ my $asn_cert=&asnfind('Certificate');
+ $tsa_cert = $asn_cert->decode( $tsa_cert_asn) or &dieif(1,
$asn_cert->error());
+ }
+my $tsa_key;
+ { # get key
+ my $filename = $ENV{'TSAKeyFile'} or &dieif(1, "Missing environment
variable 'TSAKeyFile'");;
+ my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
+ $atime,$mtime,$ctime,$blksize,$blocks) = stat $filename;
+ open TSAKEY, "<$filename" or &dieif(1,"cannot open TSAKeyFile
'$filename'");
+ binmode TSAKEY;
+ my $tsa_key_pem;
+ read TSAKEY, $tsa_key_pem, $size;
+ close TSAKEY;
+ $tsa_key = Crypt::OpenSSL::RSA->new_private_key($tsa_key_pem) or
&dieif(1,"TSAKeyFile '$filename' cannot be decoded");
+ }
+
+# some magic
+my $time = Time::HiRes::gettimeofday() ;
+my $now = int($time);
+my $serial = ($time-1288070000)*1000000*100000 +$$;
+my $TSTInfo_asn = &asnfind('TSTInfo');
+$TSTInfo_asn->configure('encoding','DER');
+$TSTInfo_asn->configure('encode',{time=>'withzone'});
+$TSTInfo_asn->configure('encode',{timezone=>0});
+
+# TBD: Add whatever logic you want to fill the TSTInfo, e.g. accurancy, take
policy from input.
+# check the validity of the digest, OIDs + length.
+
+my $tstinfo = {
+ version=>1,
+ policy=>$ENV{'TSAPolicy'},
+ messageImprint=> $tspreq->{'messageImprint'},
+ genTime=>$now,
+ serialNumber=>$serial,
+ tsa=>{directoryName=>$tsa_cert->{'tbsCertificate'}->{'subject'}}
+};
+$tstinfo->{'nonce'} = $tspreq->{'nonce'} if defined $tspreq->{'nonce'};
+
+# encode the content
+my $tstinfostr=$TSTInfo_asn->encode($tstinfo) || &dieif(1,"Cannot encode
TSTINFO:" .$TSTInfo_asn->error());
+
+# and hash it with sha256
+
+my $DigestAlgorithmIdentifiers=[];
+$DigestAlgorithmIdentifiers->[0]={algorithm=>'2 16 840 1 101 3 4 2
1',parameters=>"\x05\x00"};
+my $DigestAlgorithmIdentifiers_asn = &asnfind('DigestAlgorithmIdentifiers') ;
+my $contentDigest=sha256($tstinfostr);
+
+# encode message attributes
+
+my @CMSAttributeList;
+my $CMSAttribute_asn = &asnfind('CMSAttribute');
+ {
+ my $CMSAttributevalue_asn = &asnfind('ContentType');
+ my $l = []; $l->[0] =
$CMSAttributevalue_asn->encode('1.2.840.113549.1.9.16.1.4');
+ my $CMSAttribute={attrType=>'1.2.840.113549.1.9.3', attrValues=>$l};
+ push @CMSAttributeList,$CMSAttribute_asn->encode($CMSAttribute);
+ }
+ {
+ my $CMSAttributevalue_asn = &asnfind('SigningTime') ;
+ my $l = []; $l->[0] = $CMSAttributevalue_asn->encode(generalTime=>$now);
+ my $CMSAttribute={attrType=>'1.2.840.113549.1.9.5', attrValues=>$l};
+ push @CMSAttributeList,$CMSAttribute_asn->encode($CMSAttribute);
+ }
+ {
+ my $CMSAttributevalue_asn = &asnfind('MessageDigest') ;
+ my $l = []; $l->[0] = $CMSAttributevalue_asn->encode($contentDigest);
+ my $CMSAttribute={attrType=>'1.2.840.113549.1.9.4', attrValues=>$l};
+ push @CMSAttributeList,$CMSAttribute_asn->encode($CMSAttribute);
+ }
+ {
+ my $CMSAttributevalue_asn = &asnfind('SigningCertificate') ;
+ my $SC=[]; $SC->[0] = {certHash=>$certDigest};
+ my $l = []; $l->[0] = $CMSAttributevalue_asn->encode({certs=>$SC});
+ my $CMSAttribute={attrType=>'1.2.840.113549.1 9.16.2.12', attrValues=>$l};
+ push @CMSAttributeList,$CMSAttribute_asn->encode($CMSAttribute);
+ }
+my @SortedAttributes = sort @CMSAttributeList; # needed for DER, just to be
sure.
+my $CMSAttributes_asn = &asnfind('SignedAttributes') ;
+my $TBSattrs=$CMSAttributes_asn->encode(\@SortedAttributes) or
&dieif(1,$CMSAttributes_asn->error());
+
+# create and sign a signerinfo
+$tsa_key->use_sha256_hash();
+my $SignerInfos=[]; $SignerInfos->[0] = {
+ version =>1,
+ digestAlgorithm=>$DigestAlgorithmIdentifiers->[0],
+
sid=>{issuerAndSerialNumber=>{issuer=>$tsa_cert->{'tbsCertificate'}->{'issuer'},
+ serialNumber=>$tsa_cert->{'tbsCertificate'}->{'serialNumber'},}},
+ signedAttrs=>\@SortedAttributes,
+ signatureAlgorithm=>$DigestAlgorithmIdentifiers->[0],
+ signature=>$tsa_key->sign($TBSattrs),
+ };
+# finish the token and response
+my $CertificateSet=[]; $CertificateSet->[0]={certificate=>$tsa_cert_asn};
+my $TimeStampToken={
+ contentType=>'1 2 840 113549 1 7 2',
+ content=>{
+ version=>3,
+ digestAlgorithms=>$DigestAlgorithmIdentifiers,
+ encapContentInfo=>{
+ eContentType=>'1.2.840.113549.1.9.16.1.4',
+ eContent=>$tstinfostr
+ },
+ certificates=>$CertificateSet,
+ signerInfos=>$SignerInfos,
+ }};
+my $response = $asn_resp->encode({status=>
{status=>0},timeStampToken=>$TimeStampToken}) or &dieif(1,"Cannot create
Timestampresponse");
+print STDOUT "Content-Disposition: Attachment; filename=$now-$$.tsr\n";
+print STDOUT "Content-Length:" .length($response) . "\n\n" if $HTTP; print
STDOUT $response;
+
+my $messageImprint_asn = &asnfind('MessageImprint');
+my $messageImprint= $messageImprint_asn->encode($tspreq->{'messageImprint'})
or &dieif(1,$messageImprint_asn->error());
+
+&log('ReceivedHash ' . unpack('H*', $messageImprint) . ' SignedAtributes ' .
unpack("H*",$TBSattrs) ) ;
+# This is the end (for now)
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/lib/Convert/ASN1/Debug.pm
new/Convert-ASN1-0.29/lib/Convert/ASN1/Debug.pm
--- old/Convert-ASN1-0.27/lib/Convert/ASN1/Debug.pm 2014-06-25
20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/lib/Convert/ASN1/Debug.pm 2021-05-24
23:27:48.000000000 +0200
@@ -3,10 +3,7 @@
# modify it under the same terms as Perl itself.
package Convert::ASN1;
-{
- $Convert::ASN1::VERSION = '0.27';
-}
-
+$Convert::ASN1::VERSION = '0.29';
##
## just for debug :-)
##
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/lib/Convert/ASN1/IO.pm
new/Convert-ASN1-0.29/lib/Convert/ASN1/IO.pm
--- old/Convert-ASN1-0.27/lib/Convert/ASN1/IO.pm 2014-06-25
20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/lib/Convert/ASN1/IO.pm 2021-05-24
23:27:48.000000000 +0200
@@ -3,10 +3,7 @@
# modify it under the same terms as Perl itself.
package Convert::ASN1;
-{
- $Convert::ASN1::VERSION = '0.27';
-}
-
+$Convert::ASN1::VERSION = '0.29';
use strict;
use Socket;
@@ -47,7 +44,7 @@
}
}
- # If we can decode a tag and length we can detemine the length
+ # If we can decode a tag and length we can determine the length
($tb,$tmp) = asn_decode_tag(substr($buf,$pos));
unless ($tb || $pos+$tb < length $buf) {
next MORE if $n == length $buf;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/lib/Convert/ASN1/_decode.pm
new/Convert-ASN1-0.29/lib/Convert/ASN1/_decode.pm
--- old/Convert-ASN1-0.27/lib/Convert/ASN1/_decode.pm 2014-06-25
20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/lib/Convert/ASN1/_decode.pm 2021-05-24
23:27:48.000000000 +0200
@@ -3,10 +3,7 @@
# modify it under the same terms as Perl itself.
package Convert::ASN1;
-{
- $Convert::ASN1::VERSION = '0.27';
-}
-
+$Convert::ASN1::VERSION = '0.29';
use strict;
use warnings;
@@ -663,7 +660,7 @@
return if $pos+$len+$indef > $end;
# return the tag, the length of the data, the position of the data
- # and the number of extra bytes for indefinate encoding
+ # and the number of extra bytes for indefinite encoding
($tag, $len, $pos, $indef);
}
@@ -683,12 +680,14 @@
$pos += 2;
next;
}
+ return if $pos >= $end;
my $tag = substr($_[0], $pos++, 1);
if((unpack("C",$tag) & 0x1f) == 0x1f) {
my $b;
do {
+ return if $pos >= $end;
$tag .= substr($_[0],$pos++,1);
$b = ord substr($tag,-1);
} while($b & 0x80);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/lib/Convert/ASN1/_encode.pm
new/Convert-ASN1-0.29/lib/Convert/ASN1/_encode.pm
--- old/Convert-ASN1-0.27/lib/Convert/ASN1/_encode.pm 2014-06-25
20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/lib/Convert/ASN1/_encode.pm 2021-05-24
23:27:48.000000000 +0200
@@ -3,10 +3,7 @@
# modify it under the same terms as Perl itself.
package Convert::ASN1;
-{
- $Convert::ASN1::VERSION = '0.27';
-}
-
+$Convert::ASN1::VERSION = '0.29';
use strict;
use warnings;
@@ -196,13 +193,13 @@
require POSIX;
- # +oo (well we use HUGE_VAL as Infinity is not avaliable to perl)
+ # +oo (well we use HUGE_VAL as Infinity is not available to perl)
if ($_[3] >= POSIX::HUGE_VAL()) {
$_[4] .= pack("C*",0x01,0x40);
return;
}
- # -oo (well we use HUGE_VAL as Infinity is not avaliable to perl)
+ # -oo (well we use HUGE_VAL as Infinity is not available to perl)
if ($_[3] <= - POSIX::HUGE_VAL()) {
$_[4] .= pack("C*",0x01,0x41);
return;
@@ -234,7 +231,7 @@
_enc_integer(undef, undef, undef, $exponent, $eExp);
- # $eExp will br prefixed by a length byte
+ # $eExp will be prefixed by a length byte
if (5 > length $eExp) {
$eExp =~ s/\A.//s;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/lib/Convert/ASN1/parser.pm
new/Convert-ASN1-0.29/lib/Convert/ASN1/parser.pm
--- old/Convert-ASN1-0.27/lib/Convert/ASN1/parser.pm 2014-06-25
20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/lib/Convert/ASN1/parser.pm 2021-05-24
23:27:48.000000000 +0200
@@ -5,10 +5,7 @@
;# modify it under the same terms as Perl itself.
package Convert::ASN1::parser;
-{
- $Convert::ASN1::parser::VERSION = '0.27';
-}
-
+$Convert::ASN1::parser::VERSION = '0.29';
use strict;
use Convert::ASN1 qw(:all);
use vars qw(
@@ -754,7 +751,7 @@
;# do not contain duplicate tags
;#}
if ($op->[cTYPE] == opSET) {
- ;# In case we do CER encoding we order the SET elements by thier tags
+ ;# In case we do CER encoding we order the SET elements by their tags
my @tags = map {
length($_->[cTAG])
? $_->[cTAG]
@@ -785,7 +782,7 @@
;# once references have been resolved, and also due to
;# flattening of COMPONENTS, it is possible for an op
;# to appear in multiple places. So once an op is
- ;# compiled we bless it. This ensure we dont try to
+ ;# compiled we bless it. This ensure we don't try to
;# compile it again.
while(my($k,$v) = each %$tree) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/lib/Convert/ASN1.pm
new/Convert-ASN1-0.29/lib/Convert/ASN1.pm
--- old/Convert-ASN1-0.27/lib/Convert/ASN1.pm 2014-06-25 20:47:34.000000000
+0200
+++ new/Convert-ASN1-0.29/lib/Convert/ASN1.pm 2021-05-24 23:27:48.000000000
+0200
@@ -3,10 +3,7 @@
# modify it under the same terms as Perl itself.
package Convert::ASN1;
-{
- $Convert::ASN1::VERSION = '0.27';
-}
-
+$Convert::ASN1::VERSION = '0.29';
use 5.004;
use strict;
use vars qw($VERSION @ISA @EXPORT_OK %EXPORT_TAGS @opParts @opName $AUTOLOAD);
@@ -120,7 +117,7 @@
Carp::croak("Unsupported encoding format '$opt{encoding}'");
}
- # IMPLICIT as defalt for backwards compatibility, even though it's wrong.
+ # IMPLICIT as default for backwards compatibility, even though it's wrong.
$self->{options}{tagdefault} = uc($opt{tagdefault} || 'IMPLICIT');
unless ($self->{options}{tagdefault} =~ /^(?:EXPLICIT|IMPLICIT)$/) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/lib/Convert/ASN1.pod
new/Convert-ASN1-0.29/lib/Convert/ASN1.pod
--- old/Convert-ASN1-0.27/lib/Convert/ASN1.pod 2014-06-25 20:47:34.000000000
+0200
+++ new/Convert-ASN1-0.29/lib/Convert/ASN1.pod 2021-05-24 23:27:48.000000000
+0200
@@ -4,9 +4,9 @@
=head1 VERSION
-version 0.27
+version 0.29
-=head1 SYNOPSYS
+=head1 SYNOPSIS
use Convert::ASN1;
@@ -171,9 +171,9 @@
=head2 prepare ( ASN )
-Compile the given ASN.1 descripton which can be passed as a string
+Compile the given ASN.1 description which can be passed as a string
or as a filehandle. The syntax used is very close to ASN.1, but has
-a few differences. If the ASN decribes only one macro then encode/decode can be
+a few differences. If the ASN describes only one macro then encode/decode can
be
called on this object. If ASN describes more than one ASN.1 macro then C<find>
must be called. The method returns undef on error.
@@ -193,7 +193,7 @@
=head2 decode ( PDU )
-Decode the PDU, returns a reference to a hash containg the values for the PDU.
Returns
+Decode the PDU, returns a reference to a hash containing the values for the
PDU. Returns
undef if there was an error.
=head2 registeroid ( OID, HANDLER )
@@ -242,7 +242,7 @@
and new data will be appended starting at OFFSET.
If FH is a socket the asn_recv is used to read the element, so the same
-restiction applies if FH is a socket of type SOCK_DGRAM.
+restriction applies if FH is a socket of type SOCK_DGRAM.
=item asn_send ( SOCK, BUFFER, FLAGS, TO )
@@ -410,7 +410,7 @@
In the case of a SEQUENCE, SET or CHOICE then the value in the namespace will
-be a hash reference which will be the namespce for the elements with
+be a hash reference which will be the namespace for the elements with
that element.
# ASN.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/00prim.t
new/Convert-ASN1-0.29/t/00prim.t
--- old/Convert-ASN1-0.27/t/00prim.t 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/t/00prim.t 2021-05-24 23:27:48.000000000 +0200
@@ -8,7 +8,7 @@
print "1..186\n";
-BEGIN { require 't/funcs.pl' }
+BEGIN { require './t/funcs.pl' }
ntest 1, 129, asn_tag(ASN_CONTEXT, 1);
ntest 2, 0x201f, asn_tag(ASN_UNIVERSAL, 32);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/01tag.t
new/Convert-ASN1-0.29/t/01tag.t
--- old/Convert-ASN1-0.27/t/01tag.t 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/t/01tag.t 2021-05-24 23:27:48.000000000 +0200
@@ -5,7 +5,7 @@
#
use Convert::ASN1;
-BEGIN { require 't/funcs.pl' }
+BEGIN { require './t/funcs.pl' }
print "1..21\n";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/02seq.t
new/Convert-ASN1-0.29/t/02seq.t
--- old/Convert-ASN1-0.27/t/02seq.t 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/t/02seq.t 2021-05-24 23:27:48.000000000 +0200
@@ -5,7 +5,7 @@
#
use Convert::ASN1;
-BEGIN { require 't/funcs.pl' }
+BEGIN { require './t/funcs.pl' }
print "1..18\n";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/03seqof.t
new/Convert-ASN1-0.29/t/03seqof.t
--- old/Convert-ASN1-0.27/t/03seqof.t 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/t/03seqof.t 2021-05-24 23:27:48.000000000 +0200
@@ -4,7 +4,7 @@
# Test that the primitive operators are working
#
-BEGIN { require 't/funcs.pl' }
+BEGIN { require './t/funcs.pl' }
use Convert::ASN1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/04opt.t
new/Convert-ASN1-0.29/t/04opt.t
--- old/Convert-ASN1-0.27/t/04opt.t 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/t/04opt.t 2021-05-24 23:27:48.000000000 +0200
@@ -5,7 +5,7 @@
#
use Convert::ASN1;
-BEGIN { require 't/funcs.pl' }
+BEGIN { require './t/funcs.pl' }
print "1..16\n"; # This testcase needs more tests
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/05time.t
new/Convert-ASN1-0.29/t/05time.t
--- old/Convert-ASN1-0.27/t/05time.t 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/t/05time.t 2021-05-24 23:27:48.000000000 +0200
@@ -10,7 +10,7 @@
print "1..24\n";
-BEGIN { require 't/funcs.pl' }
+BEGIN { require './t/funcs.pl' }
my $t = 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/06bigint.t
new/Convert-ASN1-0.29/t/06bigint.t
--- old/Convert-ASN1-0.27/t/06bigint.t 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/t/06bigint.t 2021-05-24 23:27:48.000000000 +0200
@@ -5,7 +5,7 @@
#
use Convert::ASN1;
-BEGIN { require 't/funcs.pl' }
+BEGIN { require './t/funcs.pl' }
$^W=0 if $] < 5.005; # BigInt in 5.004 has undef issues
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/08set.t
new/Convert-ASN1-0.29/t/08set.t
--- old/Convert-ASN1-0.27/t/08set.t 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/t/08set.t 2021-05-24 23:27:48.000000000 +0200
@@ -5,7 +5,7 @@
#
use Convert::ASN1;
-BEGIN { require 't/funcs.pl' }
+BEGIN { require './t/funcs.pl' }
print "1..13\n";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/09contr.t
new/Convert-ASN1-0.29/t/09contr.t
--- old/Convert-ASN1-0.27/t/09contr.t 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/t/09contr.t 2021-05-24 23:27:48.000000000 +0200
@@ -5,7 +5,7 @@
#
use Convert::ASN1;
-BEGIN { require 't/funcs.pl' }
+BEGIN { require './t/funcs.pl' }
print "1..4\n";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/10choice.t
new/Convert-ASN1-0.29/t/10choice.t
--- old/Convert-ASN1-0.27/t/10choice.t 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/t/10choice.t 2021-05-24 23:27:48.000000000 +0200
@@ -5,7 +5,7 @@
#
use Convert::ASN1;
-BEGIN { require 't/funcs.pl' }
+BEGIN { require './t/funcs.pl' }
print "1..10\n";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/11explicit.t
new/Convert-ASN1-0.29/t/11explicit.t
--- old/Convert-ASN1-0.27/t/11explicit.t 2014-06-25 20:47:34.000000000
+0200
+++ new/Convert-ASN1-0.29/t/11explicit.t 2021-05-24 23:27:48.000000000
+0200
@@ -1,6 +1,6 @@
#!/usr/local/bin/perl
-BEGIN { require 't/funcs.pl' }
+BEGIN { require './t/funcs.pl' }
use Convert::ASN1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/11indef.t
new/Convert-ASN1-0.29/t/11indef.t
--- old/Convert-ASN1-0.27/t/11indef.t 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/t/11indef.t 2021-05-24 23:27:48.000000000 +0200
@@ -4,7 +4,7 @@
# Test that indefinite length encodings can be decoded
#
-BEGIN { require 't/funcs.pl' }
+BEGIN { require './t/funcs.pl' }
use Convert::ASN1;
my @zz = ( 0, 0 );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/12der.t
new/Convert-ASN1-0.29/t/12der.t
--- old/Convert-ASN1-0.27/t/12der.t 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/t/12der.t 2021-05-24 23:27:48.000000000 +0200
@@ -5,7 +5,7 @@
#
use Convert::ASN1;
-BEGIN { require 't/funcs.pl' }
+BEGIN { require './t/funcs.pl' }
print "1..18\n";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/13utf8.t
new/Convert-ASN1-0.29/t/13utf8.t
--- old/Convert-ASN1-0.27/t/13utf8.t 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/t/13utf8.t 2021-05-24 23:27:48.000000000 +0200
@@ -5,7 +5,7 @@
#
use Convert::ASN1;
-BEGIN { require 't/funcs.pl' }
+BEGIN { require './t/funcs.pl' }
if ($] < 5.007) {
print "1..0\n";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/14any.t
new/Convert-ASN1-0.29/t/14any.t
--- old/Convert-ASN1-0.27/t/14any.t 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/t/14any.t 2021-05-24 23:27:48.000000000 +0200
@@ -4,7 +4,7 @@
# Check whether the ANY DEFINED BY syntax is working
#
-BEGIN { require 't/funcs.pl'}
+BEGIN { require './t/funcs.pl'}
use Convert::ASN1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/15extseq.t
new/Convert-ASN1-0.29/t/15extseq.t
--- old/Convert-ASN1-0.27/t/15extseq.t 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/t/15extseq.t 2021-05-24 23:27:48.000000000 +0200
@@ -5,7 +5,7 @@
#
use Convert::ASN1;
-BEGIN { require 't/funcs.pl' }
+BEGIN { require './t/funcs.pl' }
print "1..27\n";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/16extset.t
new/Convert-ASN1-0.29/t/16extset.t
--- old/Convert-ASN1-0.27/t/16extset.t 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/t/16extset.t 2021-05-24 23:27:48.000000000 +0200
@@ -5,7 +5,7 @@
#
use Convert::ASN1;
-BEGIN { require 't/funcs.pl' }
+BEGIN { require './t/funcs.pl' }
print "1..27\n";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/17extchoice.t
new/Convert-ASN1-0.29/t/17extchoice.t
--- old/Convert-ASN1-0.27/t/17extchoice.t 2014-06-25 20:47:34.000000000
+0200
+++ new/Convert-ASN1-0.29/t/17extchoice.t 2021-05-24 23:27:48.000000000
+0200
@@ -5,7 +5,7 @@
#
use Convert::ASN1;
-BEGIN { require 't/funcs.pl' }
+BEGIN { require './t/funcs.pl' }
print "1..19\n";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/18tagdefault.t
new/Convert-ASN1-0.29/t/18tagdefault.t
--- old/Convert-ASN1-0.27/t/18tagdefault.t 2014-06-25 20:47:34.000000000
+0200
+++ new/Convert-ASN1-0.29/t/18tagdefault.t 2021-05-24 23:27:48.000000000
+0200
@@ -5,7 +5,7 @@
#
use Convert::ASN1;
-BEGIN { require 't/funcs.pl' }
+BEGIN { require './t/funcs.pl' }
print "1..25\n";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/19issue14.t
new/Convert-ASN1-0.29/t/19issue14.t
--- old/Convert-ASN1-0.27/t/19issue14.t 1970-01-01 01:00:00.000000000 +0100
+++ new/Convert-ASN1-0.29/t/19issue14.t 2021-05-24 23:27:48.000000000 +0200
@@ -0,0 +1,14 @@
+use Convert::ASN1;
+use Test::More tests => 2;
+
+my $asn = Convert::ASN1->new;
+$asn->prepare(q<
+ [APPLICATION 7] SEQUENCE {
+ int INTEGER
+ }
+>);
+my $out;
+$out = $asn->decode( pack("H*", "dfccd3fde3") );
+ok($out == "");
+$out = $asn->decode( pack("H*", "b0805f92cb") );
+ok($out == "");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/99misc.t
new/Convert-ASN1-0.29/t/99misc.t
--- old/Convert-ASN1-0.27/t/99misc.t 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/t/99misc.t 2021-05-24 23:27:48.000000000 +0200
@@ -5,7 +5,7 @@
#
use Convert::ASN1;
-BEGIN { require 't/funcs.pl' }
+BEGIN { require './t/funcs.pl' }
print "1..2\n";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Convert-ASN1-0.27/t/x509.t
new/Convert-ASN1-0.29/t/x509.t
--- old/Convert-ASN1-0.27/t/x509.t 2014-06-25 20:47:34.000000000 +0200
+++ new/Convert-ASN1-0.29/t/x509.t 2021-05-24 23:27:48.000000000 +0200
@@ -2,7 +2,7 @@
print "1..26\n";
-BEGIN { require 't/funcs.pl' }
+BEGIN { require './t/funcs.pl' }
use Convert::ASN1;
++++++ cpanspec.yml ++++++
--- /var/tmp/diff_new_pack.Ishc4W/_old 2021-06-05 23:31:10.696401050 +0200
+++ /var/tmp/diff_new_pack.Ishc4W/_new 2021-06-05 23:31:10.696401050 +0200
@@ -1,4 +1,3 @@
---
patches:
Convert-ASN1-0.22-test.diff:
- perl-Convert-ASN1-CVE-2013-7488.patch: