Sample code for 30+ languages & platforms
Lianja Requires Chilkat v11.0.0+

Generate an RSA Key and Get as Base64 DER

See more RSA Examples

Demonstrates how to generate a 2048-bit RSA key and return the public and private parts as unencrypted Base64 encoded DER.

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

//  This example assumes the Chilkat API to have been previously unlocked.
//  See Global Unlock Sample for sample code.

loRsa = createobject("CkRsa")

//  Generate a 2048-bit key.
loPrivKey = createobject("CkPrivateKey")
llSuccess = loRsa.GenKey(2048,loPrivKey)
if (llSuccess = .F.) then
    ? loRsa.LastErrorText
    release loRsa
    release loPrivKey
    return
endif

//  Get the public part of the key.
loPubKey = createobject("CkPublicKey")
loPrivKey.ToPublicKey(loPubKey)

//  There are two possible formats for representing the RSA public key 
//  in ASN.1 (DER).  The possible formats are PKCS1 and PKCS8.
//  We can get either by setting bChoosePkcs1 to .T. or .F..
llBChoosePkcs1 = .T.
lcPubKeyBase64Der = loPubKey.GetEncoded(llBChoosePkcs1,"base64")
? "Public Key Base64 DER:"
? lcPubKeyBase64Der

//  Get the private key as Base64 DER:
//  We can get PKCS1 or PKCS8, but with different methods:
lcPrivKeyPkcs1 = loPrivKey.GetPkcs1ENC("base64")
? "Private Key PKCS1 Base64 DER:"
? lcPrivKeyPkcs1

lcPrivKeyPkcs8 = loPrivKey.GetPkcs8ENC("base64")
? "Private Key PKCS8 Base64 DER:"
? lcPrivKeyPkcs8


release loRsa
release loPrivKey
release loPubKey