DataFlex
DataFlex
Get RSA Key Modulus from .cer or .key
See more Certificates Examples
Demonstrates how to get the RSA key modulus from either the certificate (.cer) or RSA key (.key). OpenSSL commands to do the same would be:openssl x509 -inform DER -in "test.cer" -modulus -nooutor
openssl pkcs8 -inform DER -inβ "test.key"β -outform PEM -passin pass:"12345β678aβ" | openssl rsa -inform PEM -modulus -noout
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoPrivKey
String sPassword
Handle hoXml
String sModulus
Handle hoBinDat
String sHexModulus
Handle hoCert
Variant vPubKey
Handle hoPubKey
String sTemp1
Move False To iSuccess
Get Create (RefClass(cComChilkatPrivateKey)) To hoPrivKey
If (Not(IsComObjectCreated(hoPrivKey))) Begin
Send CreateComObject of hoPrivKey
End
Move "12345678a" To sPassword
Get ComLoadPkcs8EncryptedFile Of hoPrivKey "qa_data/certs/test_12345678a.key" sPassword To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoPrivKey To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatXml)) To hoXml
If (Not(IsComObjectCreated(hoXml))) Begin
Send CreateComObject of hoXml
End
Get ComGetXml Of hoPrivKey To sTemp1
Get ComLoadXml Of hoXml sTemp1 To iSuccess
// The XML contains the parts of the key in base64.
Showln "Private Key XML:"
Get ComGetXml Of hoXml To sTemp1
Showln sTemp1
// We can get the base64 modulus like this:
Get ComGetChildContent Of hoXml "Modulus" To sModulus
Showln "base64 modulus = " sModulus
// To convert to hex:
Get Create (RefClass(cComChilkatBinData)) To hoBinDat
If (Not(IsComObjectCreated(hoBinDat))) Begin
Send CreateComObject of hoBinDat
End
Get ComAppendEncoded Of hoBinDat sModulus "base64" To iSuccess
Get ComGetEncoded Of hoBinDat "hex" To sHexModulus
Showln "hex modulus = " sHexModulus
// Now get the modulus from the cert:
Get Create (RefClass(cComChilkatCert)) To hoCert
If (Not(IsComObjectCreated(hoCert))) Begin
Send CreateComObject of hoCert
End
Get ComLoadFromFile Of hoCert "qa_data/certs/test_12345678a.cer" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoCert To sTemp1
Showln sTemp1
Procedure_Return
End
// The cert contains the public key, which is composed of the
// modulus + exponent (for RSA keys).
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 ComGetXml Of hoPubKey To sTemp1
Get ComLoadXml Of hoXml sTemp1 To iSuccess
Showln "Public Key XML:"
Get ComGetXml Of hoXml To sTemp1
Showln sTemp1
// Proceed in the same way as before....
Get ComGetChildContent Of hoXml "Modulus" To sModulus
Showln "base64 modulus = " sModulus
// To convert to hex:
Get ComClear Of hoBinDat To iSuccess
Get ComAppendEncoded Of hoBinDat sModulus "base64" To iSuccess
Get ComGetEncoded Of hoBinDat "hex" To sHexModulus
Showln "hex modulus = " sHexModulus
End_Procedure