DataFlex
DataFlex
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoCert
Variant vPubKey
Handle hoPubKey
Handle hoPrivKey
String sTemp1
Move False To iSuccess
Get Create (RefClass(cComChilkatCert)) To hoCert
If (Not(IsComObjectCreated(hoCert))) Begin
Send CreateComObject of hoCert
End
// Load a digital certificate.
Get ComLoadFromFile Of hoCert "digitalCert.cer" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoCert To sTemp1
Showln sTemp1
Procedure_Return
End
// A .cer file does not contain the private key. It should contain
// 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
// Let's have a look at it (in XML format).
Showln "Public Key from Certificate:"
Get ComGetXml Of hoPubKey To sTemp1
Showln sTemp1
// 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:
Get Create (RefClass(cComChilkatPrivateKey)) To hoPrivKey
If (Not(IsComObjectCreated(hoPrivKey))) Begin
Send CreateComObject of hoPrivKey
End
Get ComLoadAnyFormatFile Of hoPrivKey "PrivateKey.key" "" To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoPrivKey To sTemp1
Showln sTemp1
Procedure_Return
End
// 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...).
Showln "Private Key from DER:"
Get ComGetXml Of hoPrivKey To sTemp1
Showln sTemp1
End_Procedure