Skip to content

Commit

Permalink
Add more auto-id tests
Browse files Browse the repository at this point in the history
  • Loading branch information
dastansam committed May 13, 2024
1 parent 5586660 commit 9f1e74d
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions tests/auto_identity_tests/test_certificate_manager.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from auto_identity import CertificateManager, key_management
from cryptography import x509
from cryptography.x509.oid import NameOID
from auto_identity import blake2b_256


def test_create_csr():
Expand Down Expand Up @@ -124,3 +125,25 @@ def test_certificate_to_pem_and_back():
certificate_from_pem = self_issuer.pem_to_certificate(pem_certificate)

assert certificate == certificate_from_pem

def test_auto_id_deterministic():
# Create a private key for testing
private_key, _ = key_management.generate_ed25519_key_pair()
subject_name = "Test"

self_issuer = CertificateManager(private_key=private_key)
certificate = self_issuer.self_issue_certificate(subject_name)
pem_certificate = self_issuer.certificate_to_pem(certificate)

# Ensure the PEM is bytes
assert isinstance(pem_certificate, bytes)

issuer_auto_id = CertificateManager.get_certificate_auto_id(certificate)
assert issuer_auto_id == blake2b_256(self_issuer.get_subject_common_name(certificate.subject).encode()).hex()
assert issuer_auto_id == "8d2143d76615c515b5cc88fa7806aef268edeea87571c8f8b21a19f77b9993ba"

# for child certificate, auto_id of the issuer is included in the data
child_certificate = self_issuer.issue_certificate(self_issuer.create_and_sign_csr("child"))

assert CertificateManager.get_certificate_auto_id(child_certificate) == blake2b_256(bytes.fromhex(issuer_auto_id) + self_issuer.get_subject_common_name(child_certificate.subject).encode()).hex()
assert CertificateManager.get_certificate_auto_id(child_certificate) == "b273167fb0c55e2df1fcd5c44fcf90e497bd826e2eb4be2f167ff1c46b4d686d"

0 comments on commit 9f1e74d

Please sign in to comment.