Wie lese ich den privaten Schlüssel in java aus einer pfx-Zertifikat

Ich versuche zu Lesen, einen privaten Schlüssel ich java .Ich lernte inorder zu tun, dass ich extrahiert den privaten Schlüssel aus meinen vollen Zertifikat im pfx-format.
Ich habe versucht, die unter open-ssl-Befehl zum konvertieren von pfx nach pem und dann zu pk8 , aber wenn ich zu Lesen versuchte den Schlüssel in java , es sagt invalid key format

convert pfx nach pem

      openssl pkcs12 -in C:\Documents\xbox-token\conversion\xbox
  token-FullCert.pfx -nocerts -out C:\Documents\xbox-token\conversion\xboxkey.pem

Passwortschutz entfernen

openssl rsa -in C:\Documents\xbox-token\conversion\xboxkey.pem  -out C:\Documents\xbox-token\conversion\xboxkey.pem

Umwandeln pem-zu pk8

openssl pkcs8 -topk8 -in C:\Documents\xbox-token\conversion\xboxkey.pem -out C:\Documents\xbox-token\conversion\xboxprv.pk8

In der java-code

  byte[] encodedPrivateKey=null;
    File privateKeyFile = new File("C:/Documents/xbox-token/conversion/xboxprv.pk8");
    FileInputStream inputStreamPrivateKey = null;
    try {
        inputStreamPrivateKey = new FileInputStream(privateKeyFile);
          encodedPrivateKey = new byte[(int)privateKeyFile.length()];
            inputStreamPrivateKey.read(encodedPrivateKey);
            inputStreamPrivateKey.close();
    } catch (FileNotFoundException e) {
        //TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        //TODO Auto-generated catch block
        e.printStackTrace();
    }


    //Create the private key.
    PKCS8EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(encodedPrivateKey);
    System.out.println(encodedPrivateKey);
    System.out.println(privateKeySpec);
    RSAPrivateKey privateKey = null;
    try {
        privateKey = (RSAPrivateKey)KeyFactory.getInstance("RSA").generatePrivate(privateKeySpec);
    } catch (InvalidKeySpecException e) {
        //TODO Auto-generated catch block
        e.printStackTrace();
    } catch (NoSuchAlgorithmException e) {
        //TODO Auto-generated catch block
        e.printStackTrace();
    }

Bin ich immer eine java.Sicherheit.spec.InvalidKeySpecException: java.Sicherheit.InvalidKeyException: invalid key format

Kann einer helfen

Schreibe einen Kommentar