[libgnupg-interface-perl] 01/02: enable use of in-band passwords as well as agent

Daniel Kahn Gillmor dkg at fifthhorseman.net
Wed Oct 12 02:33:37 UTC 2016


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch move-to-modern-gnupg
in repository libgnupg-interface-perl.

commit 816a17af4cfd749e83dbcbbef343fb6054c06c8c
Author: Daniel Kahn Gillmor <dkg at fifthhorseman.net>
Date:   Tue Oct 11 21:46:56 2016 -0400

    enable use of in-band passwords as well as agent
---
 .../0009-clean-up-trailing-whitespace.patch        | 112 ++++++++
 .../patches/0010-fix-capitalization-of-GnuPG.patch |  35 +++
 .../0011-ommand_args-should-be-command_args.patch  |  21 ++
 ...rints-as-inputs-during-tests-to-demonstra.patch | 265 ++++++++++++++++++
 .../0013-move-key-files-to-generic-names.patch     |  33 +++
 ...0014-fix-spelling-s-convience-convenience.patch |  53 ++++
 ...-new-secret-key-with-different-passphrase.patch | 117 ++++++++
 ...-gpg-without-explicit-passphrase-agent-pi.patch | 302 +++++++++++++++++++++
 debian/patches/series                              |   8 +
 9 files changed, 946 insertions(+)

diff --git a/debian/patches/0009-clean-up-trailing-whitespace.patch b/debian/patches/0009-clean-up-trailing-whitespace.patch
new file mode 100644
index 0000000..f408c65
--- /dev/null
+++ b/debian/patches/0009-clean-up-trailing-whitespace.patch
@@ -0,0 +1,112 @@
+From: Daniel Kahn Gillmor <dkg at fifthhorseman.net>
+Date: Tue, 11 Oct 2016 19:52:13 -0400
+Subject: clean up trailing whitespace
+
+---
+ lib/GnuPG/Fingerprint.pm |  2 +-
+ lib/GnuPG/Handles.pm     |  2 +-
+ lib/GnuPG/Interface.pm   | 16 ++++++++--------
+ 3 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/lib/GnuPG/Fingerprint.pm b/lib/GnuPG/Fingerprint.pm
+index fcb1028..81c38a7 100644
+--- a/lib/GnuPG/Fingerprint.pm
++++ b/lib/GnuPG/Fingerprint.pm
+@@ -20,7 +20,7 @@ with qw(GnuPG::HashInit);
+ 
+ has as_hex_string => (
+     isa => 'Any',
+-    is  => 'rw',        
++    is  => 'rw',
+ );
+ 
+ sub compare {
+diff --git a/lib/GnuPG/Handles.pm b/lib/GnuPG/Handles.pm
+index b30ca57..3eee0e3 100644
+--- a/lib/GnuPG/Handles.pm
++++ b/lib/GnuPG/Handles.pm
+@@ -73,7 +73,7 @@ GnuPG::Handles - GnuPG handles bundle
+     = ( IO::Handle->new(), IO::Handle->new(), IO::Handle->new(),
+         IO::Handle->new(), IO::Handle->new(), IO::Handle->new(),
+       );
+- 
++
+   my $handles = GnuPG::Handles->new
+     ( stdin      => $stdin,
+       stdout     => $stdout,
+diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
+index 1f1e6d5..19e8070 100644
+--- a/lib/GnuPG/Interface.pm
++++ b/lib/GnuPG/Interface.pm
+@@ -833,7 +833,7 @@ GnuPG::Interface - Perl interface to GnuPG
+   # A simple example
+   use IO::Handle;
+   use GnuPG::Interface;
+-  
++
+   # setting up the situation
+   my $gnupg = GnuPG::Interface->new();
+   $gnupg->options->hash_init( armor   => 1,
+@@ -852,7 +852,7 @@ GnuPG::Interface - Perl interface to GnuPG
+   # Now we'll go about encrypting with the options already set
+   my @plaintext = ( 'foobar' );
+   my $pid = $gnupg->encrypt( handles => $handles );
+-  
++
+   # Now we write to the input of GnuPG
+   print $input @plaintext;
+   close $input;
+@@ -1144,7 +1144,7 @@ The following setup can be done before any of the following examples:
+ 
+   my $handles = GnuPG::Handles->new( stdin    => $input,
+                                      stdout   => $output );
+-   
++
+   # this sets up the communication
+   # Note that the recipients were specified earlier
+   # in the 'options' data member of the $gnupg object.
+@@ -1220,7 +1220,7 @@ The following setup can be done before any of the following examples:
+   # a file written to disk
+   # Make sure you "use IO::File" if you use this module!
+   my $cipher_file = IO::File->new( 'encrypted.gpg' );
+-   
++
+   # this sets up the communication
+   my $pid = $gnupg->decrypt( handles => $handles );
+ 
+@@ -1252,7 +1252,7 @@ The following setup can be done before any of the following examples:
+   # This time we'll just let GnuPG print to our own output
+   # and read from our input, because no input is needed!
+   my $handles = GnuPG::Handles->new();
+-  
++
+   my @ids = ( 'ftobin', '0xABCD1234' );
+ 
+   # this time we need to specify something for
+@@ -1260,7 +1260,7 @@ The following setup can be done before any of the following examples:
+   # search ids as arguments
+   my $pid = $gnupg->list_public_keys( handles      => $handles,
+                                       command_args => [ @ids ] );
+-  
++
+    waitpid $pid, 0;
+ 
+ =head2 Creating GnuPG::PublicKey Objects
+@@ -1280,7 +1280,7 @@ The following setup can be done before any of the following examples:
+       command_args => [ qw( test/key.1.asc ) ],
+       handles      => $handles,
+     );
+-    
++
+     my @out = <$handles->stdout()>;
+     waitpid $pid, 0;
+ 
+@@ -1357,7 +1357,7 @@ under the same terms as Perl itself.
+ 
+ =head1 AUTHOR
+ 
+-GnuPg::Interface is currently maintained by Jesse Vincent <jesse at cpan.org>.  
++GnuPg::Interface is currently maintained by Jesse Vincent <jesse at cpan.org>.
+ 
+ Frank J. Tobin, ftobin at cpan.org was the original author of the package.
+ 
diff --git a/debian/patches/0010-fix-capitalization-of-GnuPG.patch b/debian/patches/0010-fix-capitalization-of-GnuPG.patch
new file mode 100644
index 0000000..f55d4b1
--- /dev/null
+++ b/debian/patches/0010-fix-capitalization-of-GnuPG.patch
@@ -0,0 +1,35 @@
+From: Daniel Kahn Gillmor <dkg at fifthhorseman.net>
+Date: Tue, 11 Oct 2016 19:52:58 -0400
+Subject: fix capitalization of GnuPG
+
+---
+ README                 | 2 +-
+ lib/GnuPG/Interface.pm | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/README b/README
+index f457577..aa7c984 100644
+--- a/README
++++ b/README
+@@ -427,7 +427,7 @@ LICENSE
+     under the same terms as Perl itself.
+ 
+ AUTHOR
+-    GnuPg::Interface is currently maintained by Jesse Vincent
++    GnuPG::Interface is currently maintained by Jesse Vincent
+     <jesse at cpan.org>.
+ 
+     Frank J. Tobin, ftobin at cpan.org was the original author of the package.
+diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
+index 19e8070..cf7138f 100644
+--- a/lib/GnuPG/Interface.pm
++++ b/lib/GnuPG/Interface.pm
+@@ -1357,7 +1357,7 @@ under the same terms as Perl itself.
+ 
+ =head1 AUTHOR
+ 
+-GnuPg::Interface is currently maintained by Jesse Vincent <jesse at cpan.org>.
++GnuPG::Interface is currently maintained by Jesse Vincent <jesse at cpan.org>.
+ 
+ Frank J. Tobin, ftobin at cpan.org was the original author of the package.
+ 
diff --git a/debian/patches/0011-ommand_args-should-be-command_args.patch b/debian/patches/0011-ommand_args-should-be-command_args.patch
new file mode 100644
index 0000000..a9ab737
--- /dev/null
+++ b/debian/patches/0011-ommand_args-should-be-command_args.patch
@@ -0,0 +1,21 @@
+From: Daniel Kahn Gillmor <dkg at fifthhorseman.net>
+Date: Tue, 11 Oct 2016 19:57:10 -0400
+Subject: ommand_args should be command_args
+
+---
+ t/list_public_keys.t | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/t/list_public_keys.t b/t/list_public_keys.t
+index 7e563c1..a36a78b 100644
+--- a/t/list_public_keys.t
++++ b/t/list_public_keys.t
+@@ -38,7 +38,7 @@ TEST
+     reset_handles();
+ 
+     my $pid = $gnupg->list_public_keys( handles     => $handles,
+-                                        ommand_args => '0xF950DA9C'
++                                        command_args => '0xF950DA9C'
+                                       );
+     close $stdin;
+ 
diff --git a/debian/patches/0012-use-fingerprints-as-inputs-during-tests-to-demonstra.patch b/debian/patches/0012-use-fingerprints-as-inputs-during-tests-to-demonstra.patch
new file mode 100644
index 0000000..9694e08
--- /dev/null
+++ b/debian/patches/0012-use-fingerprints-as-inputs-during-tests-to-demonstra.patch
@@ -0,0 +1,265 @@
+From: Daniel Kahn Gillmor <dkg at fifthhorseman.net>
+Date: Tue, 11 Oct 2016 20:05:16 -0400
+Subject: use fingerprints as inputs during tests to demonstrate explicit usage
+
+---
+ README                 | 6 +++---
+ lib/GnuPG/Interface.pm | 6 +++---
+ lib/GnuPG/Options.pm   | 2 +-
+ t/MyTestSpecific.pm    | 2 +-
+ t/encrypt.t            | 6 +++---
+ t/export_keys.t        | 4 ++--
+ t/get_public_keys.t    | 2 +-
+ t/get_secret_keys.t    | 2 +-
+ t/list_public_keys.t   | 4 ++--
+ t/list_secret_keys.t   | 4 ++--
+ t/list_sigs.t          | 4 ++--
+ t/sign_and_encrypt.t   | 2 +-
+ 12 files changed, 22 insertions(+), 22 deletions(-)
+
+diff --git a/README b/README
+index aa7c984..ed94ede 100644
+--- a/README
++++ b/README
+@@ -228,7 +228,7 @@ EXAMPLES
+ 
+       $gnupg->options->hash_init( armor    => 1,
+                                   recipients => [ 'ftobin at uiuc.edu',
+-                                                  '0xABCD1234' ],
++                                                  '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' ],
+                                   meta_interactive => 0 ,
+                                 );
+ 
+@@ -347,7 +347,7 @@ EXAMPLES
+       # and read from our input, because no input is needed!
+       my $handles = GnuPG::Handles->new();
+   
+-      my @ids = ( 'ftobin', '0xABCD1234' );
++      my @ids = ( 'ftobin', '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' );
+ 
+       # this time we need to specify something for
+       # command_args because --list-public-keys takes
+@@ -358,7 +358,7 @@ EXAMPLES
+        waitpid $pid, 0;
+ 
+   Creating GnuPG::PublicKey Objects
+-      my @ids = [ 'ftobin', '0xABCD1234' ];
++      my @ids = [ 'ftobin', '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' ];
+ 
+       my @keys = $gnupg->get_public_keys( @ids );
+ 
+diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
+index cf7138f..6eaef7d 100644
+--- a/lib/GnuPG/Interface.pm
++++ b/lib/GnuPG/Interface.pm
+@@ -1130,7 +1130,7 @@ The following setup can be done before any of the following examples:
+ 
+   $gnupg->options->hash_init( armor    => 1,
+                               recipients => [ 'ftobin at uiuc.edu',
+-                                              '0xABCD1234' ],
++                                              '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' ],
+                               meta_interactive => 0 ,
+                             );
+ 
+@@ -1253,7 +1253,7 @@ The following setup can be done before any of the following examples:
+   # and read from our input, because no input is needed!
+   my $handles = GnuPG::Handles->new();
+ 
+-  my @ids = ( 'ftobin', '0xABCD1234' );
++  my @ids = ( 'ftobin', '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' );
+ 
+   # this time we need to specify something for
+   # command_args because --list-public-keys takes
+@@ -1265,7 +1265,7 @@ The following setup can be done before any of the following examples:
+ 
+ =head2 Creating GnuPG::PublicKey Objects
+ 
+-  my @ids = [ 'ftobin', '0xABCD1234' ];
++  my @ids = [ 'ftobin', '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' ];
+ 
+   my @keys = $gnupg->get_public_keys( @ids );
+ 
+diff --git a/lib/GnuPG/Options.pm b/lib/GnuPG/Options.pm
+index 86261a0..7788662 100644
+--- a/lib/GnuPG/Options.pm
++++ b/lib/GnuPG/Options.pm
+@@ -198,7 +198,7 @@ GnuPG::Options - GnuPG options embodiment
+ 
+   # assuming $gnupg is a GnuPG::Interface object
+   $gnupg->options->armor( 1 );
+-  $gnupg->options->push_recipients( 'ftobin', '0xABCD1234' );
++  $gnupg->options->push_recipients( 'ftobin', '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' );
+ 
+ =head1 DESCRIPTION
+ 
+diff --git a/t/MyTestSpecific.pm b/t/MyTestSpecific.pm
+index a309698..c8764cc 100644
+--- a/t/MyTestSpecific.pm
++++ b/t/MyTestSpecific.pm
+@@ -46,7 +46,7 @@ $gpg_is_modern = ($version[0] > 2 || ($version[0] == 2 && $version[1] >= 1));
+ $gnupg->options->hash_init( homedir              => 'test/gnupghome',
+                             armor                => 1,
+                             meta_interactive     => 0,
+-                            meta_signing_key_id  => '0xF950DA9C',
++                            meta_signing_key_id  => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C',
+                             always_trust         => 1,
+                           );
+ 
+diff --git a/t/encrypt.t b/t/encrypt.t
+index 3183ac4..e6bdc08 100644
+--- a/t/encrypt.t
++++ b/t/encrypt.t
+@@ -27,7 +27,7 @@ TEST
+ 
+     $gnupg->options->clear_recipients();
+     $gnupg->options->clear_meta_recipients_keys();
+-    $gnupg->options->push_recipients( '0x2E854A6B' );
++    $gnupg->options->push_recipients( '0x7466B7E98C4CCB64C2CE738BADB99D9C2E854A6B' );
+ 
+     my $pid = $gnupg->encrypt( handles => $handles );
+ 
+@@ -43,7 +43,7 @@ TEST
+ {
+     reset_handles();
+ 
+-    my @keys = $gnupg->get_public_keys( '0xF950DA9C' );
++    my @keys = $gnupg->get_public_keys( '0x93AFC4B1B0288A104996B44253AE596EF950DA9C' );
+     $gnupg->options->clear_recipients();
+     $gnupg->options->clear_meta_recipients_keys();
+     $gnupg->options->push_meta_recipients_keys( @keys );
+@@ -64,7 +64,7 @@ TEST
+ 
+     $gnupg->options->clear_recipients();
+     $gnupg->options->clear_meta_recipients_keys();
+-    $gnupg->options->push_recipients( '0x2E854A6B' );
++    $gnupg->options->push_recipients( '0x7466B7E98C4CCB64C2CE738BADB99D9C2E854A6B' );
+ 
+     $handles->stdin( $texts{plain}->fh() );
+     $handles->options( 'stdin' )->{direct} = 1;
+diff --git a/t/export_keys.t b/t/export_keys.t
+index cf5c82b..5add064 100644
+--- a/t/export_keys.t
++++ b/t/export_keys.t
+@@ -15,7 +15,7 @@ TEST
+     reset_handles();
+ 
+     my $pid = $gnupg->export_keys( handles      => $handles,
+-                                   command_args => '0xF950DA9C' );
++                                   command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C' );
+     close $stdin;
+     waitpid $pid, 0;
+ 
+@@ -31,7 +31,7 @@ TEST
+     $handles->options( 'stdout' )->{direct} = 1;
+ 
+     my $pid = $gnupg->export_keys( handles            => $handles,
+-                                   command_args => '0xF950DA9C' );
++                                   command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C' );
+     waitpid $pid, 0;
+     return $CHILD_ERROR == 0;
+ };
+diff --git a/t/get_public_keys.t b/t/get_public_keys.t
+index 9e96f7d..7893625 100644
+--- a/t/get_public_keys.t
++++ b/t/get_public_keys.t
+@@ -19,7 +19,7 @@ TEST
+ {
+     reset_handles();
+ 
+-    my @returned_keys = $gnupg->get_public_keys_with_sigs( '0xF950DA9C' );
++    my @returned_keys = $gnupg->get_public_keys_with_sigs( '0x93AFC4B1B0288A104996B44253AE596EF950DA9C' );
+ 
+     return 0 unless @returned_keys == 1;
+ 
+diff --git a/t/get_secret_keys.t b/t/get_secret_keys.t
+index c798cce..a7f1348 100644
+--- a/t/get_secret_keys.t
++++ b/t/get_secret_keys.t
+@@ -18,7 +18,7 @@ TEST
+ {
+     reset_handles();
+ 
+-    my @returned_keys = $gnupg->get_secret_keys( '0xF950DA9C' );
++    my @returned_keys = $gnupg->get_secret_keys( '0x93AFC4B1B0288A104996B44253AE596EF950DA9C' );
+ 
+     return 0 unless @returned_keys == 1;
+ 
+diff --git a/t/list_public_keys.t b/t/list_public_keys.t
+index a36a78b..622b092 100644
+--- a/t/list_public_keys.t
++++ b/t/list_public_keys.t
+@@ -38,7 +38,7 @@ TEST
+     reset_handles();
+ 
+     my $pid = $gnupg->list_public_keys( handles     => $handles,
+-                                        command_args => '0xF950DA9C'
++                                        command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C'
+                                       );
+     close $stdin;
+ 
+@@ -64,7 +64,7 @@ TEST
+     $handles->options( 'stdout' )->{direct} = 1;
+ 
+     my $pid = $gnupg->list_public_keys( handles      => $handles,
+-                                        command_args => '0xF950DA9C',
++                                        command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C',
+                                       );
+ 
+     waitpid $pid, 0;
+diff --git a/t/list_secret_keys.t b/t/list_secret_keys.t
+index 51e3651..7040c38 100644
+--- a/t/list_secret_keys.t
++++ b/t/list_secret_keys.t
+@@ -55,7 +55,7 @@ TEST
+     reset_handles();
+ 
+     my $pid = $gnupg->list_secret_keys( handles      => $handles,
+-                                        command_args => '0xF950DA9C' );
++                                        command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C' );
+     close $stdin;
+ 
+     $outfile = 'test/secret-keys/2.out';
+@@ -80,7 +80,7 @@ TEST
+     $handles->options( 'stdout' )->{direct} = 1;
+ 
+     my $pid = $gnupg->list_secret_keys( handles      => $handles,
+-                                        command_args => '0xF950DA9C' );
++                                        command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C' );
+ 
+     waitpid $pid, 0;
+ 
+diff --git a/t/list_sigs.t b/t/list_sigs.t
+index 16cfa6a..1301fb2 100644
+--- a/t/list_sigs.t
++++ b/t/list_sigs.t
+@@ -36,7 +36,7 @@ TEST
+     reset_handles();
+ 
+     my $pid = $gnupg->list_sigs( handles      => $handles,
+-                                 command_args => '0xF950DA9C',
++                                 command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C',
+                                );
+     close $stdin;
+ 
+@@ -60,7 +60,7 @@ TEST
+     $handles->options( 'stdout' )->{direct} = 1;
+ 
+     my $pid = $gnupg->list_sigs( handles      => $handles,
+-                                 command_args => '0xF950DA9C',
++                                 command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C',
+                                );
+ 
+     waitpid $pid, 0;
+diff --git a/t/sign_and_encrypt.t b/t/sign_and_encrypt.t
+index 5dc1c08..df0fc75 100644
+--- a/t/sign_and_encrypt.t
++++ b/t/sign_and_encrypt.t
+@@ -14,7 +14,7 @@ TEST
+ {
+     reset_handles();
+ 
+-    $gnupg->options->push_recipients( '0x2E854A6B' );
++    $gnupg->options->push_recipients( '0x7466B7E98C4CCB64C2CE738BADB99D9C2E854A6B' );
+     my $pid = $gnupg->sign_and_encrypt( handles => $handles );
+ 
+     print $stdin @{ $texts{plain}->data() };
diff --git a/debian/patches/0013-move-key-files-to-generic-names.patch b/debian/patches/0013-move-key-files-to-generic-names.patch
new file mode 100644
index 0000000..489e685
--- /dev/null
+++ b/debian/patches/0013-move-key-files-to-generic-names.patch
@@ -0,0 +1,33 @@
+From: Daniel Kahn Gillmor <dkg at fifthhorseman.net>
+Date: Tue, 11 Oct 2016 20:17:49 -0400
+Subject: move key files to generic names
+
+---
+ t/000_setup.t                         |   2 +-
+ test/{pubring.gpg => public_keys.pgp} | Bin
+ test/{secring.gpg => secret_keys.pgp} | Bin
+ 3 files changed, 1 insertion(+), 1 deletion(-)
+ rename test/{pubring.gpg => public_keys.pgp} (100%)
+ rename test/{secring.gpg => secret_keys.pgp} (100%)
+
+diff --git a/t/000_setup.t b/t/000_setup.t
+index 7f7f7b0..a8e3042 100644
+--- a/t/000_setup.t
++++ b/t/000_setup.t
+@@ -19,7 +19,7 @@ TEST
+     copy('test/gpg.conf', 'test/gnupghome/gpg.conf');
+     reset_handles();
+ 
+-    my $pid = $gnupg->import_keys(command_args => [ 'test/pubring.gpg', 'test/secring.gpg' ],
++    my $pid = $gnupg->import_keys(command_args => [ 'test/public_keys.pgp', 'test/secret_keys.pgp' ],
+                                   options => [ 'batch'],
+                                   handles => $handles);
+     waitpid $pid, 0;
+diff --git a/test/pubring.gpg b/test/public_keys.pgp
+similarity index 100%
+rename from test/pubring.gpg
+rename to test/public_keys.pgp
+diff --git a/test/secring.gpg b/test/secret_keys.pgp
+similarity index 100%
+rename from test/secring.gpg
+rename to test/secret_keys.pgp
diff --git a/debian/patches/0014-fix-spelling-s-convience-convenience.patch b/debian/patches/0014-fix-spelling-s-convience-convenience.patch
new file mode 100644
index 0000000..ee809b6
--- /dev/null
+++ b/debian/patches/0014-fix-spelling-s-convience-convenience.patch
@@ -0,0 +1,53 @@
+From: Daniel Kahn Gillmor <dkg at fifthhorseman.net>
+Date: Tue, 11 Oct 2016 20:25:48 -0400
+Subject: fix spelling: s/convience/convenience/
+
+---
+ README                 | 4 ++--
+ lib/GnuPG/Interface.pm | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/README b/README
+index ed94ede..a05ef9b 100644
+--- a/README
++++ b/README
+@@ -143,7 +143,7 @@ OBJECT METHODS
+         does not come into play. If the passphrase data member handle of the
+         handles object is not defined, but the the passphrase data member
+         handle of GnuPG::Interface object is, GnuPG::Interface will handle
+-        passing this information into GnuPG for the user as a convience.
++        passing this information into GnuPG for the user as a convenience.
+         Note that this will result in GnuPG::Interface storing the
+         passphrase in memory, instead of having it simply 'pass-through' to
+         GnuPG via a handle.
+@@ -271,7 +271,7 @@ EXAMPLES
+                                        );
+ 
+       # indicate our pasphrase through the
+-      # convience method
++      # convenience method
+       $gnupg->passphrase( $passphrase );
+ 
+       # this sets up the communication
+diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
+index 6eaef7d..29205f0 100644
+--- a/lib/GnuPG/Interface.pm
++++ b/lib/GnuPG/Interface.pm
+@@ -1008,7 +1008,7 @@ and so this information is not generated and does not come into play.
+ If the B<passphrase> data member handle of the B<handles> object
+ is not defined, but the the B<passphrase> data member handle of GnuPG::Interface
+ object is, GnuPG::Interface will handle passing this information into GnuPG
+-for the user as a convience.  Note that this will result in
++for the user as a convenience.  Note that this will result in
+ GnuPG::Interface storing the passphrase in memory, instead of having
+ it simply 'pass-through' to GnuPG via a handle.
+ 
+@@ -1175,7 +1175,7 @@ The following setup can be done before any of the following examples:
+ 				   );
+ 
+   # indicate our pasphrase through the
+-  # convience method
++  # convenience method
+   $gnupg->passphrase( $passphrase );
+ 
+   # this sets up the communication
diff --git a/debian/patches/0015-added-new-secret-key-with-different-passphrase.patch b/debian/patches/0015-added-new-secret-key-with-different-passphrase.patch
new file mode 100644
index 0000000..fcf20c1
--- /dev/null
+++ b/debian/patches/0015-added-new-secret-key-with-different-passphrase.patch
@@ -0,0 +1,117 @@
+From: Daniel Kahn Gillmor <dkg at fifthhorseman.net>
+Date: Tue, 11 Oct 2016 20:59:43 -0400
+Subject: added new secret key with different passphrase
+
+Adding a new secret key with a different passphrase should allow us to
+differentiate between passing the passphrase explicitly and relying on
+the agent + pinentry.
+---
+ t/000_setup.t                  |  2 +-
+ test/new_secret.pgp            | 58 ++++++++++++++++++++++++++++++++++++++++++
+ test/secret-keys/1.0.test      |  4 +++
+ test/secret-keys/1.modern.test |  5 ++++
+ 4 files changed, 68 insertions(+), 1 deletion(-)
+ create mode 100644 test/new_secret.pgp
+
+diff --git a/t/000_setup.t b/t/000_setup.t
+index a8e3042..b183241 100644
+--- a/t/000_setup.t
++++ b/t/000_setup.t
+@@ -19,7 +19,7 @@ TEST
+     copy('test/gpg.conf', 'test/gnupghome/gpg.conf');
+     reset_handles();
+ 
+-    my $pid = $gnupg->import_keys(command_args => [ 'test/public_keys.pgp', 'test/secret_keys.pgp' ],
++    my $pid = $gnupg->import_keys(command_args => [ 'test/public_keys.pgp', 'test/secret_keys.pgp', 'test/new_secret.pgp' ],
+                                   options => [ 'batch'],
+                                   handles => $handles);
+     waitpid $pid, 0;
+diff --git a/test/new_secret.pgp b/test/new_secret.pgp
+new file mode 100644
+index 0000000..5feb72c
+--- /dev/null
++++ b/test/new_secret.pgp
+@@ -0,0 +1,58 @@
++-----BEGIN PGP PRIVATE KEY BLOCK-----
++
++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
++=ftgB
++-----END PGP PRIVATE KEY BLOCK-----
+diff --git a/test/secret-keys/1.0.test b/test/secret-keys/1.0.test
+index 129d472..f8239a9 100644
+--- a/test/secret-keys/1.0.test
++++ b/test/secret-keys/1.0.test
+@@ -5,3 +5,7 @@ uid                  GnuPG test key (for testing purposes only)
+ uid                  Foo Bar (1)
+ ssb    768g/2E854A6B 2000-02-06
+ 
++sec   2048R/B6747DDC 2016-10-12
++uid                  GnuPG::Interface Test key <test at example.org>
++ssb   2048R/AE441D0F 2016-10-12
++
+diff --git a/test/secret-keys/1.modern.test b/test/secret-keys/1.modern.test
+index 3e46407..42b27a1 100644
+--- a/test/secret-keys/1.modern.test
++++ b/test/secret-keys/1.modern.test
+@@ -6,3 +6,8 @@ uid           [ unknown] GnuPG test key (for testing purposes only)
+ uid           [ unknown] Foo Bar (1)
+ ssb   elg768 2000-02-06 [E]
+ 
++sec   rsa2048 2016-10-12 [SC]
++      278F850AA702911F1318F0A61B913CE9B6747DDC
++uid           [ unknown] GnuPG::Interface Test key <test at example.org>
++ssb   rsa2048 2016-10-12 [E]
++
diff --git a/debian/patches/0016-Test-use-of-gpg-without-explicit-passphrase-agent-pi.patch b/debian/patches/0016-Test-use-of-gpg-without-explicit-passphrase-agent-pi.patch
new file mode 100644
index 0000000..21e6294
--- /dev/null
+++ b/debian/patches/0016-Test-use-of-gpg-without-explicit-passphrase-agent-pi.patch
@@ -0,0 +1,302 @@
+From: Daniel Kahn Gillmor <dkg at fifthhorseman.net>
+Date: Tue, 11 Oct 2016 21:29:22 -0400
+Subject: Test use of gpg without explicit passphrase (agent+pinentry)
+
+The modern GnuPG suite encourages the use of gpg-agent to control
+access to secret key material.  In this use case, we avoid setting an
+explicit passphrase in code, and rely on either a correctly-configured
+and primed gpg-agent or a dedicated pinentry program to supply the
+passphrase.
+
+This additional test verifies that the passphrase can be handled by
+the agent.  Note that the passphrase for this additional test key is
+*not* the default passphrase, so this test should fail in the event
+that gpg can't use the agent and the pinentry for this task.
+
+Unfortunately, this all assumes that we're using GnuPG "Modern".  I've
+noted concerns about writing forward- and backward-compatible bindings
+for GnuPG here:
+https://lists.gnupg.org/pipermail/gnupg-devel/2016-October/031800.html
+---
+ README                 | 41 +++++++++++++++++++++++++++--------------
+ lib/GnuPG/Interface.pm | 26 +++++++++++++++++++++++++-
+ t/MyTestSpecific.pm    | 10 ++++++++--
+ t/decrypt.t            | 27 +++++++++++++++++++++++++++
+ test/encrypted.2.gpg   | 12 ++++++++++++
+ test/fake-pinentry.pl  |  2 +-
+ test/plain.2.txt       |  1 +
+ 7 files changed, 101 insertions(+), 18 deletions(-)
+ create mode 100644 test/encrypted.2.gpg
+ create mode 100644 test/plain.2.txt
+
+diff --git a/README b/README
+index a05ef9b..be06ef3 100644
+--- a/README
++++ b/README
+@@ -5,7 +5,7 @@ SYNOPSIS
+       # A simple example
+       use IO::Handle;
+       use GnuPG::Interface;
+-  
++
+       # setting up the situation
+       my $gnupg = GnuPG::Interface->new();
+       $gnupg->options->hash_init( armor   => 1,
+@@ -24,7 +24,7 @@ SYNOPSIS
+       # Now we'll go about encrypting with the options already set
+       my @plaintext = ( 'foobar' );
+       my $pid = $gnupg->encrypt( handles => $handles );
+-  
++
+       # Now we write to the input of GnuPG
+       print $input @plaintext;
+       close $input;
+@@ -140,13 +140,26 @@ OBJECT METHODS
+         standard error, standard output, or standard error. If the status or
+         logger handle is not defined, this channel of communication is never
+         established with GnuPG, and so this information is not generated and
+-        does not come into play. If the passphrase data member handle of the
+-        handles object is not defined, but the the passphrase data member
+-        handle of GnuPG::Interface object is, GnuPG::Interface will handle
+-        passing this information into GnuPG for the user as a convenience.
+-        Note that this will result in GnuPG::Interface storing the
+-        passphrase in memory, instead of having it simply 'pass-through' to
+-        GnuPG via a handle.
++        does not come into play.
++
++        If the passphrase data member handle of the handles object is not
++        defined, but the the passphrase data member handle of
++        GnuPG::Interface object is, GnuPG::Interface will handle passing
++        this information into GnuPG for the user as a convenience. Note that
++        this will result in GnuPG::Interface storing the passphrase in
++        memory, instead of having it simply 'pass-through' to GnuPG via a
++        handle.
++
++        If neither the passphrase data member of the GnuPG::Interface nor
++        the passphrase data member of the handles object is defined, then
++        GnuPG::Interface assumes that access and control over the secret key
++        will be handled by the running gpg-agent process. This represents
++        the simplest mode of operation with the GnuPG "modern" suite
++        (version 2.1 and later). It is also the preferred mode for tools
++        intended to be user-facing, since the user will be prompted directly
++        by gpg-agent for use of the secret key material. Note that for
++        programmatic use, this mode requires the gpg-agent and pinentry to
++        already be correctly configured.
+ 
+   Other Methods
+     get_public_keys( @search_strings )
+@@ -241,7 +254,7 @@ EXAMPLES
+ 
+       my $handles = GnuPG::Handles->new( stdin    => $input,
+                                          stdout   => $output );
+-   
++
+       # this sets up the communication
+       # Note that the recipients were specified earlier
+       # in the 'options' data member of the $gnupg object.
+@@ -315,7 +328,7 @@ EXAMPLES
+       # a file written to disk
+       # Make sure you "use IO::File" if you use this module!
+       my $cipher_file = IO::File->new( 'encrypted.gpg' );
+-   
++
+       # this sets up the communication
+       my $pid = $gnupg->decrypt( handles => $handles );
+ 
+@@ -346,7 +359,7 @@ EXAMPLES
+       # This time we'll just let GnuPG print to our own output
+       # and read from our input, because no input is needed!
+       my $handles = GnuPG::Handles->new();
+-  
++
+       my @ids = ( 'ftobin', '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' );
+ 
+       # this time we need to specify something for
+@@ -354,7 +367,7 @@ EXAMPLES
+       # search ids as arguments
+       my $pid = $gnupg->list_public_keys( handles      => $handles,
+                                           command_args => [ @ids ] );
+-  
++
+        waitpid $pid, 0;
+ 
+   Creating GnuPG::PublicKey Objects
+@@ -372,7 +385,7 @@ EXAMPLES
+           command_args => [ qw( test/key.1.asc ) ],
+           handles      => $handles,
+         );
+-    
++
+         my @out = <$handles->stdout()>;
+         waitpid $pid, 0;
+ 
+diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
+index 29205f0..5d8b0ec 100644
+--- a/lib/GnuPG/Interface.pm
++++ b/lib/GnuPG/Interface.pm
+@@ -106,6 +106,14 @@ sub fork_attach_exec( $% ) {
+     my ( $self, %args ) = @_;
+ 
+     my $handles = $args{handles} or croak 'no GnuPG::Handles passed';
++    my $use_loopback_pinentry = 0;
++
++    # WARNING: this assumes that we're using the "modern" GnuPG suite
++    # -- version 2.1.x or later.  It's not clear to me how we can
++    # safely and efficiently avoid this assumption (see
++    # https://lists.gnupg.org/pipermail/gnupg-devel/2016-October/031800.html)
++    $use_loopback_pinentry = 1
++      if ($handles->passphrase());
+ 
+     # deprecation support
+     $args{commands} ||= $args{gnupg_commands};
+@@ -293,8 +301,12 @@ sub fork_attach_exec( $% ) {
+             $self->options->$option($fileno);
+         }
+ 
++        my @args = $self->options->get_args();
++        push @args, '--pinentry-mode', 'loopback'
++          if $use_loopback_pinentry;
++
+         my @command = (
+-            $self->call(), $self->options->get_args(),
++            $self->call(), @args,
+             @commands,     @command_args
+         );
+ 
+@@ -1005,6 +1017,7 @@ and standard error will be tied to the running program's standard error,
+ standard output, or standard error.  If the B<status> or B<logger> handle
+ is not defined, this channel of communication is never established with GnuPG,
+ and so this information is not generated and does not come into play.
++
+ If the B<passphrase> data member handle of the B<handles> object
+ is not defined, but the the B<passphrase> data member handle of GnuPG::Interface
+ object is, GnuPG::Interface will handle passing this information into GnuPG
+@@ -1012,6 +1025,17 @@ for the user as a convenience.  Note that this will result in
+ GnuPG::Interface storing the passphrase in memory, instead of having
+ it simply 'pass-through' to GnuPG via a handle.
+ 
++If neither the B<passphrase> data member of the GnuPG::Interface nor
++the B<passphrase> data member of the B<handles> object is defined,
++then GnuPG::Interface assumes that access and control over the secret
++key will be handled by the running gpg-agent process.  This represents
++the simplest mode of operation with the GnuPG "modern" suite (version
++2.1 and later).  It is also the preferred mode for tools intended to
++be user-facing, since the user will be prompted directly by gpg-agent
++for use of the secret key material.  Note that for programmatic use,
++this mode requires the gpg-agent and pinentry to already be correctly
++configured.
++
+ =back
+ 
+ =head2 Other Methods
+diff --git a/t/MyTestSpecific.pm b/t/MyTestSpecific.pm
+index c8764cc..e513c25 100644
+--- a/t/MyTestSpecific.pm
++++ b/t/MyTestSpecific.pm
+@@ -55,9 +55,15 @@ struct( Text => { fn => "\$", fh => "\$", data => "\$" } );
+ $texts{plain} = Text->new();
+ $texts{plain}->fn( 'test/plain.1.txt' );
+ 
++$texts{alt_plain} = Text->new();
++$texts{alt_plain}->fn( 'test/plain.2.txt' );
++
+ $texts{encrypted} = Text->new();
+ $texts{encrypted}->fn( 'test/encrypted.1.gpg' );
+ 
++$texts{alt_encrypted} = Text->new();
++$texts{alt_encrypted}->fn( 'test/encrypted.2.gpg' );
++
+ $texts{signed} = Text->new();
+ $texts{signed}->fn( 'test/signed.1.asc' );
+ 
+@@ -68,7 +74,7 @@ $texts{temp} = Text->new();
+ $texts{temp}->fn( 'test/temp' );
+ 
+ 
+-foreach my $name ( qw( plain encrypted signed key ) )
++foreach my $name ( qw( plain alt_plain encrypted alt_encrypted signed key ) )
+ {
+     my $entry = $texts{$name};
+     my $filename = $entry->fn();
+@@ -90,7 +96,7 @@ sub reset_handles
+         stderr  => $stderr
+       );
+ 
+-    foreach my $name ( qw( plain encrypted signed key ) )
++    foreach my $name ( qw( plain alt_plain encrypted alt_encrypted signed key ) )
+     {
+         my $entry = $texts{$name};
+         my $filename = $entry->fn();
+diff --git a/t/decrypt.t b/t/decrypt.t
+index b2639ed..ee41448 100644
+--- a/t/decrypt.t
++++ b/t/decrypt.t
+@@ -58,3 +58,30 @@ TEST
+ {
+     return compare( $texts{plain}->fn(), $texts{temp}->fn() ) == 0;
+ };
++
++
++# test without default_passphrase (that is, by using the agent)
++TEST
++{
++    reset_handles();
++
++    $handles->stdin( $texts{alt_encrypted}->fh() );
++    $handles->options( 'stdin' )->{direct} = 1;
++
++    $handles->stdout( $texts{temp}->fh() );
++    $handles->options( 'stdout' )->{direct} = 1;
++
++    $gnupg->clear_passphrase();
++
++    my $pid = $gnupg->decrypt( handles => $handles );
++
++    waitpid $pid, 0;
++
++    return $CHILD_ERROR == 0;
++};
++
++
++TEST
++{
++    return compare( $texts{alt_plain}->fn(), $texts{temp}->fn() ) == 0;
++};
+diff --git a/test/encrypted.2.gpg b/test/encrypted.2.gpg
+new file mode 100644
+index 0000000..105cbb3
+--- /dev/null
++++ b/test/encrypted.2.gpg
+@@ -0,0 +1,12 @@
++-----BEGIN PGP MESSAGE-----
++
++hQEMAw3NS2KuRB0PAQgAuCMQO6blPRIJZib+kDa51gac+BYPl8caXYTLqIHtiz2/
++YRVqePJON4lNAqT6qUksIzQHtejFO6tb1SLqgX9Ti+fKAMLrQw9VGOYaJFoRrTJs
+++X33S4GHVVikRTu0dydAsekbfPSc2nRmTFUlSEV3psgAmg9xy8KA6cZroK9Xfcuh
++xW7KLE0hLP+2NZ7zNmJMdu6LDGzvlQsnm1UeElXK8XdMGf8kA3R+GgeeOnR/oEQc
++Uep77k/fLc+UV4fp9Dk1OBeg3Ko/irSaefk4mU7F4HmS8jIERHRvXBTiur1Zx8Nx
++9U3fcQuc+P9+JC89iS4PJPF1Hr0MlezAghZYJrhOrtJIAe5Uaft5KMGRfy0VQnAs
++MHqGnGtzzVWK6GK83ibgG4tTfPEHHIgNFsJf3rM4cWklUmCS9TeeDJJZfhnRA6+/
++X82e6OI7QNbO
++=DlGE
++-----END PGP MESSAGE-----
+diff --git a/test/fake-pinentry.pl b/test/fake-pinentry.pl
+index 12d3611..40b8b08 100755
+--- a/test/fake-pinentry.pl
++++ b/test/fake-pinentry.pl
+@@ -21,7 +21,7 @@ while (<STDIN>) {
+   chomp;
+   next if (/^$/);
+   next if (/^#/);
+-  print ("D test\n") if (/^getpin/i);
++  print ("D supercalifragilisticexpialidocious\n") if (/^getpin/i);
+   print "OK\n";
+   exit if (/^bye/i);
+ }
+diff --git a/test/plain.2.txt b/test/plain.2.txt
+new file mode 100644
+index 0000000..da5a1d5
+--- /dev/null
++++ b/test/plain.2.txt
+@@ -0,0 +1 @@
++test message
diff --git a/debian/patches/series b/debian/patches/series
index a33c3cf..fe9cf0e 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -6,3 +6,11 @@
 0006-Modern-GnuPG-2.1-reports-more-detail-about-secret-ke.patch
 0007-test-suite-match-plaintext-output-across-versions-of.patch
 0008-fix-test_default_key_passphrase-when-passphrase-come.patch
+0009-clean-up-trailing-whitespace.patch
+0010-fix-capitalization-of-GnuPG.patch
+0011-ommand_args-should-be-command_args.patch
+0012-use-fingerprints-as-inputs-during-tests-to-demonstra.patch
+0013-move-key-files-to-generic-names.patch
+0014-fix-spelling-s-convience-convenience.patch
+0015-added-new-secret-key-with-different-passphrase.patch
+0016-Test-use-of-gpg-without-explicit-passphrase-agent-pi.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libgnupg-interface-perl.git



More information about the Pkg-perl-cvs-commits mailing list