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 :
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.
Call APIs by using the EmClient Object as per the requirement.
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;
}
}