Sample code for 30+ languages & platforms
Tcl

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 Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

set rsa [new_CkRsa]

# Generate a 2048-bit key.
set privKey [new_CkPrivateKey]

set success [CkRsa_GenKey $rsa 2048 $privKey]
if {$success == 0} then {
    puts [CkRsa_lastErrorText $rsa]
    delete_CkRsa $rsa
    delete_CkPrivateKey $privKey
    exit
}

set password "secret"
# Saving to a relative path (from the current working directory of the process).
set path "rsaKeys/myTestRsaPrivate.pem"
# Encrypt the PEM using 256-bit AES encryption.
CkPrivateKey_put_Pkcs8EncryptAlg $privKey "aes256"
set success [CkPrivateKey_SavePkcs8EncryptedPemFile $privKey $password $path]
if {$success == 0} then {
    puts [CkPrivateKey_lastErrorText $privKey]
    delete_CkRsa $rsa
    delete_CkPrivateKey $privKey
    exit
}

# image

# We can also save the public key.
# There is no need to encrypt public keys.
set pubKey [new_CkPublicKey]

CkPrivateKey_ToPublicKey $privKey $pubKey

set path "rsaKeys/myTestRsaPublic.pem"
# Choose PKCS1 or PKCS8
# We'll choose PKCS8.
set preferPkcs1 0
set success [CkPublicKey_SavePemFile $pubKey $preferPkcs1 $path]
if {$success == 0} then {
    puts [CkPublicKey_lastErrorText $pubKey]
    delete_CkRsa $rsa
    delete_CkPrivateKey $privKey
    delete_CkPublicKey $pubKey
    exit
}

# image

puts "Success."

delete_CkRsa $rsa
delete_CkPrivateKey $privKey
delete_CkPublicKey $pubKey