tests/conftest.py
1.8 KB · 64 lines · python Raw
1 """Shared test fixtures for pqc-bootloader."""
2
3 from __future__ import annotations
4
5 import pytest
6 from quantumshield.identity.agent import AgentIdentity
7
8 from pqc_bootloader.firmware import FirmwareImage, FirmwareMetadata, TargetDevice
9 from pqc_bootloader.key_ring import KeyRing
10 from pqc_bootloader.signer import FirmwareSigner
11
12
13 @pytest.fixture
14 def manufacturer_identity() -> AgentIdentity:
15 return AgentIdentity.create("acme-appliance-vendor")
16
17
18 @pytest.fixture
19 def rogue_identity() -> AgentIdentity:
20 return AgentIdentity.create("rogue-attacker")
21
22
23 @pytest.fixture
24 def firmware_signer(manufacturer_identity: AgentIdentity) -> FirmwareSigner:
25 return FirmwareSigner(manufacturer_identity)
26
27
28 @pytest.fixture
29 def sample_firmware_bytes() -> bytes:
30 return b"\x7fELF\x02\x01\x01\x00" + b"firmware binary payload" * 64
31
32
33 @pytest.fixture
34 def sample_metadata() -> FirmwareMetadata:
35 return FirmwareMetadata(
36 name="acme-inference-os",
37 version="1.2.3",
38 target=TargetDevice.AI_INFERENCE_APPLIANCE,
39 kernel_version="6.6.12",
40 architecture="x86_64",
41 build_id="abc123def456",
42 release_notes_url="https://acme.example/releases/1.2.3",
43 min_hardware_revision="rev-C",
44 security_level="production",
45 )
46
47
48 @pytest.fixture
49 def sample_firmware(
50 sample_metadata: FirmwareMetadata, sample_firmware_bytes: bytes
51 ) -> FirmwareImage:
52 return FirmwareImage.from_bytes(sample_metadata, sample_firmware_bytes)
53
54
55 @pytest.fixture
56 def trusted_key_ring(manufacturer_identity: AgentIdentity) -> KeyRing:
57 ring = KeyRing()
58 ring.add(
59 public_key_hex=manufacturer_identity.signing_keypair.public_key.hex(),
60 algorithm=manufacturer_identity.signing_keypair.algorithm.value,
61 manufacturer="Acme Appliances Inc.",
62 )
63 return ring
64