Java
Chilkat2 Java
Get Public Key from CSR
See more CSR Examples
Demonstrates how to get the public key from a CSR.Chilkat Java Downloads
import com.chilkatsoft.chilkat2.Asn;
import com.chilkatsoft.chilkat2.BinData;
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Pem;
import com.chilkatsoft.chilkat2.PublicKey;
import com.chilkatsoft.chilkat2.Xml;
public class ChilkatExample {
public static void main(String[] args) {
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Pem pem = new Pem();
// No password is required. Pass an empty password string..
String noPassword = "";
try {
pem.loadPemFile("qa_data/csr/csr2.pem", noPassword);
} catch (ChilkatException e) {
System.out.println(e.getLastErrorText());
return;
}
String strBase64 = pem.getEncodedItem("csr", "", "base64", 0);
Asn asn = new Asn();
try {
asn.loadEncoded(strBase64, "base64");
} catch (ChilkatException e) {
System.out.println(e.getLastErrorText());
return;
}
// Convert the ASN.1 to XML.
Xml xml = new Xml();
xml.loadXml(asn.asnToXml());
System.out.println(xml.getXml());
System.out.println("----");
String strModulusHex = xml.getChildContent("bits");
System.out.println("strModulusHex = " + strModulusHex);
System.out.println("----");
// We need the modulus as base64.
BinData bd = new BinData();
bd.appendEncoded(strModulusHex, "hex");
String modulus64 = bd.getEncoded("base64");
System.out.println("modulus64 = " + modulus64);
System.out.println("----");
// Build the XML for the public key.
Xml xmlPubKey = new Xml();
xmlPubKey.setTag("RSAPublicKey");
xmlPubKey.updateChildContent("Modulus", modulus64);
// The RSA exponent will always be decimal 65537 (base64 = AQAB)
xmlPubKey.updateChildContent("Exponent", "AQAB");
System.out.println("RSA public key as XML:");
System.out.println(xmlPubKey.getXml());
System.out.println("----");
// Load the XML into a Chilkat public key object.
PublicKey pubkey = new PublicKey();
try {
pubkey.loadFromString(xmlPubKey.getXml());
} catch (ChilkatException e) {
System.out.println(e.getLastErrorText());
return;
}
// Show the public key as PEM.
boolean preferPkcs1 = true;
System.out.println(pubkey.getPem(preferPkcs1));
}
}