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:

Reply via email to