Sample code for 30+ languages & platforms
Java

Export a Public Key as DER into a BinData

Demonstrates the Chilkat PublicKey.GetDerBd method, which writes the public key as binary DER into a BinData. The first argument selects the representation (as for GetPem) and the second is the BinData that receives the bytes (its contents are replaced).

Note: The file paths are relative to the application's current working directory. Absolute paths may also be used. Supply the paths appropriate to your own environment.

Background: The in-memory binary export: the raw DER lands in a BinData ready to hash, transmit, or hand to another API without a temporary file. It is the BinData counterpart to the text exporters, and the first argument picks the same PKCS #1 versus SubjectPublicKeyInfo structure.

Chilkat Java Downloads

Java
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;

    //  Load a public key to export.  LoadFromFile inspects the content, so it accepts DER, PEM, XML,
    //  JWK, and other supported representations.
    CkPublicKey pubKey = new CkPublicKey();
    success = pubKey.LoadFromFile("qa_data/public.pem");
    if (success == false) {
        System.out.println(pubKey.lastErrorText());
        return;
        }

    //  Write the public key as binary DER into a BinData.  The 1st argument selects the representation
    //  (as for GetPem) and the 2nd is the BinData that receives the bytes (its contents are replaced).
    boolean preferPkcs1 = false;
    CkBinData bd = new CkBinData();
    success = pubKey.GetDerBd(preferPkcs1,bd);
    if (success == false) {
        System.out.println(pubKey.lastErrorText());
        return;
        }

    System.out.println("Exported " + bd.get_NumBytes() + " DER bytes.");
  }
}