Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
Check Certificate for Private KeyChecks 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 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 <C_CkCert.h> void ChilkatSample(void) { HCkCert cert; BOOL success; BOOL hasPrivKey; cert = CkCert_Create(); // 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: success = CkCert_LoadByCommonName(cert,"Chilkat Software, Inc."); if (success == FALSE) { printf("Failed to find certificate!\n"); } else { // Display the certificate's distinguished name: printf("%s\n",CkCert_subjectDN(cert)); hasPrivKey = CkCert_HasPrivateKey(cert); if (hasPrivKey == TRUE) { printf("Certificate has a usable private key.\n"); } else { printf("Certificate does not have a private key.\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 = CkCert_LoadFromFile(cert,"myCert.cer"); if (success == FALSE) { printf("Failed to load certificate!\n"); } else { hasPrivKey = CkCert_HasPrivateKey(cert); if (hasPrivKey == TRUE) { printf("Certificate has a usable private key.\n"); } else { printf("Certificate does not have a private key.\n"); } } CkCert_Dispose(cert); } |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.