Models

class satcfdi.models.certificate.CertificateType(value)[source]

Bases: Enum

An enumeration.

Fiel = 1
CSD = 2
class satcfdi.models.certificate.Certificate(certificate: X509)[source]

Bases: object

classmethod load_certificate(certificate: bytes) Certificate[source]
fingerprint(algorithm=<cryptography.hazmat.primitives.hashes.SHA1 object>) bytes[source]
certificate_bytes() bytes[source]
certificate_base64() str[source]
issuer() str[source]
subject() str[source]
property type
property serial_number: int
property legal_name: str | None
property rfc: satcfdi.models.rfc.RFC | None
property rfc_representante: satcfdi.models.rfc.RFC | None
property curp: satcfdi.models.curp.CURP | None
property curp_representante: satcfdi.models.curp.CURP | None
property branch_name: str | None
property rfc_pac: RFC
property email: str | None
property certificate_number: str
public_key() RSAPublicKey[source]
verify_sha1(data: bytes, signature: bytes) bool[source]
verify_sha256(data: bytes, signature: bytes) bool[source]
encrypt(data: bytes)[source]
class satcfdi.models.certificate_store.CertificateStore(trusted_certificates: Iterable)[source]

Bases: object

issuer_certificate(cert)[source]
verify_certificate(issued_cert, at: datetime)[source]

Verifies issued_cert.

Parameters

issued_cert – The issued certificate.

Returns

True if certificate was issued by a trusted certificate :param issued_cert: issued certificate to validate :param at: date at witch to do the validation

classmethod create(certs_zip)[source]

Creates a Certificate Store from the certificates in a zip file :param certs_zip: :return: CertificateStore

class satcfdi.models.code.Code(code, description)[source]

Bases: object

class satcfdi.models.curp.CURP(value)[source]

Bases: str

is_valid()[source]
class satcfdi.models.date_period.DatePeriod(year: int | None, month: Optional[int] = None, day: Optional[int] = None)[source]

Bases: object

class satcfdi.models.rfc.RFCType(value)[source]

Bases: Enum

An enumeration.

FISICA = 1
MORAL = 2
class satcfdi.models.rfc.RFC(value: str, entity_type: Optional[RFCType] = None)[source]

Bases: str

is_generic()[source]
is_valid()[source]
class satcfdi.models.signer.Signer(certificate: X509, key: RSAPrivateKey, check=True)[source]

Bases: Certificate

classmethod load(certificate: bytes, key: bytes, password: Optional[Union[str, bytes]] = None, check=True) Signer[source]
classmethod load_pkcs12(data: bytes, password: Optional[Union[str, bytes]] = None) Signer[source]
sign_sha1(data) str[source]
sign_sha256(data) str[source]
key_bytes(password: Optional[Union[str, bytes]] = None) bytes[source]
pcks12_bytes(password: Optional[Union[str, bytes]] = None) bytes[source]
decrypt(data: bytes)[source]