Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Java exception while creating java class

user-682bvJul 16 2023

I am facing below error message while creating java class.

Error

Error signing payment request. Please verify the certificate.
java.io.IOException: parseAlgParameters failed: ObjectIdentifier() -- data isn't an object ID (tag = 48)
at sun.security.pkcs12.PKCS12KeyStore.parseAlgParameters(PKCS12KeyStore.java:816)
at sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:2018)
at java.security.KeyStore.load(KeyStore.java:1445)
at com.alfaris.restdemo.client.VaCreationClient.signRequest(RAJH:43)
Caused by: java.io.IOException: ObjectIdentifier() -- data isn't an object ID (tag = 48)
at sun.security.util.ObjectIdentifier.<init>(ObjectIdentifier.java)
at sun.security.util.DerInputStream.getOID(DerInputStream.java)
at com.sun.crypto.provider.PBES2Parameters.engineInit(PBES2Parameters.java)
at java.security.AlgorithmParameters.init(AlgorithmParameters.java:293)
at sun.security.pkcs12.PKCS12KeyStore.parseAlgParameters(PKCS12KeyStore.java:812)
... 3 more

Java Version

1.8.0_201

Db Version

19.0.0.0.0

Code

CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "RAJ" AS
package com.alfaris.restdemo.client;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.Security;
import java.security.cert.CertStore;
import java.security.cert.CertificateException;
import java.security.cert.CollectionCertStoreParameters;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;

import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLSession;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.X509TrustManager;

import org.bouncycastle.cms.CMSProcessableByteArray;
import org.bouncycastle.cms.CMSSignedData;
import org.bouncycastle.cms.CMSSignedDataGenerator;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.util.encoders.Base64;
import com.fasterxml.jackson.databind.cfg.*;

public class VaCreationClient {

public static String signRequest(String inputStr,String p_certfile, String strPassword){
String str = "";
X509Certificate cert = null;
PrivateKey priv = null;
KeyStore keystore = null;
try{
char[] passw = strPassword.toCharArray();
Security.addProvider(new BouncyCastleProvider());
keystore = KeyStore.getInstance("PKCS12", "SunJSSE");
keystore.load(new FileInputStream(p_certfile),passw);
Enumeration e = keystore.aliases();
String name = "";
if (e != null){
while (e.hasMoreElements())
{
String n = (String)e.nextElement();
if (keystore.isKeyEntry(n))
{
name = n;
}
}
}
priv = (PrivateKey)keystore.getKey(name, passw);
cert = (X509Certificate)keystore.getCertificate(name);
java.security.cert.Certificate[] certChain = keystore.getCertificateChain(name);
List certList = new ArrayList();
CertStore certs = null;
for (int i = 0; i < certChain.length; i++)
certList.add(certChain[i]);
certs = CertStore.getInstance("Collection", new CollectionCertStoreParameters(certList), "BC");
CMSSignedDataGenerator sgen = new CMSSignedDataGenerator();
sgen.addSigner(priv, (X509Certificate)cert, CMSSignedDataGenerator.DIGEST_SHA1);
sgen.addCertificatesAndCRLs(certs);
byte[] utf8 = inputStr.toString().getBytes("UTF8");
CMSSignedData csd = sgen.generate(new CMSProcessableByteArray(utf8), true, "BC");
byte[] signedData = csd.getEncoded();
byte[] signedDataB64 = Base64.encode(signedData);
str = new String(signedDataB64);

   }  
   catch (Exception ex)  
   {  
       System.out.println("Error signing payment request. Please verify the certificate.");  
       ex.printStackTrace();  
   }  
   return str;

}
}

Regards
/

Comments
Post Details
Added on Jul 16 2023
0 comments
427 views