Programming Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

C Examples

Bounced Mail
Bz2
Certificates/Keys
Charset
CSV
Diffie-Hellman
DSA
Email Object
Encryption
FileAccess
FTP
HTML-to-XML
HTTP
IMAP
MHT / HTML Email
MIME
POP3
RSA
SMTP
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
Tar
Upload
XML
Zip


 

 

 

 

 

 

 

 

About RSA Public/Private Keys

Download Chilkat C/C++ Libraries for VC++ 9.0 / Win32

Download Chilkat C/C++ Libraries for VC++ 8.0 / Win32

Download Chilkat C/C++ 64-bit Libraries for VC++ 8.0 / x64

Download Chilkat Visual Studio 2005 C/C++ Libs for Windows Mobile, Pocket PC, SmartPhone, WinCE

Download Chilkat C/C++ Libraries for VC++ 7.0 / Win32

Download Chilkat C/C++ Libraries for VC++ 6.0 / Win32

Download Chilkat C/C++ Libraries for VC++ 6.0, Win 95/98/NT4 Compatible

#include <C_CkCert.h>
#include <C_CkPublicKey.h>
#include <C_CkPrivateKey.h>
#include <C_CkRsa.h>

void ChilkatSample(void)
    {
    HCkCert cert;
    BOOL success;
    HCkPublicKey pubKey;
    HCkPrivateKey privKey;
    HCkRsa rsa;
    const char * privKeyXml;

    cert = CkCert_Create();

    //  Load a digital certificate.
    success = CkCert_LoadFromFile(cert,"digitalCert.cer");
    if (success != TRUE) {
        printf("%s\n",CkCert_lastErrorText(cert));
        return;
    }

    //  A .cer file does not contain the private key.  It should contain
    //  the public key...
    pubKey = CkCert_ExportPublicKey(cert);

    //  Let's have a look at it (in XML format).
    printf("Public Key from Certificate:\n");
    printf("%s\n",CkPublicKey_getXml(pubKey));

    //  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:
    privKey = CkPrivateKey_Create();

    success = CkPrivateKey_LoadRsaDerFile(privKey,"PrivateKey.key");
    if (success != TRUE) {
        printf("%s\n",CkPrivateKey_lastErrorText(privKey));
        return;
    }

    //  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...).
    printf("Private Key from DER:\n");
    printf("%s\n",CkPrivateKey_getXml(privKey));

    rsa = CkRsa_Create();
    success = CkRsa_UnlockComponent(rsa,"Anything for 30-day trial.");
    if (success != TRUE) {
        printf("%s\n",CkRsa_lastErrorText(rsa));
        return;
    }

    //  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:

    privKeyXml = CkPrivateKey_getXml(privKey);
    success = CkRsa_ImportPrivateKey(rsa,privKeyXml);
    if (success != TRUE) {
        printf("%s\n",CkRsa_lastErrorText(rsa));
        return;
    }



    CkCert_Dispose(cert);
    CkPrivateKey_Dispose(privKey);
    CkRsa_Dispose(rsa);

    }

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2008 Chilkat Software, Inc. All Rights Reserved.