Domanda

Qualcuno mi può consigliare di questo codice e come posso convertirlo in Ruby in modo più semplice?

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

E 'un pezzo di un mexumgen , libreria Perl che update.rdf segno per Mozilla prodotti con OpenSSL.

È stato utile?

Soluzione

Questo esempio particolare può essere convertito come

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

dove "308191300b06092a864886f70d01010d03818100" è prefisso ottenuto da tale espressione ASN fino a BIT campo STRING (compreso il formato di stringa di bit), pack ( "H") converte i dati binari in rappresentazione esadecimale e decomprimere ( "H") converte stringa in esadecimale torna al binario.

Ma per il convertitore più generale ASN è meglio usare OpenSSL :: ASN1, che viene fornito con rubino come libreria standard. E 'completamente senza documenti ma alcune persone è riuscito a avere un certo uso di esso

Altri suggerimenti

Hai guardato Net :: ASN1 ?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top