def init_ca_entry(entry, dercert, nickname, trusted, ext_key_usage): """ Initialize certificate store entry for a CA certificate. """ subject, issuer_serial, public_key = _parse_cert(dercert) if ext_key_usage is not None: try: cert_eku = x509.get_ext_key_usage(dercert, x509.DER) except NSPRError as e: raise ValueError("failed to decode certificate: %s" % e) if cert_eku is not None: cert_eku -= { x509.EKU_SERVER_AUTH, x509.EKU_CLIENT_AUTH, x509.EKU_EMAIL_PROTECTION, x509.EKU_CODE_SIGNING, x509.EKU_ANY, x509.EKU_PLACEHOLDER } ext_key_usage = ext_key_usage | cert_eku entry['objectClass'] = ['ipaCertificate', 'pkiCA', 'ipaKeyPolicy'] entry['cn'] = [nickname] entry['ipaCertSubject'] = [subject] entry['ipaCertIssuerSerial'] = [issuer_serial] entry['ipaPublicKey'] = [public_key] entry['cACertificate;binary'] = [dercert] if trusted is not None: entry['ipaKeyTrust'] = ['trusted' if trusted else 'distrusted'] if ext_key_usage is not None: ext_key_usage = list(ext_key_usage) if not ext_key_usage: ext_key_usage.append(x509.EKU_PLACEHOLDER) entry['ipaKeyExtUsage'] = ext_key_usage
def init_ca_entry(entry, dercert, nickname, trusted, ext_key_usage): """ Initialize certificate store entry for a CA certificate. """ subject, issuer_serial, public_key = _parse_cert(dercert) if ext_key_usage is not None: try: cert_eku = x509.get_ext_key_usage(dercert, x509.DER) except ValueError as e: raise ValueError("failed to decode certificate: %s" % e) if cert_eku is not None: cert_eku -= {x509.EKU_SERVER_AUTH, x509.EKU_CLIENT_AUTH, x509.EKU_EMAIL_PROTECTION, x509.EKU_CODE_SIGNING, x509.EKU_ANY, x509.EKU_PLACEHOLDER} ext_key_usage = ext_key_usage | cert_eku entry['objectClass'] = ['ipaCertificate', 'pkiCA', 'ipaKeyPolicy'] entry['cn'] = [nickname] entry['ipaCertSubject'] = [subject] entry['ipaCertIssuerSerial'] = [issuer_serial] entry['ipaPublicKey'] = [public_key] entry['cACertificate;binary'] = [dercert] if trusted is not None: entry['ipaKeyTrust'] = ['trusted' if trusted else 'distrusted'] if ext_key_usage is not None: ext_key_usage = list(ext_key_usage) if not ext_key_usage: ext_key_usage.append(x509.EKU_PLACEHOLDER) entry['ipaKeyExtUsage'] = ext_key_usage
def init_ca_entry(entry, dercert, nickname, trusted, ext_key_usage): """ Initialize certificate store entry for a CA certificate. """ subject, issuer_serial, public_key = _parse_cert(dercert) if ext_key_usage is not None: try: cert_eku = x509.get_ext_key_usage(dercert, x509.DER) except NSPRError, e: raise ValueError("failed to decode certificate: %s" % e) if cert_eku is not None: cert_eku -= {x509.EKU_SERVER_AUTH, x509.EKU_CLIENT_AUTH, x509.EKU_EMAIL_PROTECTION, x509.EKU_CODE_SIGNING, x509.EKU_ANY, x509.EKU_PLACEHOLDER} ext_key_usage = ext_key_usage | cert_eku