Perl Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Perl Examples

Quick Start
Perl Unicode
Perl Byte Array
Perl Certs
Perl Email
Perl Encryption
Perl FTP
HTML-to-XML
Perl HTTP
Perl IMAP
Perl MHT
Perl MIME
Perl RSA
Perl S/MIME
Perl Signatures
Perl Socket
Perl Spider
Perl Tar
Perl Upload
Perl XML
Perl XMP
Perl Zip

More Examples...
String
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor

Unreleased...
Service
PPMD
Deflate
Bzip2
LZW
Bz2
DH Key Exchange
DSA
Icon

 

 

 

 

 

 

 

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

Chilkat Module for Perl 5.8.*

Chilkat Module for Perl 5.10.*

use chilkat;


$cert = new chilkat::CkCert();

#  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 == 0) {
    print "Failed to find certificate!" . "\n";
}
else {

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

    $hasPrivKey = $cert->HasPrivateKey();
    if ($hasPrivKey == 1) {
        print "Certificate has a usable private key." . "\r\n";
    }
    else {
        print "Certificate does not have a private key." . "\r\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 == 0) {
    print "Failed to load certificate!" . "\n";
}
else {

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

}


 

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

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