インターネットでこれに関する例を見たことがないので、私が知る限り、誰かが 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");