emClient.jar

emClient.jar is a Java library that can be used to interact with the eMudhra Certificate Authority (CA). The library provides a simple and easy-to-use interface for performing common tasks such as creating and revoking certificates, renewing certificates, and fetching certificate details.

Steps to utilize emClient.jar :

  1. Creation of EmClient object by passing the parameters i.e., base64EncodedPKCS12, Pin, Username, Password.

EmClient cc = new EmClient (base64EncodedPKCS12, pin, username, password, AESKey);

Parameter

Presence

Data Type

Description

userName

M

string

You need to pass username that is registered with emCA for API process.

password

M

string

You need to pass the password that is registered with emCA for API process.

Pin

M

string

You need to pass PFX Pin that is registered with emCA for API process.

base64EncodedPKC S12

M

string

You need to pass the base64Encoded data of PFX that is generated with emCA for API process.

AESKey

M

string

You need to pass the AES Key that is generated with emCA for API process.

  1. Call APIs by using the EmClient Object as per the requirement.

List of API‟s
Response rs=cc.createCertificate(baseURL+"createCertificate", csr, profileName, subscriberId, applicationId);
Response rs=cc.createCertificateById(baseURL+"createCertificateById", csr, profileID, subscriberId, validity, validFrom, applicationId);
Response rs=cc.createCertificateP7B(baseURL+"createCertificateP7B", csr, profileName, subscriberId,applicationId);
Response rs=cc.createCertificateP7BById(baseURL+"createCertificateP7BById", csr, profileID, subscriberId, validity,validFrom,applicationId);
Response rs=cc.createPKCS12(baseURL+"createPKCS12", csrinfo, profileNamePKCS12, subscriberId,applicationId); 
Response rs=cc.createPKCS12ById(baseURL+"createPKCS12ById", csrinfo, profileID, subscriberId, validity,validFrom, applicationId);
Response rs=cc.getCertificate(baseURL+"getCertificate", serialNoHexa);
Response rs=cc.getCertificateByRequestID(baseURL+"getCertificateByRequestID", requestID); Response rs=cc.revoke(baseURL+"revoke", serialNo, revocationMode, remarks);
Response rs=cc.reinstate(baseURL+"reinstate", serialNoHexa, remarks); Response rs=cc.suspend(baseURL+"suspend", serialNoHexa, remarks);
Response rs=cc.rekey(baseURL+"rekey", csr, serialNo, remarks,validFrom,applicationID); 
Response rs=cc.verifySignature(baseURL+"verifySignature", signdata);
Response rs=cc.createCustomCertificateById(csr, profileID, subscriberId, baseURL+"createCustomCertificateById", validity, validFrom, subjectDNOids, sANValues, crertificateTypeRequest,applicationId);
Response rs=cc.getExpirySoonCertificateByRequestID(baseURL+"getExpirySoonCertificate", getExpirySoonCertificate,numberofdaystoexpiry);
Response rs=cc.createeSignCustomCertificateById(baseURL+"createeSignCustomCertificateById",profileID, csr, subscriberId,validity,validityFrom, subjectDNOids, sANValues, crertificateTypeRequest,Application ID, transactionID);
Response rs=cc.getPKCS12(baseURL+"getPKCS12",pin,serialNoHexa,subscriberId);
Response rs=cc.getProfileByProfileName(baseURL+"getProfileinfoByProfilename", profileName);
Response rs=cc.getCertificateProfileList(baseURL+"getCertificateProfileList", CAName);
Response rs=cc.createCertificatesByIdWithCsrPdfData(baseURL+"createCertificatesByIdWithMultipleCsrData", base64EncodedMultiCSRpdf, profileID, subscriberId, validity,validFrom,applicationId);

Sample class for utilizing emClient.jar

package com.emudhra.emca.controller; import java.io.File;
import java.io.FileInputStream; import java.io.IOException;
import com.emudhra.emca.pojo.Response;
import com.sun.org.apache.xml.internal.security.utils.Base64; public class emClientTest {
public static final String baseURL =="http://127.0.0.1:8080/emCAServices/"; public static final String pkcs12 = "D:/emCAC lient.pfx";
public static final String pin = "test@123"; public static final String username = "test"; public static final String password = "test@123";
public static final String profilenameManual = ""; public static final String profileName ="test profile"; public static final int profileID =11;
public static final String requestID =""; public static final String subscriberId ="";
public static final String validity ="00:00:00:30";
public static final String validFrom = "00:00:0000 00:00:00"; public static final String profileNamePKCS12 ="";
public static final String profileNamePKCS12Manual ="";
public static final String serialNo ="314739829306269779045572511575835672309"; public static final String serialNoHexa ="9e7f372627ae7a37ccf7fc8892739c6e"; public static final String remarks ="Testing";
public static final String crertificateTypeRequest ="true"; public static final String applicationId ="24352352364"; public static final String getExpirySoonCertificate ="31";
public static final String uniqueAESKey="a9eK9CUFvOLLY714xih/iNdEB0EOtEQpdDHohNJHE+k="
public static String csr = "MIIBRDCB6wIBADCBiDEhMB8GCSqGSIb3DQEJARYSYW51cC5rQGVtdWRocmEuY29tMRIwEAYDVQQUEwk1Njc4OTA0MzIxGDAWBgNVBAc
TD01hemFyaSBUYWtoYXlpbDEPMA0GA1UEAxMGTmlraGlsMQ0wCwYDVQQIEwRIYWlsMRUwEwYDVQQGEwxTYXVkaSBBcmFiaWEwWTATB gcqhkjOPQIBBggqhkjOPQMBBwNCAARJeVEW9b4aUQ9/f0ZskbrTXTzp//YRQW8iGvSirM3FTeW4VwJ3QRS16nbRiBKghhqJIroE8m9bchXmDcwVk2 MwoAAwCgYIKoZIzj0EAwIDSAAwRQIgIIwWD0ZImPjLESKurtluxFAKJxHNJFinVIdlrvAKukYCIQC1g/dZWKwQ+mIQ/mgBgkdNQIkrG+A7CarlFOpj SN3bvA=="
public static String csrinfo = "CN=Test876~SERIALNUMBER=04f85bdd24773b66e0bf16b0f59194c78855c7ffcb7c3cf40dce71ba4ff1e91~E=test987@test~O=eMudhra~OU=ESS~S=KA RNATAKA~C=IN~PostalCode=570004~STREET=Sai Arca de, #56 3rd Floor, Outer Ring Rd, Devarabisanahalli, Bengaluru, Karnataka, 560103~ HOUSEIDENTIFIER=3 88~UID=test877~
PSEUDONYM=test098~PHONE=04f85bdd24773b66e0bf16b0f59194c78855c7ffcb7c3cf40dce71ba4ff1e90a~TITLE=Mr~2.5.4.4=kumar~rfc822Name=arjun.
 
kb@emudhra.com~dNSName=www.emudhra.com~dNSName=*.emudhra.com~iPAddress=10.80.106.78~iPAddress=10.80.106.79~registeredID=2.10.100.2.4
.5~KeyAlogirthmAndSize=RSA-2048~Password=eMudhra@1"
public static final String subjectDNOids = "2.5.4.3|Nikhil~2.5.4.6|SA~2.5.4.8|H ail~2.5.4.7|Mazari Takhayil~2.5.4.5|28d5585e9b2cda95f25f3d7fbe60da31483af508c0c13da7ca390c7bb4a86cea~2.5.4.20|8605d8dd297f7a9aeb620c318f1f74253785605c0ac87af 7cc1221578d15ccd7~2.5.4.45|14567809871"
public static final String sANValues ="rfc822Name=pawan.s@emudhra. com";

public static void main(String[] args) throws Exception {
String base64EncodedPKCS12 = getBase64EncodedPKCS12(pkcs12);
EmClient cc = new EmClient(base64EncodedPKCS12, pin, username, password, uniqueAESKey);
Response rs=cc.createCertificateById(baseURL+"createCertificateById", csr, profileID, subscriberId, validity, validFrom, applicationId ); for (int i = 1; i <= 1; i++) {
System.out.println("Status:" + rs.getStatus()); System.out.println("Result:" + rs.getResult()); System.out.println("SubscriberID:" + rs.getSubscriberId()); System.out.println("RequestID:" + rs.getRequestId());
}
}

#java code for to get base64EncodedPKCS12
Public static string get base64EncodedPKCS12(string pkcs12location){ File file = new File("pkcs12location");
FileInputStream fis = null;
byte[] bytesArray = new byte[(int) file.length()]; fis = new FileInputStream(pkcs12location); fis.read(bytesArray);
fis.close();
String base64EncodedPKCS12 = Base64.encode(bytesArray); return base64EncodedPKCS12;
}
#java code for to get base64EncodedCsrDataPDF
Public static string get base64EncodedCsrDataPDF (string csrData){ File file = new File(csrData);
PDDocument document = PDDocument.load(file); PDFTextStripper pdfStripper = new PDFTextStripper(); String textPdf = pdfStripper.getText(document);
String base64EncodedCsrData = Base64.encode(textPdf.getBytes()); return base64EncodedCsrData;
}
}

Last updated