Visual C++ Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Visual C++ Examples

CkString
Byte Array
Bounced Mail
Bz2
Character Encoding
CSV
Digital Certificates
Digital Signatures
Email
Encryption
FTP
HTML-to-XML
HTTP
IMAP
MHT / HTML Email
RSA
S/MIME
Socket
Spider
Tar
Upload
XML
XMP
Zip Compression


More Examples...
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
SSH Key
SSH
SSH Tunnel
SFTP

Unreleased...
FileAccess
Bzip2
LZW
Icon

 

 

 

 

 

 

 

 

RSA Signature with Certificate's Private Key from PFX

Demonstrates how to use a certificate's private key from a PFX file to create an RSA signature.

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

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

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

#include <CkCertStore.h>
#include <CkCert.h>
#include <CkPrivateKey.h>
#include <CkString.h>
#include <CkRsa.h>

void ChilkatSample(void)
    {

    bool success;

    //  Create an instance of a certificate store object, load a PFX file,
    //  locate the certificate we need, and use it for signing.
    //  (a PFX file may contain more than one certificate.)
    CkCertStore certStore;

    //  The 1st argument is the filename, the 2nd arg is the
    //  PFX file's password:
    success = certStore.LoadPfxFile("chilkat.pfx","test");
    if (success != true) {
        printf("%s\n",certStore.lastErrorText());
        return;
    }

    CkCert *cert = 0;
    cert = certStore.FindCertBySubject("Chilkat Software, Inc.");
    if (cert == 0 ) {
        printf("%s\n",certStore.lastErrorText());
        return;
    }

    CkPrivateKey *pkey = 0;
    pkey = cert->ExportPrivateKey();
    if (pkey == 0 ) {
        printf("%s\n",cert->lastErrorText());
        return;
    }

    CkString pkeyXml;
    //  Get the private key in XML format:
    pkeyXml = pkey->getXml();
    delete pkey;

    CkRsa rsa;

    //  Any string argument automatically begins the 30-day trial.

    success = rsa.UnlockComponent("30-day trial");
    if (success != true) {
        printf("RSA component unlock failed\n");
        return;
    }

    //  Import the private key into the RSA component:
    success = rsa.ImportPrivateKey(pkeyXml);
    if (success != true) {
        printf("%s\n",rsa.lastErrorText());
        return;
    }

    //  This example will sign a string, and receive the signature
    //  in a hex-encoded string.  Therefore, set the encoding mode
    //  to "hex":
    rsa.put_EncodingMode("hex");

    CkString strData;
    strData = "This is the string to be signed.";

    //  Sign the string using the sha-1 hash algorithm.
    //  Other valid choices are "md2" and "md5".
    CkString hexSig;
    hexSig = rsa.signStringENC(strData,"sha-1");

    printf("%s\n",(const char *)hexSig);

    printf("Success!\n");
    }

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

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

Mail Component · .NET Mail Component · XML Parser