Sample code for 30+ languages & platforms
AutoIt Requires Chilkat v11.0.0+

About RSA Public/Private Keys

See more RSA Examples

This example provides some additional information for understanding public/private key pairs. In demonstrates how a private key is a superset of the public key. A public key contains the modulus and exponent. The matching private key also contains the modulus and exponent, but also contains the additional private key parts.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

$oCert = ObjCreate("Chilkat.Cert")

;  Load a digital certificate.
$bSuccess = $oCert.LoadFromFile("digitalCert.cer")
If ($bSuccess = False) Then
    ConsoleWrite($oCert.LastErrorText & @CRLF)
    Exit
EndIf

;  A .cer file does not contain the private key.  It should contain
;  the public key...
$oPubKey = ObjCreate("Chilkat.PublicKey")
$oCert.GetPublicKey($oPubKey)

;  Let's have a look at it (in XML format).
ConsoleWrite("Public Key from Certificate:" & @CRLF)
ConsoleWrite($oPubKey.GetXml() & @CRLF)

;  An RSA public key consists of a modulus and exponent.

;  An RSA private key includes both the modulus and exponent,
;  as well as other "big" numbers: P, Q, D, etc.

;  Let's load an RSA private key from a DER-encoded file:
$oPrivKey = ObjCreate("Chilkat.PrivateKey")

$bSuccess = $oPrivKey.LoadAnyFormatFile("PrivateKey.key","")
If ($bSuccess <> True) Then
    ConsoleWrite($oPrivKey.LastErrorText & @CRLF)
    Exit
EndIf

;  If this private key is the matching half to the public key from
;  the certificate, then the modulus and exponent should
;  be identical.  (Thus, a "private key" really contains both the public part as well as the private parts...).
ConsoleWrite("Private Key from DER:" & @CRLF)
ConsoleWrite($oPrivKey.GetXml() & @CRLF)