def x509_name_to_json(name: x509.Name) -> Dict[str, Any]: attributes = [] for attr in name: attributes.append( _X509NameAttributeAsJson(oid=attr.oid, value=attr.value, rfc4514_string=attr.rfc4514_string()) ) x509name_as_json = _X509NameAsJson(rfc4514_string=name.rfc4514_string(), attributes=attributes) return asdict(x509name_as_json)
def _get_name_as_short_text(name_field: x509.Name) -> str: """Convert a name field returned by the cryptography module to a string suitable for displaying it to the user.""" # Name_field is supposed to be a Subject or an Issuer; print the CN if there is one common_names = get_common_names(name_field) if common_names: # We don't support certs with multiple CNs return common_names[0] else: # Otherwise show the whole field return name_field.rfc4514_string()
def get_common_name(name_field: x509.Name) -> str: try: return get_common_names(name_field)[0] except IndexError: return name_field.rfc4514_string()