Python Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Python Examples

Quick Start
Unicode
Byte Array
Bz2
Certificates
CSV
Email
Encryption
FTP
HTML-to-XML
HTTP
IMAP
MHT
MIME
POP3
RSA
S/MIME
Signatures
Socket / SSL
SFTP
SMTP
Spider
SSH Key
SSH
SSH Tunnel
Tar
HTTP Upload
XML
XMP
Zip

More Examples...
String
Email Object
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA

Unreleased...
Bzip2
LZW
Icon

 

 

 

 

 

 

 

Use Certificate and Private Key PEM Files to Create a Digital Signature

Demonstrates how to load a digital certificate from a PEM file, load it's corresponding private key from a PEM file, save the private key to a key container (if necessary), link the certificate to the key container, and use it to create a digital signature.

Download Chilkat Python Library

import sys
import chilkat

cert = chilkat.CkCert()

#  Load the cert from a PEM file;
cert.LoadFromFile("cert.pem")

pkey = chilkat.CkPrivateKey()

#  Load the private key from an RSA PEM file:
pkey.LoadPemFile("pkey_rsa.pem")

#  If the "chilkat" key container does not already exist,
#  we'll create it and import the private key:
container = chilkat.CkKeyContainer()
needPrivateKeyAccess = True
machineKeyset = False
if (container.OpenContainer("chilkat",needPrivateKeyAccess,machineKeyset) == False):

    #  We need to create the key container and import
    #  the private key:
    success = container.CreateContainer("chilkat",machineKeyset)
    if (success == True):
        isKeyExchangePair = False
        success = container.ImportPrivateKey(pkey,isKeyExchangePair)
        if (success == False):
            print "Failed to import private key into key container"
            sys.exit()

    else:
        print "Failed to create key container"
        sys.exit()

#  At this point, the key container contains the private key.
#  Link the certificate with the key container:
bForSigning = True
success = cert.LinkPrivateKey("chilkat",machineKeyset,bForSigning)
if (success == False):
    print "Failed to link certificate with key container"
    sys.exit()

#  Use Chilkat Crypt (a non-freeware component) to create
#  a digital signature using the certificate w/ private key:
crypt = chilkat.CkCrypt2()

#  Any string argument automatically begins the 30-day trial.
success = crypt.UnlockComponent("30-day trial")
if (success != True):
    print "Crypt component unlock failed"
    sys.exit()

#  Tell the crypt component to use this cert.
crypt.SetSigningCert(cert)

#  We can sign any type of file, creating a .p7s as output:
success = crypt.CreateP7S("license.rtf","license.p7s")
if (success == False):
    print crypt.lastErrorText()

    sys.exit()

print crypt.lastErrorText()

#  Verify and restore the original file:
crypt.SetVerifyCert(cert)

success = crypt.VerifyP7S("license.rtf","license.p7s")
if (success == False):
    print crypt.lastErrorText()

    sys.exit()

print "Success!"

#  The Chilkat Certificate, Certificate Store, Private Key,
#  Public Key, and Key Container classes / objects are freeware.

#  They are used by and included with the Chilkat Email,
#  Crypt, S/MIME, and other commercial Chilkat components.

 

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

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