Java
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.*;
public class ChilkatExample {
static {
try {
System.loadLibrary("chilkat");
} catch (UnsatisfiedLinkError e) {
System.err.println("Native code library failed to load.\n" + e);
System.exit(1);
}
}
public static void main(String argv[])
{
boolean success = false;
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkPem pem = new CkPem();
// No password is required. Pass an empty password string..
String noPassword = "";
success = pem.LoadPemFile("qa_data/csr/csr2.pem",noPassword);
if (success != true) {
System.out.println(pem.lastErrorText());
return;
}
String strBase64 = pem.getEncodedItem("csr","","base64",0);
CkAsn asn = new CkAsn();
success = asn.LoadEncoded(strBase64,"base64");
if (success != true) {
System.out.println(asn.lastErrorText());
return;
}
// Convert the ASN.1 to XML.
CkXml xml = new CkXml();
success = 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.
CkBinData bd = new CkBinData();
bd.AppendEncoded(strModulusHex,"hex");
String modulus64 = bd.getEncoded("base64");
System.out.println("modulus64 = " + modulus64);
System.out.println("----");
// Build the XML for the public key.
CkXml xmlPubKey = new CkXml();
xmlPubKey.put_Tag("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.
CkPublicKey pubkey = new CkPublicKey();
success = pubkey.LoadFromString(xmlPubKey.getXml());
if (success != true) {
System.out.println(pubkey.lastErrorText());
return;
}
// Show the public key as PEM.
boolean preferPkcs1 = true;
System.out.println(pubkey.getPem(preferPkcs1));
}
}