Sample code for 30+ languages & platforms
AutoIt

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)