1#!/usr/local/bin/python3.8
2
3"""Cryptographic examples using python-gnutls"""
4
5import sys
6import os
7import time
8
9from gnutls.crypto import *
10
11script_path = os.path.realpath(os.path.dirname(sys.argv[0]))
12certs_path = os.path.join(script_path, 'certs')
13
14cert = X509Certificate(open(certs_path + '/valid.crt').read())
15crl = X509CRL(open(certs_path + '/crl.pem').read())
16
17print ''
18
19print 'CRL certs/crl.pem:'
20print '------------------'
21print 'CRL issuer:'
22print '  CN = %s' % crl.issuer.CN # or crl.issuer.common_name
23print '  O  = %s' % crl.issuer.O  # or crl.issuer.organization
24print '  OU = %s' % crl.issuer.OU # or crl.issuer.organization_unit
25print '  C  = %s' % crl.issuer.C  # or crl.issuer.country
26print '  ST = %s' % crl.issuer.ST # or crl.issuer.state
27print '  L  = %s' % crl.issuer.L  # or crl.issuer.locality
28print '  EMAIL = %s' % crl.issuer.EMAIL # or crl.issuer.email
29print 'CRL version:', crl.version
30print 'CRL count:  ', crl.count
31print ''
32
33print 'Certificate certs/valid.crt:'
34print '----------------------------'
35print 'Cert subject:'
36print '  CN = %s' % cert.subject.CN # or cert.subject.common_name
37print '  O  = %s' % cert.subject.O  # or cert.subject.organization
38print '  OU = %s' % cert.subject.OU # or cert.subject.organization_unit
39print '  C  = %s' % cert.subject.C  # or cert.subject.country
40print '  ST = %s' % cert.subject.ST # or cert.subject.state
41print '  L  = %s' % cert.subject.L  # or cert.subject.locality
42print '  EMAIL = %s' % cert.subject.EMAIL # or cert.subject.email
43print 'Cert issuer:'
44print '  CN = %s' % cert.issuer.CN # or cert.issuer.common_name
45print '  O  = %s' % cert.issuer.O  # or cert.issuer.organization
46print '  OU = %s' % cert.issuer.OU # or cert.issuer.organization_unit
47print '  C  = %s' % cert.issuer.C  # or cert.issuer.country
48print '  ST = %s' % cert.issuer.ST # or cert.issuer.state
49print '  L  = %s' % cert.issuer.L  # or cert.issuer.locality
50print '  EMAIL = %s' % cert.issuer.EMAIL # or cert.issuer.email
51print 'Cert serial:    ', cert.serial_number
52print 'Cert version:   ', cert.version
53print 'Cert activation:', time.ctime(cert.activation_time)
54print 'Cert expiration:', time.ctime(cert.expiration_time)
55print 'Cert is revoked:', crl.is_revoked(cert)
56print ''
57
58cert = X509Certificate(open(certs_path + '/revoked.crt').read())
59
60print 'Certificate certs/revoked.crt:'
61print '------------------------------'
62print 'Cert subject:'
63print '  CN = %s' % cert.subject.common_name       # here we use long names
64print '  O  = %s' % cert.subject.organization
65print '  OU = %s' % cert.subject.organization_unit
66print '  C  = %s' % cert.subject.country
67print '  ST = %s' % cert.subject.state
68print '  L  = %s' % cert.subject.locality
69print '  EMAIL = %s' % cert.subject.email
70print 'Cert issuer:'
71print '  CN = %s' % cert.issuer.common_name
72print '  O  = %s' % cert.issuer.organization
73print '  OU = %s' % cert.issuer.organization_unit
74print '  C  = %s' % cert.issuer.country
75print '  ST = %s' % cert.issuer.state
76print '  L  = %s' % cert.issuer.locality
77print '  EMAIL = %s' % cert.issuer.email
78print 'Cert serial:    ', cert.serial_number
79print 'Cert version:   ', cert.version
80print 'Cert activation:', time.ctime(cert.activation_time)
81print 'Cert expiration:', time.ctime(cert.expiration_time)
82print 'Cert is revoked:', crl.is_revoked(cert)
83print ''
84