Skip to content

Commit e765b41

Browse files
authored
Merge pull request #1 from timlegge/merge-requests
Merge pull requests from btrott/Crypt-OpenPGP/
2 parents f87bd8c + 51ae276 commit e765b41

File tree

7 files changed

+146
-4
lines changed

7 files changed

+146
-4
lines changed

lib/Crypt/OpenPGP/Buffer.pm

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
package Crypt::OpenPGP::Buffer;
2+
3+
use strict;
4+
25
use base qw( Data::Buffer );
36

47
use Crypt::OpenPGP::Util qw( bin2mp mp2bin bitsize );

lib/Crypt/OpenPGP/Key/Public/ElGamal.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ sub gen_k {
5353
my($p) = @_;
5454
## XXX choose bitsize based on bitsize of $p
5555
my $bits = 198;
56-
my $p_minus1 = $p - 1;
56+
my $p_minus1 = Math::BigInt->new($p) - 1;
5757

5858
my $k = Crypt::OpenPGP::Util::get_random_bigint($bits);
5959
while (1) {

lib/Crypt/OpenPGP/Key/Public/RSA.pm

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,14 @@ sub verify {
6464

6565
{
6666
my %ENCODING = (
67-
MD2 => pack('H*', '3020300C06082A864886F70D020205000410'),
68-
MD5 => pack('H*', '3020300C06082A864886F70D020505000410'),
69-
SHA1 => pack('H*', '3021300906052B0E03021A05000414'),
67+
MD2 => pack('H*', '3020300C06082A864886F70D020205000410'),
68+
MD5 => pack('H*', '3020300C06082A864886F70D020505000410'),
69+
SHA1 => pack('H*', '3021300906052B0E03021A05000414'),
70+
SHA256 => pack('H*', '3031300d060960864801650304020105000420'),
71+
SHA224 => pack('H*', '302d300d06096086480165030402040500041c'),
72+
SHA384 => pack('H*', '3041300d060960864801650304020205000430'),
73+
SHA512 => pack('H*', '3051300d060960864801650304020305000440'),
74+
RIPEMD160 => pack('H*', '3021300906052b2403020105000414'),
7075
);
7176

7277
sub encode {

t/14-sha2-verify.t

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
use strict;
2+
use Test::More tests => 2;
3+
4+
use Crypt::OpenPGP;
5+
6+
use vars qw( $SAMPLES );
7+
unshift @INC, 't/';
8+
require 'test-common.pl';
9+
use File::Spec;
10+
11+
12+
my $key_id = '43AA1C85';
13+
my $pass = "";
14+
my $uid = 'Test Key (SHA-512 key for Crypt::OpenPGP tests) <[email protected]>';
15+
16+
my $secring = File::Spec->catfile( $SAMPLES, 'gpg', 'sha2.sec' );
17+
my $pubring = File::Spec->catfile( $SAMPLES, 'gpg', 'sha2.pub' );
18+
my $pgp = Crypt::OpenPGP->new(
19+
SecRing => $secring,
20+
PubRing => $pubring,
21+
);
22+
isa_ok $pgp, 'Crypt::OpenPGP';
23+
24+
{
25+
diag 'sig generated by gpg with SHA512';
26+
27+
# Test a signature created by gnupg with SHA512 key
28+
my $sig_file = File::Spec->catfile( $SAMPLES, 'sha2.asc' );
29+
my $signer = $pgp->verify( SigFile => $sig_file );
30+
is $signer, $uid, 'verified as signed by uid';
31+
}

t/samples/gpg/sha2.pub

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
-----BEGIN PGP PUBLIC KEY BLOCK-----
2+
Version: GnuPG v1
3+
4+
mQENBFcBiKwBCADRfsWVaJosDG12BcCMOYwIhI3d9STGT33IV+uuw02JlPkpf7Cz
5+
7KqcZ1VlBdw3+9MFtzwfkZYXa5ARlwKkE6IzMcwGQuSRVD41w5Pth5S2bwwdfwjT
6+
lV2w1mMFkYcZiDyFMMRgYgAgm0lje3mK5qTKd85ZG3mH+SAuWyCpPG44DSGZSfqE
7+
O/6Rj6fY4NZ+MTxcKh+HXgSW4FKsaHP9J7DIOzgjZBGBdRJVvDLWTHUi3y8iQA51
8+
oJ732z//gwxCdCHMrf9CN3ZjoMmzF+o1lVJRmtGFTfF5JKVONiBS4d74FgvxWr7T
9+
C2oKvpye2j9GI03nv7J2boUdk/9Y0YOIdTL9ABEBAAG0QVRlc3QgS2V5IChTSEEt
10+
NTEyIGtleSBmb3IgQ3J5cHQ6Ok9wZW5QR1AgdGVzdHMpIDx0ZXN0QHNoYTUxMi5z
11+
aWc+iQE3BBMBCgAhBQJXAYisAhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJ
12+
EPvN3TNDqhyFw/4H/0yqdTizfgQqHVqmH0SsKJ0uwzKSeRglPQeOGPxpy0hkyBld
13+
02jsvmu9VvDoBXIE5+WKdTGb2vrQd6izpbewhl6NEZ9BrbtbW0SkiAx5gbETPflD
14+
Se74wFCdl6RyTbqnssPgqTnTzB4XpTpLbfnqC8u5BROIpCbre0oggNfdBio3psD8
15+
McshP/oN9GL6fsp8XlOdP/lwvnLXyZQCTOdmwYWUXlSSAkIM0dOEErGEcRApYiHT
16+
xQOVmYdEiFCFKtkCix7UJP4qpwukcrznGNTC5wKe9CLJqykaxHE/tSAS6Clm3Wce
17+
gBajBCRGTyJhlBaJF3c56kKN2XlcLGZoZ3+CeKO5AQ0EVwGIrAEIAK7LRErkfvzZ
18+
E0EOyqD0aaGj8aEmyB6+/ztUeI0e3VEqP3YexSYS2Uv1kh72TQodzoqDRPtxrVE6
19+
DWMWTHB3PrxUuzufOKkpRHgvD5xtntJutjnF1uX5+WQUVpfluaF1d/Lu/d8lKh+E
20+
kpjlW5FfKqKdQrjohjVir/4+/ecOue+7JAadCqE9GTCq9KIIM+Xta/yM4riURXat
21+
qVB/eoANeQ90Re83sLnZJ6205zk14PtqEzE1RPEerCxLfw/oKMGaxk9qKx7I58pk
22+
D9SrXJKfLHo2R+sXBAqgE6usOOXFrgddyPlKBvqvV8lRKkh+Glr8caSpwHKn1ZoT
23+
qVrh/tTlSc0AEQEAAYkBHwQYAQoACQUCVwGIrAIbDAAKCRD7zd0zQ6ochcWgCACC
24+
7GFzrwEQE+27RWlS+KuXymh11B1haEpIMpFaEE9YOhnqZ+F2xvu6gVjxA7RZXJpS
25+
Eg0NCMqongTrTUvKRuTxml3UyHSTL7O0bXbz7T4D3jKIbWiYnTGvC4VPXfEyCpgt
26+
vxIZ4en95nePq3DLgaGG/rB24sdL+PJruVypvPMF6+mmIhK4JOPGWD1/+ht1SKPI
27+
6UmNiCoH+cTVqTse2thtTbtVcPMV+h4CvChDbDm4SVaaA7QIx6vODs+j9MI6M9E5
28+
LNPiR4Tv3HjYRlbCbFhhmzuvjVea5uwToPT66XsaKb9ZR4LuomporWYJ1u5U7WS5
29+
y/kuI17EufLSxPQMHY0F
30+
=JX1K
31+
-----END PGP PUBLIC KEY BLOCK-----

t/samples/gpg/sha2.sec

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
-----BEGIN PGP PRIVATE KEY BLOCK-----
2+
Version: GnuPG v1
3+
4+
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
56+
1u5U7WS5y/kuI17EufLSxPQMHY0F
57+
=TbV3
58+
-----END PGP PRIVATE KEY BLOCK-----

t/samples/sha2.asc

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
-----BEGIN PGP MESSAGE-----
2+
Version: GnuPG v1
3+
4+
owGbwMvMwMX4++xdY+dVMq2Ma0qTBIozEo3iUysScwtyUvVKKkrCGac/ycsvVyjJ
5+
SFUoLs1TyCxWSCotysvMS+fKzFNISU0tSC0uUSguSExO5SrJSCxRLwYrLU+sBNJA
6+
VcUKiUUgmaL80vQMhUSF4pL8olyFTIXkxJyc1BSFyvxSrk5GGRYGRi4GNlYmkG0M
7+
XJwCMCfJ2bD/rxVaoMGweCFf6bKblftlxLxEMmKblNRb9rac8w3bbbOgIVa85oOg
8+
XGrxDqGPNa33m8+lbVjkWSv4wjCv88PEz66XWHdI+5x2fXnzXfon7Vahn9mTTySu
9+
0rU2eBfF9vX59wYz075iRb83S8JUhMRnrdCJOJPMvmuzev3TbW65x7fVdi2d7KCy
10+
7PZubZ0jBpWbrT0Olh5huntylvJZYU6mHzMmv92iue2i/aOdE6f7zv0kWMW/Wf3b
11+
iyVfn22Z7naRy+0Bx0/bFT6iElnzmtZrH5gskqaRfGebTEL19gcR8v/PflNzLera
12+
J5U+51HZtLPs55W8Hhw1LV2W13P8htzmloxzBi6iVx6Vef+/mhfzGgA=
13+
=WAvB
14+
-----END PGP MESSAGE-----

0 commit comments

Comments
 (0)