From cdc7ec7aa7f1688f230bec27175b2c0e609a906f Mon Sep 17 00:00:00 2001 From: Sergey Romanov Date: Mon, 7 Oct 2013 09:17:22 +0400 Subject: [PATCH] fix hash randomisation bug (RT#81442) --- lib/Crypt/OpenPGP/SessionKey.pm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/Crypt/OpenPGP/SessionKey.pm b/lib/Crypt/OpenPGP/SessionKey.pm index a4bbb8f..c78623c 100644 --- a/lib/Crypt/OpenPGP/SessionKey.pm +++ b/lib/Crypt/OpenPGP/SessionKey.pm @@ -59,8 +59,8 @@ sub save { $buf->put_bytes($key->{key_id}, 8); $buf->put_int8($key->{pk_alg}); my $c = $key->{C}; - for my $mp (values %$c) { - $buf->put_mp_int($mp); + for my $prop (sort keys %$c) { + $buf->put_mp_int($c->{$prop}); } $buf->bytes; } @@ -69,8 +69,9 @@ sub display { my $key = shift; my $str = sprintf ":pubkey enc packet: version %d, algo %d, keyid %s\n", $key->{version}, $key->{pk_alg}, uc unpack('H*', $key->{key_id}); - for my $mp (values %{ $key->{C} }) { - $str .= sprintf " data: [%d bits]\n", bitsize($mp); + my $c = $key->{C}; + for my $prop (sort keys %$c) { + $str .= sprintf " data: [%d bits]\n", bitsize($c->{$prop}); } $str; } -- 1.8.3.4