Identity API¶
Misfin identity certificate generation, extraction, and fingerprint normalization.
MisfinIdentity¶
generate_identity_cert¶
generate_identity_cert ¶
generate_identity_cert(
mailbox: str,
hostname: str,
blurb: str = "",
key_size: int = 2048,
valid_days: int = 365,
) -> tuple[bytes, bytes]
Generate a Misfin identity certificate.
Uses cryptography directly (not tlacacoca's generate_self_signed_cert) because Misfin needs USER_ID for mailbox and CN for blurb, while tlacacoca puts hostname in CN.
Returns:
| Type | Description |
|---|---|
tuple[bytes, bytes]
|
Tuple of (certificate_pem, private_key_pem) as bytes. |
Source code in src/titlani/identity/certificate.py
extract_identity¶
extract_identity ¶
Extract a Misfin identity from a certificate.
Source code in src/titlani/identity/certificate.py
generate_encryption_keypair¶
generate_encryption_keypair ¶
Generate an X25519 keypair for at-rest mailbox encryption.
Returns:
| Type | Description |
|---|---|
tuple[bytes, bytes]
|
Tuple of (public_key_pem, private_key_pem) as bytes. |
Source code in src/titlani/identity/certificate.py
normalize_fingerprint¶
normalize_fingerprint ¶
Convert tlacacoca's 'sha256:hexdigest' format to Misfin(C) plain lowercase hex (no delimiters).
Strips known algorithm prefix, removes non-hex chars, lowercases.