KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have my Private and Public keys in a String in base64 which where encoded using ANS1 DER. I tried creating the instance of a java PrivateKey and PublicKey : byte [] llave2 = DatatypeConverter.parseBase64Binary(key); PKCS8Key pkcs8 = new PKCS8Key( llave2, password.toCharArray()); //line 2 llave2 = pkcs8.getDecryptedBytes(); //line 3 certificado = DatatypeConverter.parseBase64Binary(cer); KeyFactory kf = KeyFactory.getInstance("RSA"); PKCS8EncodedKeySpec ks = new PKCS8EncodedKeySpec(llave2); PrivateKey privateKey = kf.generatePrivate(ks); X509EncodedKeySpec x = new X509EncodedKeySpec(certificado); PublicKey publicKey = kf.generatePublic(x); I get the following error in PublicKey publicKey = kf.generatePublic(x) . java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException: ObjectIdentifier() -- data isn't an object ID (tag = -96) at sun.security.rsa.RSAKeyFactory.engineGeneratePublic(Unknown Source) at java.security.KeyFactory.generatePublic(Unknown Source) at vital.cancelaciones.GeneraXMLCancelacion.main(GeneraXMLCancelacion.java:118) Caused by: java.security.InvalidKeyException: IOException: ObjectIdentifier() -- data isn't an object ID (tag = -96) at sun.security.x509.X509Key.decode(Unknown Source) at sun.security.x509.X509Key.decode(Unknown Source) at sun.security.rsa.RSAPublicKeyImpl.<init>(Unknown Source) at sun.security.rsa.RSAKeyFactory.generatePublic(Unknown Source) ... 3 more I guess I should do something similar with the public key as done with the private key in lines 2 and 3. Because the certificate is also encrypted. Any suggestions?
Tags (comma-separated)
Save Edits
Cancel