DataFlex
DataFlex
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoSbCertBase64
Handle hoCert
Variant vPubKey
Handle hoPubKey
Integer iNumBits
Handle hoXml
Handle hoBinDat
String sTemp1
Integer iTemp1
Move False To iSuccess
// For this example, I have a certificate in raw base64 format (not PEM),
// that looks like this: "MIIGkDCCBHigAwIBAgIUMDA ... s/iqLsLA=="
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbCertBase64
If (Not(IsComObjectCreated(hoSbCertBase64))) Begin
Send CreateComObject of hoSbCertBase64
End
Get ComLoadFile Of hoSbCertBase64 "qa_data/certs/base64Cert.txt" "utf-8" To iSuccess
Get Create (RefClass(cComChilkatCert)) To hoCert
If (Not(IsComObjectCreated(hoCert))) Begin
Send CreateComObject of hoCert
End
Get ComGetAsString Of hoSbCertBase64 To sTemp1
Get ComLoadFromBase64 Of hoCert sTemp1 To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoCert To sTemp1
Showln sTemp1
Procedure_Return
End
// Get the public key.
Get Create (RefClass(cComChilkatPublicKey)) To hoPubKey
If (Not(IsComObjectCreated(hoPubKey))) Begin
Send CreateComObject of hoPubKey
End
Get pvComObject of hoPubKey to vPubKey
Get ComGetPublicKey Of hoCert vPubKey To iSuccess
Get ComKeySize Of hoPubKey To iNumBits
Showln "Number of bits = " iNumBits
// If using an older version of Chilkat, the key size can be obtained like this:
Get Create (RefClass(cComChilkatXml)) To hoXml
If (Not(IsComObjectCreated(hoXml))) Begin
Send CreateComObject of hoXml
End
Get ComGetXml Of hoPubKey To sTemp1
Get ComLoadXml Of hoXml sTemp1 To iSuccess
Get Create (RefClass(cComChilkatBinData)) To hoBinDat
If (Not(IsComObjectCreated(hoBinDat))) Begin
Send CreateComObject of hoBinDat
End
Get ComGetChildContent Of hoXml "Modulus" To sTemp1
Get ComAppendEncoded Of hoBinDat sTemp1 "base64" To iSuccess
Get ComNumBytes Of hoBinDat To iTemp1
Move (8 * iTemp1) To iNumBits
Showln "Number of bits = " iNumBits
End_Procedure