Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
|
About RSA Public/Private Keys
LOCAL loCert LOCAL lnSuccess LOCAL loPubKey LOCAL loPrivKey LOCAL loRsa LOCAL lcPrivKeyXml loCert = CreateObject('Chilkat.Cert') * Load a digital certificate. lnSuccess = loCert.LoadFromFile("digitalCert.cer") IF (lnSuccess <> 1) THEN =MESSAGEBOX(loCert.LastErrorText) QUIT ENDIF * A .cer file does not contain the private key. It should contain * the public key... loPubKey = loCert.ExportPublicKey() * Let's have a look at it (in XML format). ? "Public Key from Certificate:" ? loPubKey.GetXml() * 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: loPrivKey = CreateObject('Chilkat.PrivateKey') lnSuccess = loPrivKey.LoadRsaDerFile("PrivateKey.key") IF (lnSuccess <> 1) THEN =MESSAGEBOX(loPrivKey.LastErrorText) QUIT 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...). ? "Private Key from DER:" ? loPrivKey.GetXml() loRsa = CreateObject('Chilkat.Rsa') lnSuccess = loRsa.UnlockComponent("Anything for 30-day trial.") IF (lnSuccess <> 1) THEN =MESSAGEBOX(loRsa.LastErrorText) QUIT ENDIF * You now realize that the private key really contains both * private and public parts. Therefore, we may import the private * key and the choose to use either the public or private in our * encrypt/decrypt operations: lcPrivKeyXml = loPrivKey.GetXml() lnSuccess = loRsa.ImportPrivateKey(lcPrivKeyXml) IF (lnSuccess <> 1) THEN =MESSAGEBOX(loRsa.LastErrorText) QUIT ENDIF |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.
Mail Component · .NET Email Component · ASP Mail Component · XML Parser