Programming Examples

ChilkatHOMEASPVisual BasicVB.NETC#CC++MFCDelphiFoxProJavaPerlPythonRubySQL ServerVBScript

PHP ActiveX Examples

Bounced Mail
Bz2
Certificates/Keys
Charset
CSV
DKIM / DomainKey
Diffie-Hellman
DSA
Email Object
Encryption
FileAccess
FTP
HTML Conversion
HTTP
IMAP
MHT / HTML Email
MIME
NTLM
POP3
RSA
SMTP
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
Tar
Upload
XML
Zip
Amazon S3


 

 

 

 

 

 

 

 

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

<?php

$cert = new COM("Chilkat.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:

$success = $cert->LoadByCommonName('Chilkat Software, Inc.');
if ($success == false) {
    print 'Failed to find certificate!' . "\n";
}
else {

    //  Display the certificate's distinguished name:
    print $cert->subjectDN() . "\n";

    $hasPrivKey = $cert->HasPrivateKey();
    if ($hasPrivKey == true) {
        print 'Certificate has a usable private key.' . "\n";
    }
    else {
        print 'Certificate does not have a private key.' . "\n";
    }

    //  If HasPrivateKey returns 0, 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) {
    print 'Failed to load certificate!' . "\n";
}
else {

    $hasPrivKey = $cert->HasPrivateKey();
    if ($hasPrivKey == true) {
        print 'Certificate has a usable private key.' . "\n";
    }
    else {
        print 'Certificate does not have a private key.' . "\n";
    }

}

?>

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

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