どのように私はPerlの変換:: ASN1は、Rubyコードに変換することができますか?
質問
誰かがこのコードは、私が最も簡単な方法でのRubyに変換することができますどのように、何を私に助言することはできますか?
#!perl
use Convert::ASN1;
my $asn1 = Convert::ASN1->new(encoding => 'DER');
$asn1->prepare(q<
Algorithm ::= SEQUENCE {
oid OBJECT IDENTIFIER,
opt ANY OPTIONAL
}
Signature ::= SEQUENCE {
alg Algorithm,
sig BIT STRING
}
>);
my $data = $asn1->encode(sig => $body,
alg => {oid => sha512WithRSAEncryption()});
これは mexumgenするの作品だが、MozillaのためのPerlライブラリサインのupdate.rdf opensslを持つ製品ます。
解決
この特定の例は次のように変換することができる
data = ["308191300b06092a864886f70d01010d03818100" + body.unpack("H*")].pack("H*")
ここで「308191300b06092a864886f70d01010d03818100」、パック(「H」)(ビット列のサイズを含む)ビット列フィールドまでそのASN発現から作られたプレフィクスが16進表現にバイナリデータを変換して(「H」)を解凍するヘクスに文字列を変換しますバックバイナリへ。
しかし、より一般的なASNコンバータのためには、標準ライブラリとしてルビーが付属していたOpenSSL :: ASN1を、使用することをお勧めします。それは完全に文書化されていないのですが、一部の人々はそれのいくつかの使用を持っているに管理しました>
他のヒント
あなたはネット:: ASN1 のを見たことがありますか?
所属していません StackOverflow