Clir.Openssl.X509 (clir_openssl v4.0.1)

Copy Markdown

Lectura de certificados X.509 vía :public_key.pkix_decode_cert/2 (formato OTP interno).

Summary

Types

Certificado en formato OTP (:OTPCertificate).

Functions

Huella del DER del certificado. algo puede ser :md5, :sha o :sha256.

Parsea certificado DER y devuelve la tupla OTP.

Lee certificado desde archivo (.cer DER o PEM).

Parsea certificado PEM.

Convierte certificado DER a PEM, o lee un archivo si der_or_path es una ruta existente.

Issuer en formato estilo LDAP.

Número de certificado SAT: si el serial en hex son pares ASCII de dígitos (09), se decodifica a string decimal; si no, se devuelve el hex.

Número de serie en hexadecimal (mayúsculas), como string.

Subject en formato estilo LDAP (CN=..., O=..., ...).

Vigencia como %{not_before: DateTime.t(), not_after: DateTime.t()} en UTC.

Types

otp_cert()

@type otp_cert() :: tuple()

Certificado en formato OTP (:OTPCertificate).

Functions

fingerprint(cert, algo \\ :sha)

@spec fingerprint(otp_cert(), :md5 | :sha | :sha256) :: String.t()

Huella del DER del certificado. algo puede ser :md5, :sha o :sha256.

from_der(binary)

@spec from_der(binary()) :: {:ok, otp_cert()} | {:error, term()}

Parsea certificado DER y devuelve la tupla OTP.

from_file(path)

@spec from_file(String.t()) :: {:ok, otp_cert()} | {:error, term()}

Lee certificado desde archivo (.cer DER o PEM).

from_pem(pem)

@spec from_pem(String.t()) :: {:ok, otp_cert()} | {:error, term()}

Parsea certificado PEM.

get_pem(der_or_path)

@spec get_pem(binary()) :: {:ok, String.t()} | {:error, term()}

Convierte certificado DER a PEM, o lee un archivo si der_or_path es una ruta existente.

issuer(cert)

@spec issuer(otp_cert()) :: String.t()

Issuer en formato estilo LDAP.

no_certificado(cert)

@spec no_certificado(otp_cert()) :: String.t()

Número de certificado SAT: si el serial en hex son pares ASCII de dígitos (09), se decodifica a string decimal; si no, se devuelve el hex.

serial(cert)

@spec serial(otp_cert()) :: String.t()

Número de serie en hexadecimal (mayúsculas), como string.

subject(cert)

@spec subject(otp_cert()) :: String.t()

Subject en formato estilo LDAP (CN=..., O=..., ...).

validity(cert)

@spec validity(otp_cert()) :: %{not_before: DateTime.t(), not_after: DateTime.t()}

Vigencia como %{not_before: DateTime.t(), not_after: DateTime.t()} en UTC.