Visual C++ Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Visual C++ Examples

CkString
Byte Array
Bounced Mail
Character Encoding
Digital Certificates
Digital Signatures
Email
Encryption
FTP
HTML-to-XML
HTTP
IMAP
MHT / HTML Email
RSA Encryption
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

Unreleased...
Bzip2
LZW
Bz2
Icon

 

 

 

 

 

 

 

 

PKCS7 SignedData Detached Signature

How to create a PKCS7 detached signature. The resulting PKCS7 structure is encoded to a printable string using hex or base64 encoding. The data being signed is not included in the PKCS#7 structure.

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 <CkCrypt2.h>
#include <CkCert.h>

void ChilkatSample(void)
    {
    CkCrypt2 crypt;

    //  Any string argument automatically begins the 30-day trial.
    bool success;
    success = crypt.UnlockComponent("30-day trial");
    if (success != true) {
        printf("Crypt component unlock failed\n");
        return;
    }

    CkCert cert;
    success = cert.LoadByCommonName("Chilkat Software");
    if (success != true) {
        printf("%s\n",cert.lastErrorText());
        return;
    }

    //  Make sure this certificate has a private key available:
    bool bHasPrivateKey;
    bHasPrivateKey = cert.HasPrivateKey();
    if (bHasPrivateKey != true) {
        printf("No private key available for signing.\n");
        return;
    }

    //  Tell the encryption component to use this cert.
    crypt.SetSigningCert(cert);

    const char * strData;
    strData = "This is the data to be signed.";

    //  Indicate that the PKCS7 signature should be returned
    //  as a base64 encoded string:
    crypt.put_EncodingMode("base64");

    //  The EncodingMode may be set to other values such as
    //  "hex", "url", "quoted-printable", etc.

    const char * strSignature;
    strSignature = crypt.SignStringENC(strData);

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

    //  Now verify the signature against the original data.

    //  Tell the component what certificate to use for verification.
    crypt.SetVerifyCert(cert);

    success = crypt.VerifyStringENC(strData,strSignature);
    if (success == true) {
        printf("digital signature verified\n");
    }
    else {
        printf("digital signature invalid\n");
    }

    //  Try it with incorrect data:
    success = crypt.VerifyStringENC("This is not the signed data",strSignature);
    if (success == true) {
        printf("digital signature verified\n");
    }
    else {
        printf("digital signature invalid\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