MFC Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

MFC 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


 

 

 

 

 

 

 

 

Check Certificate for Private Key

Checks to see if a certificate has its associated private key installed on the computer.

Detailed Instructions for Installing a PFX for Use by ASP / ASP.NET

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

// Needs #include <CkCert.h>

    CkString strOut;

    CkCert cert;

    //  There are many ways of loading a Chilkat certificate object:
    //  1) From a Windows registry-based certificate store.
    //  2) From a PFX file.
    //  3) From a DER encoded .cer file.
    //  4) From a PEM file.

    //  The point of this example is to show how to check for the existence
    //  of a usable private key.  This is done by calling the HasPrivateKey method.

    //  The LoadByCommonName method searches the registry-based
    //  Windows Current User Certificate Store and Local Machine Certificate
    //  Store for a certificate whose common name (CN) matches
    //  the argument:
    bool success;
    success = cert.LoadByCommonName("Chilkat Software, Inc.");
    if (success == false) {
        strOut.append("Failed to find certificate!\r\n");
    }
    else {

        //  Display the certificate's distinguished name:
        strOut.append(cert.subjectDN());
        strOut.append("\r\n");

        bool hasPrivKey;

        hasPrivKey = cert.HasPrivateKey();
        if (hasPrivKey == true) {
            strOut.append("Certificate has a usable private key.");
            strOut.append("\r\n");
        }
        else {
            strOut.append("Certificate does not have a private key.");
            strOut.append("\r\n");
        }

        //  If HasPrivateKey returns false, it's possible that the private key
        //  does exist, but the calling process does not have permission to access it.

        //  If your program is running under IIS (perhaps in a web service), you need
        //  rights to the private key to perform a signature, and the IIS processes
        //  typically runs in the default IIS Application Pool under the
        //  NETWORK_SERVICE ID, which has no rights.

        //  Grant the ID Full Control rights to the private key which is stored in
        //  C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\Machine Keys.
        //  (Perhaps lesser rights would work; you may experiment).

    }

    //  Alternatively, load a Certificate from a .cer file.
    //  (Certs may also be loaded from other types of files, such as PEM, DER, PFX, etc.)
    success = cert.LoadFromFile("myCert.cer");
    if (success == false) {
        strOut.append("Failed to load certificate!\r\n");
    }
    else {

        hasPrivKey = cert.HasPrivateKey();
        if (hasPrivKey == true) {
            strOut.append("Certificate has a usable private key.");
            strOut.append("\r\n");
        }
        else {
            strOut.append("Certificate does not have a private key.");
            strOut.append("\r\n");
        }

    }


    SetDlgItemText(IDC_EDIT1,strOut.getUnicode());

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

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