Frage

Kann mir jemand raten, was dieser Code tut und wie kann ich es Ruby in einfachste Weise umwandeln?

    #!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()});

Es ist ein Stück eines mexumgen , Perl-Bibliothek, die Zeichen update.rdf für Mozilla Produkte mit openSSL.

War es hilfreich?

Lösung

Dieses besondere Beispiel kann umgewandelt werden

data = ["308191300b06092a864886f70d01010d03818100" + body.unpack("H*")].pack("H*")

, wobei "308191300b06092a864886f70d01010d03818100" ist Präfix von der ASN-Expression aus zu BIT STRING-Feld (einschließlich Größe von BIT STRING), Pack ( "H") Binärdaten hex Darstellung konvertiert und entpacken ( "H") wandelt Zeichenfolge in hex zurück zu binär.

Aber für allgemeinere ASN-Konverter ist es besser, OpenSSL :: ASN1 zu verwenden, die als Standard-Bibliothek mit Rubin kommt. Das ist völlig ohne Papiere, aber einige Leute es geschaffen, einig Gebrauch davon hat

Andere Tipps

Haben Sie sich unter Net :: ASN1 ?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top