どのように私はPerlの変換:: ASN1は、Rubyコードに変換することができますか?

StackOverflow https://stackoverflow.com/questions/391227

質問

誰かがこのコードは、私が最も簡単な方法での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 のを見たことがありますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top