36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
import os
|
|
import unittest
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
code_path = Path(__file__).parents[2] / "ca_core"
|
|
sys.path.insert(0, str(code_path))
|
|
|
|
from crypto.zenroom_service_client import ZenroomServiceClient
|
|
|
|
|
|
class TestZenroomServiceClientIntegration(unittest.TestCase):
|
|
|
|
@unittest.skipUnless(os.getenv("ZENROOM_BASE_URL"), "No ZENROOM_BASE_URL set")
|
|
def test_end_to_end_smoke(self):
|
|
client = ZenroomServiceClient(base_url=os.environ["ZENROOM_BASE_URL"])
|
|
|
|
# 1) keypair -> public key
|
|
kp = client.generate_keypair("IntegrationUser123456")
|
|
self.assertIn("keyring", kp)
|
|
self.assertIn("private_key", kp)
|
|
|
|
pub = client.generate_public_key(kp["keyring"])
|
|
self.assertIsInstance(pub, str)
|
|
self.assertTrue(pub.strip())
|
|
|
|
# 2) symmetric roundtrip
|
|
plaintext = "Dear Bob, your name is too short, goodbye - Alice."
|
|
sm = client.symmetric_encrypt(
|
|
header="A very important secret",
|
|
message=plaintext,
|
|
shared_key="myVerySecretPassword",
|
|
)
|
|
pt = client.symmetric_decrypt(secret_message=sm, shared_key="myVerySecretPassword")
|
|
self.assertEqual(pt, plaintext)
|