Sample code for 30+ languages & platforms
DataFlex

Generate an RSA Key and Save to Encrypted PEM

See more RSA Examples

Demonstrates how to generate an RSA key and save to an encrypted PEM file.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoRsa
    Variant vPrivKey
    Handle hoPrivKey
    String sPassword
    String sPath
    Variant vPubKey
    Handle hoPubKey
    Boolean iPreferPkcs1
    String sTemp1

    Move False To iSuccess

    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

    Move "secret" To sPassword
    // Saving to a relative path (from the current working directory of the process).
    Move "rsaKeys/myTestRsaPrivate.pem" To sPath
    // Encrypt the PEM using 256-bit AES encryption.
    Set ComPkcs8EncryptAlg Of hoPrivKey To "aes256"
    Get ComSavePkcs8EncryptedPemFile Of hoPrivKey sPassword sPath To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoPrivKey To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // image

    // We can also save the public key.
    // There is no need to encrypt public keys.
    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

    Move "rsaKeys/myTestRsaPublic.pem" To sPath
    // Choose PKCS1 or PKCS8
    // We'll choose PKCS8.
    Move False To iPreferPkcs1
    Get ComSavePemFile Of hoPubKey iPreferPkcs1 sPath To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoPubKey To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // image

    Showln "Success."


End_Procedure