Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions lib/Crypt/OpenPGP/Buffer.pm
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
package Crypt::OpenPGP::Buffer;

use strict;

use base qw( Data::Buffer );

use Crypt::OpenPGP::Util qw( bin2mp mp2bin bitsize );
Expand Down
2 changes: 1 addition & 1 deletion lib/Crypt/OpenPGP/Key/Public/ElGamal.pm
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ sub gen_k {
my($p) = @_;
## XXX choose bitsize based on bitsize of $p
my $bits = 198;
my $p_minus1 = $p - 1;
my $p_minus1 = Math::BigInt->new($p) - 1;

my $k = Crypt::OpenPGP::Util::get_random_bigint($bits);
while (1) {
Expand Down
11 changes: 8 additions & 3 deletions lib/Crypt/OpenPGP/Key/Public/RSA.pm
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,14 @@ sub verify {

{
my %ENCODING = (
MD2 => pack('H*', '3020300C06082A864886F70D020205000410'),
MD5 => pack('H*', '3020300C06082A864886F70D020505000410'),
SHA1 => pack('H*', '3021300906052B0E03021A05000414'),
MD2 => pack('H*', '3020300C06082A864886F70D020205000410'),
MD5 => pack('H*', '3020300C06082A864886F70D020505000410'),
SHA1 => pack('H*', '3021300906052B0E03021A05000414'),
SHA256 => pack('H*', '3031300d060960864801650304020105000420'),
SHA224 => pack('H*', '302d300d06096086480165030402040500041c'),
SHA384 => pack('H*', '3041300d060960864801650304020205000430'),
SHA512 => pack('H*', '3051300d060960864801650304020305000440'),
RIPEMD160 => pack('H*', '3021300906052b2403020105000414'),
);

sub encode {
Expand Down
31 changes: 31 additions & 0 deletions t/14-sha2-verify.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
use strict;
use Test::More tests => 2;

use Crypt::OpenPGP;

use vars qw( $SAMPLES );
unshift @INC, 't/';
require 'test-common.pl';
use File::Spec;


my $key_id = '43AA1C85';
my $pass = "";
my $uid = 'Test Key (SHA-512 key for Crypt::OpenPGP tests) <[email protected]>';

my $secring = File::Spec->catfile( $SAMPLES, 'gpg', 'sha2.sec' );
my $pubring = File::Spec->catfile( $SAMPLES, 'gpg', 'sha2.pub' );
my $pgp = Crypt::OpenPGP->new(
SecRing => $secring,
PubRing => $pubring,
);
isa_ok $pgp, 'Crypt::OpenPGP';

{
diag 'sig generated by gpg with SHA512';

# Test a signature created by gnupg with SHA512 key
my $sig_file = File::Spec->catfile( $SAMPLES, 'sha2.asc' );
my $signer = $pgp->verify( SigFile => $sig_file );
is $signer, $uid, 'verified as signed by uid';
}
31 changes: 31 additions & 0 deletions t/samples/gpg/sha2.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQENBFcBiKwBCADRfsWVaJosDG12BcCMOYwIhI3d9STGT33IV+uuw02JlPkpf7Cz
7KqcZ1VlBdw3+9MFtzwfkZYXa5ARlwKkE6IzMcwGQuSRVD41w5Pth5S2bwwdfwjT
lV2w1mMFkYcZiDyFMMRgYgAgm0lje3mK5qTKd85ZG3mH+SAuWyCpPG44DSGZSfqE
O/6Rj6fY4NZ+MTxcKh+HXgSW4FKsaHP9J7DIOzgjZBGBdRJVvDLWTHUi3y8iQA51
oJ732z//gwxCdCHMrf9CN3ZjoMmzF+o1lVJRmtGFTfF5JKVONiBS4d74FgvxWr7T
C2oKvpye2j9GI03nv7J2boUdk/9Y0YOIdTL9ABEBAAG0QVRlc3QgS2V5IChTSEEt
NTEyIGtleSBmb3IgQ3J5cHQ6Ok9wZW5QR1AgdGVzdHMpIDx0ZXN0QHNoYTUxMi5z
aWc+iQE3BBMBCgAhBQJXAYisAhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJ
EPvN3TNDqhyFw/4H/0yqdTizfgQqHVqmH0SsKJ0uwzKSeRglPQeOGPxpy0hkyBld
02jsvmu9VvDoBXIE5+WKdTGb2vrQd6izpbewhl6NEZ9BrbtbW0SkiAx5gbETPflD
Se74wFCdl6RyTbqnssPgqTnTzB4XpTpLbfnqC8u5BROIpCbre0oggNfdBio3psD8
McshP/oN9GL6fsp8XlOdP/lwvnLXyZQCTOdmwYWUXlSSAkIM0dOEErGEcRApYiHT
xQOVmYdEiFCFKtkCix7UJP4qpwukcrznGNTC5wKe9CLJqykaxHE/tSAS6Clm3Wce
gBajBCRGTyJhlBaJF3c56kKN2XlcLGZoZ3+CeKO5AQ0EVwGIrAEIAK7LRErkfvzZ
E0EOyqD0aaGj8aEmyB6+/ztUeI0e3VEqP3YexSYS2Uv1kh72TQodzoqDRPtxrVE6
DWMWTHB3PrxUuzufOKkpRHgvD5xtntJutjnF1uX5+WQUVpfluaF1d/Lu/d8lKh+E
kpjlW5FfKqKdQrjohjVir/4+/ecOue+7JAadCqE9GTCq9KIIM+Xta/yM4riURXat
qVB/eoANeQ90Re83sLnZJ6205zk14PtqEzE1RPEerCxLfw/oKMGaxk9qKx7I58pk
D9SrXJKfLHo2R+sXBAqgE6usOOXFrgddyPlKBvqvV8lRKkh+Glr8caSpwHKn1ZoT
qVrh/tTlSc0AEQEAAYkBHwQYAQoACQUCVwGIrAIbDAAKCRD7zd0zQ6ochcWgCACC
7GFzrwEQE+27RWlS+KuXymh11B1haEpIMpFaEE9YOhnqZ+F2xvu6gVjxA7RZXJpS
Eg0NCMqongTrTUvKRuTxml3UyHSTL7O0bXbz7T4D3jKIbWiYnTGvC4VPXfEyCpgt
vxIZ4en95nePq3DLgaGG/rB24sdL+PJruVypvPMF6+mmIhK4JOPGWD1/+ht1SKPI
6UmNiCoH+cTVqTse2thtTbtVcPMV+h4CvChDbDm4SVaaA7QIx6vODs+j9MI6M9E5
LNPiR4Tv3HjYRlbCbFhhmzuvjVea5uwToPT66XsaKb9ZR4LuomporWYJ1u5U7WS5
y/kuI17EufLSxPQMHY0F
=JX1K
-----END PGP PUBLIC KEY BLOCK-----
58 changes: 58 additions & 0 deletions t/samples/gpg/sha2.sec
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: GnuPG v1

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
1u5U7WS5y/kuI17EufLSxPQMHY0F
=TbV3
-----END PGP PRIVATE KEY BLOCK-----
14 changes: 14 additions & 0 deletions t/samples/sha2.asc
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1

owGbwMvMwMX4++xdY+dVMq2Ma0qTBIozEo3iUysScwtyUvVKKkrCGac/ycsvVyjJ
SFUoLs1TyCxWSCotysvMS+fKzFNISU0tSC0uUSguSExO5SrJSCxRLwYrLU+sBNJA
VcUKiUUgmaL80vQMhUSF4pL8olyFTIXkxJyc1BSFyvxSrk5GGRYGRi4GNlYmkG0M
XJwCMCfJ2bD/rxVaoMGweCFf6bKblftlxLxEMmKblNRb9rac8w3bbbOgIVa85oOg
XGrxDqGPNa33m8+lbVjkWSv4wjCv88PEz66XWHdI+5x2fXnzXfon7Vahn9mTTySu
0rU2eBfF9vX59wYz075iRb83S8JUhMRnrdCJOJPMvmuzev3TbW65x7fVdi2d7KCy
7PZubZ0jBpWbrT0Olh5huntylvJZYU6mHzMmv92iue2i/aOdE6f7zv0kWMW/Wf3b
iyVfn22Z7naRy+0Bx0/bFT6iElnzmtZrH5gskqaRfGebTEL19gcR8v/PflNzLera
J5U+51HZtLPs55W8Hhw1LV2W13P8htzmloxzBi6iVx6Vef+/mhfzGgA=
=WAvB
-----END PGP MESSAGE-----