tests/test_backends.py
1.2 KB · 48 lines · python Raw
1 """Tests for backends."""
2
3 from __future__ import annotations
4
5 import pytest
6
7 from pqc_enclave_sdk import (
8 AndroidEnclaveBackend,
9 ArtifactKind,
10 ArtifactMetadata,
11 BackendError,
12 EncryptedArtifact,
13 InMemoryEnclaveBackend,
14 iOSEnclaveBackend,
15 )
16
17
18 def test_inmemory_backend_save_load_roundtrip() -> None:
19 b = InMemoryEnclaveBackend(device_id="d")
20 meta = ArtifactMetadata(
21 artifact_id="urn:pqc-enclave-art:1",
22 name="x",
23 kind=ArtifactKind.CREDENTIAL,
24 )
25 enc = EncryptedArtifact(
26 metadata=meta,
27 nonce="00" * 12,
28 ciphertext="ff",
29 content_hash="ab",
30 key_id="k",
31 )
32 b.save_artifacts({meta.artifact_id: enc})
33 loaded = b.load_artifacts()
34 assert meta.artifact_id in loaded
35 assert loaded[meta.artifact_id].ciphertext == "ff"
36
37
38 def test_ios_backend_save_artifacts_raises_backend_error() -> None:
39 b = iOSEnclaveBackend()
40 with pytest.raises(BackendError):
41 b.save_artifacts({})
42
43
44 def test_android_backend_store_session_key_raises_backend_error() -> None:
45 b = AndroidEnclaveBackend()
46 with pytest.raises(BackendError):
47 b.store_session_key("urn:pqc-enclave-key:x", b"\x00" * 32, "")
48