Visual C++ Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CMFCDelphiFoxProJavaPerl
PHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

C++ Examples

CkString
Byte Array
Bounced Mail
Bz2
Character Encoding
CSV
DH Key Exchange
DKIM/DomainKeys
Digital Certificates
Digital Signatures
DSA
Email
Email Object
Encryption
FTP
HTML Conversion
HTTP
IMAP
MHT / HTML Email
POP3
RSA
S/MIME
SMTP
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
Tar
Upload
XML
XMP
Zip Compression


More Examples...
Amazon S3
NTLM
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
LZW

 

 

 

 

 

 

 

 

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.

Downloads:

MS Windows Visual C/C++ Libraries
Linux/CentOS C/C++ Libraries
MAC OS X C/C++ Libraries
Solaris C/C++ Libraries
C++ Builder Libraries
FreeBSD C++ Libraries
HP-UX C++ Libraries
BlackBerry QNX C++ Libraries
#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");
    }

    }

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

Mail Component · .NET Mail Component · XML Parser