2

インターネットでこれに関する例を見たことがないので、私が知る限り、誰かが Java でこれを試したのはこれが初めてで、信じがたいと思います。

manifest.json の署名ファイルを生成するために与えられた .pem、.p12、および .cer ファイルを操作しようとしています。これが私が持っているもので、InvalidKeyException バージョンの不一致が発生します: (サポート: 00、解析: 03

エラーが発生している以下のコードのコメントを参照してください。人々がopensslでこれをどのように行っているかについて、別の言語でいくつかの例を見てきましたが、Javaに相当するものがあるに違いありません??

    File pemFile = new File("AWWdevCert.pem");
    File passCer = new File("pass.cer");
    File passP12 = new File("pass.p12"); 

    KeyFactory keyFactory = KeyFactory.getInstance("RSA");
    KeySpec ks = new PKCS8EncodedKeySpec(FileUtils.readFileToByteArray(passP12));
    PrivateKey privKey = keyFactory.generatePrivate(ks); // ERROR HERE


    CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
    InputStream in = new ByteArrayInputStream(FileUtils.readFileToByteArray(passCer));
    X509Certificate passCert = (X509Certificate)certFactory.generateCertificate(in); //don't know what to do with this

    File inputFile = new File("WebContent/WEB-INF/Lowes.raw/manifest.json"); 
    FileInputStream freader = null;
    int sizecontent = ((int) inputFile.length());
    byte[] contentbytes = new byte[sizecontent];
    freader = new FileInputStream(inputFile);
    System.out.println("\nContent Bytes: " + freader.read(contentbytes, 0, sizecontent));
    freader.close();

    Signature signature = Signature.getInstance("Sha1WithRSA");
    signature.initSign(privKey);
    signature.update(contentbytes);

    byte[] signedData = signature.sign();

    //create signature file
    File signatureFile = new File(passDirectory.getAbsolutePath()+File.separator+"signature");
4

2 に答える 2

4

github でこのjpasskitプロジェクトを確認してください

于 2012-10-10T16:52:44.683 に答える