كيف يمكنني تحويل Perl Convert :: ASN1 إلى رمز روبي؟
سؤال
هل يمكن لشخص ما أن ينصحني ما يفعله هذا الرمز وكيف يمكنني تحويله إلى روبي بأكثر الطرق بسيطة؟
#!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., ، مكتبة بيرل التي توقع تحديثها. RDF لمنتجات موزيلا مع Openssl.
المحلول
يمكن تحويل هذا المثال بالذات
data = ["308191300b06092a864886f70d01010d03818100" + body.unpack("H*")].pack("H*")
حيث "308191300B06092A864886F70D00D03818100" هي بادئة مصنوعة من حقل سلسلة ASN إلى BIT وبعد
ولكن لمزيد من محول ASN عام، من الأفضل استخدام Openssl :: ASN1، والتي تأتي مع Ruby ككتبة قياسية. انها غير موثقة تماما ولكن بعض الناس تمكنوا من لديك بعض استخدامها
نصائح أخرى
هل نظرت في نت :: ASN1.?
لا تنتمي إلى StackOverflow