Sample code for 30+ languages & platforms
Tcl

Get a Certificate's Key Size

See more Certificates Examples

Demonstrates how to get the RSA key size of a certificate (for example, 1024-bit, 2048-bit, etc.)

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

# For this example, I have a certificate in raw base64 format (not PEM),
# that looks like this:  "MIIGkDCCBHigAwIBAgIUMDA ... s/iqLsLA=="
set sbCertBase64 [new_CkStringBuilder]

set success [CkStringBuilder_LoadFile $sbCertBase64 "qa_data/certs/base64Cert.txt" "utf-8"]

set cert [new_CkCert]

set success [CkCert_LoadFromBase64 $cert [CkStringBuilder_getAsString $sbCertBase64]]
if {$success == 0} then {
    puts [CkCert_lastErrorText $cert]
    delete_CkStringBuilder $sbCertBase64
    delete_CkCert $cert
    exit
}

# Get the public key.
set pubKey [new_CkPublicKey]

CkCert_GetPublicKey $cert $pubKey

set numBits [CkPublicKey_get_KeySize $pubKey]
puts "Number of bits = $numBits"

# If using an older version of Chilkat, the key size can be obtained like this:
set xml [new_CkXml]

CkXml_LoadXml $xml [CkPublicKey_getXml $pubKey]

set binDat [new_CkBinData]

CkBinData_AppendEncoded $binDat [CkXml_getChildContent $xml "Modulus"] "base64"

set numBits [expr 8 * [CkBinData_get_NumBytes $binDat]]
puts "Number of bits = $numBits"

delete_CkStringBuilder $sbCertBase64
delete_CkCert $cert
delete_CkPublicKey $pubKey
delete_CkXml $xml
delete_CkBinData $binDat