Crypt::DSA::Signature

DSA, ECDSAの署名を意味する2つの値 r ,s をオブジェクト化し、ASN.1 DERフォーマット表記の署名入出力をサポートする。

use Crypt::DSA::Signature;
パッケージをロードする。

(r, s) → ASN.1
my $sign = Crypt::DSA::Signature->new();
$sign->r($r);
$sign->s($s);
$sign->serialize();

$r, $s は 長整数の文字列表記。54601165933209047605605813808273978495…等。
serialize出力は バイナリ数列(ASN.1 DERフォーマット)。

ASN,,1 → (r, s)
my $sign = eval {
    Crypt::DSA::Signature->new($asn1);
};
unless ($sign) {
    ... error ..
}
my $r = $sign->r;
my $s = $sign->s;

$asn1は バイナリ数列(ASN.1 DERフォーマット)。
$r, $s は 長整数の文字列表記。54601165933209047605605813808273978495…等。
不正なDERフォーマットを入力すると die するので、エラートラップしたい場合は evalで囲う。