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