DataFlex
DataFlex
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoRsa
Variant vPrivKey
Handle hoPrivKey
Variant vPubKey
Handle hoPubKey
Boolean iBChoosePkcs1
String sPubKeyBase64Der
String sPrivKeyPkcs1
String sPrivKeyPkcs8
String sTemp1
Move False To iSuccess
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatRsa)) To hoRsa
If (Not(IsComObjectCreated(hoRsa))) Begin
Send CreateComObject of hoRsa
End
// Generate a 2048-bit key.
Get Create (RefClass(cComChilkatPrivateKey)) To hoPrivKey
If (Not(IsComObjectCreated(hoPrivKey))) Begin
Send CreateComObject of hoPrivKey
End
Get pvComObject of hoPrivKey to vPrivKey
Get ComGenKey Of hoRsa 2048 vPrivKey To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoRsa To sTemp1
Showln sTemp1
Procedure_Return
End
// Get the public part of the key.
Get Create (RefClass(cComChilkatPublicKey)) To hoPubKey
If (Not(IsComObjectCreated(hoPubKey))) Begin
Send CreateComObject of hoPubKey
End
Get pvComObject of hoPubKey to vPubKey
Get ComToPublicKey Of hoPrivKey vPubKey To iSuccess
// 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 True or False.
Move True To iBChoosePkcs1
Get ComGetEncoded Of hoPubKey iBChoosePkcs1 "base64" To sPubKeyBase64Der
Showln "Public Key Base64 DER:"
Showln sPubKeyBase64Der
// Get the private key as Base64 DER:
// We can get PKCS1 or PKCS8, but with different methods:
Get ComGetPkcs1ENC Of hoPrivKey "base64" To sPrivKeyPkcs1
Showln "Private Key PKCS1 Base64 DER:"
Showln sPrivKeyPkcs1
Get ComGetPkcs8ENC Of hoPrivKey "base64" To sPrivKeyPkcs8
Showln "Private Key PKCS8 Base64 DER:"
Showln sPrivKeyPkcs8
End_Procedure