Ich versuche, XML in Perl mit dem Crypt::OpenSSL::RSA
Modul digital zu signieren. Ich lade einen privaten Schlüssel aus einer Datei. Der private Schlüssel wurde mithilfe von Java aus einem Keystore generiert.XML digitale Signaturen in Perl
Unten ist mein Perl-Code:
my $private = 'my_priv.key';
my $private_key = read_file($private);
print "my private key text is\n", $private_key;
Ausgang, nicht den gesamten Schlüssel setzen hier, nur die wenigen ersten Zeilen :-)
> -----BEGIN PRIVATE KEY----- MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKAuqJ1ZkxHZStfSt0CdEsaSYuLO
> 6zDiTpt60asVLWpLe2bf...
my $rsa_priv = Crypt::OpenSSL::RSA->new_private_key($private_key);
print "my private key is\n",$rsa_priv->get_private_key_string();
Ausgang :
> -----BEGIN RSA PRIVATE KEY-----
> MIICXAIBAAKBgQCgLqidWZMR2UrX0rdAnRLGkmLizusw4k6betGrFS1qS3tm3+97
> wMvFXCx0Od8eb
Die Ergebnisse von $private_key
und $rsa_priv->get_private_key_string()
sind unterschiedlich. Soll es sich so verhalten?
Hat jemand XML mit Crypt::OpenSSL::RSA
signieren können?
edit:
i Java-Code bin mit dem privaten Schlüssel zu extrahieren, Code ist wie unten `Schlüsselspeicher ks = KeyStore.getInstance ("JKS");
keypass = sPass.toCharArray();
FileInputStream fis = new FileInputStream(store);
ks.load(fis, sPass.toCharArray());
fis.close();
String eol = System.getProperty("line.separator");
Key k = ks.getKey(alias, keypass);
System.out.println("....Generating the Private Key.....");
String encKey = new BASE64Encoder().encode(k.getEncoded());
System.out.println("Encoded Key: " + encKey);
BufferedWriter myKey = null;
myKey = new BufferedWriter(new FileWriter(alias + "_priv.key"));
myKey.write("-----BEGIN PRIVATE KEY-----" + eol);
myKey.write(encKey + eol);
myKey.write("-----END PRIVATE KEY-----");
myKey.close();
System.out.println("....Private Key Generated.....");`
mit Java und Perl, weil die xmls i in Perl zu unterzeichnen bin versucht sind (es ist ein ganz großes System) und der Schlüsselspeicher ist in Java.
Zum ersten Mal digital signieren alles und meine digital signierten XML überhaupt an das Empfängersystem nicht
Vielleicht könnte es helfen, wenn Sie das 'keytool' Befehl hinzufügen, verwendet, um die Java privaten Schlüssel zu generieren. –
nur hinzugefügt den Code verwendet, um den privaten Schlüssel zu generieren – qateey