Add gpg key generation from rfc822 template file.
authorDavid Bremner <bremner@unb.ca>
Sat, 19 Mar 2011 11:22:35 +0000 (08:22 -0300)
committerDavid Bremner <bremner@unb.ca>
Thu, 24 Mar 2011 22:57:35 +0000 (19:57 -0300)
This is pretty much translated from tests/basic.  It is unfortunately
a bit more verbose in perl. It could be made shorter by avoiding
GnuPG::Interface.

unit-tests/keys.txt [new file with mode: 0644]
unit-tests/run-tests.pl

diff --git a/unit-tests/keys.txt b/unit-tests/keys.txt
new file mode 100644 (file)
index 0000000..61e6563
--- /dev/null
@@ -0,0 +1,47 @@
+# For use with gpg --batch --gen-key
+
+Key-Type: DSA
+Key-Length: 1024
+Subkey-Type: ELG-E
+Subkey-Length: 1024
+Name-Real: Joe Tester
+Name-Email: joe@example.net
+Expire-Date: 0
+
+Key-Type: RSA
+Key-Length: 2048
+Key-Usage: sign
+Subkey-Type: RSA
+Subkey-Length: 1024
+Subkey-Usage: auth
+Name-Real: Joe Tester
+Name-Email: joe@example.net
+Expire-Date: 0
+
+Key-Type: RSA
+Key-Length: 2048
+Key-Usage: sign
+Subkey-Type: RSA
+Subkey-Length: 1024
+Subkey-Usage: sign
+Name-Real: Joe Tester
+Name-Email: joe@example.net
+Expire-Date: 0
+
+Key-Type: RSA
+Key-Length: 2048
+Key-Usage: auth
+Name-Real: Joe Tester
+Name-Email: joe@example.net
+Expire-Date: 0
+
+Key-Type: RSA
+Key-Length: 2048
+Key-Usage: encrypt
+Subkey-Type: RSA
+Subkey-Length: 1024
+Subkey-Usage: auth
+Name-Real: Joe Tester
+Name-Email: jojo@example.net
+Expire-Date: 0
+
index 4c3731cb85da91ed503ca5722c4aa9e70f468bdc..0764b65a3f27f777d234f6775b774313442e09ed 100644 (file)
@@ -4,9 +4,39 @@ use strict;
 use TAP::Harness;
 use File::Find;
 use FindBin;
+use GnuPG::Interface;
+use GnuPG::Handles;
+use File::Temp qw(tempdir);
+
 my $BINDIR;
 BEGIN { $BINDIR = $FindBin::Bin; }
 
+
+{ 
+# Generate Keys from template file
+
+  my $tempdir = tempdir("/tmp/test-gnupgXXXXX", CLEANUP=> 1);
+  my $gnupg = new GnuPG::Interface();
+  $gnupg->options->hash_init(homedir=>$tempdir,batch=>1);
+
+  my $GPGQR='';
+  if (system qw(gpg --quick-random --version) ==0) {
+    $GPGQR='--quick-random';
+  } elsif (system qw(gpg --debug-quick-random --version) ==0) {
+    $GPGQR='--debug-quick-random';
+  }
+
+  print STDERR "WARNING: no quick random option found. Tests may hang!\n" 
+    unless(scalar $GPGQR);
+
+  my $pid = $gnupg->wrap_call( commands=>[qw(--gen-key --batch),$GPGQR],
+                              command_args=>[$BINDIR.'/keys.txt'],
+                              handles=>new GnuPG::Handles() );
+  waitpid $pid,0;
+
+  $ENV{GNUPGHOME}=$tempdir;
+}
+
 my @dirs = scalar(@ARGV) > 0 ? @ARGV : ($BINDIR);
 
 my @tests;