source: flexoentity/tests/test_signing.py

Last change on this file was 753855a, checked in by Enrico Schwass <ennoausberlin@…>, 6 weeks ago

add more backends and tests

  • Property mode set to 100644
File size: 1.9 KB
Line 
1import platform
2import pytest
3from uuid import uuid4
4from flexoentity import FlexOID, EntityState, EntityType, FlexoSignature, get_signing_backend
5
6def test_sign_and_verify_linux(signing_backend):
7 data = b"Hello Flex-O signing!"
8
9 signature = signing_backend.sign(data)
10 assert isinstance(signature, bytes)
11 assert len(signature) > 20 # sanity check
12
13 assert signing_backend.verify(data, signature) is True
14
15def test_sign_and_verify_macos(signing_backend):
16 data = b"Hello Flex-O signing!"
17
18 signature = signing_backend.sign(data)
19 assert isinstance(signature, bytes)
20 assert len(signature) > 20 # sanity check
21
22 assert signing_backend.verify(data, signature) is True
23
24def test_verify_fails_with_wrong_data(signing_backend):
25 data = b"Original Data"
26 wrong_data = b"Tampered Data"
27
28 signature = signing_backend.sign(data)
29
30 assert signing_backend.verify(data, signature) == True
31 assert signing_backend.verify(wrong_data, signature) == False
32
33def test_verify_fails_with_invalid_signature(signing_backend):
34 data = b"Hello world"
35 invalid_sig = b"\x00\x01\x02garbagepkcs7data"
36
37 assert signing_backend.verify(data, invalid_sig) is False
38
39def test_signature_entity_create_and_verify(signing_backend):
40 entity_id = FlexOID.safe_generate(
41 domain_id="TEST",
42 entity_type=EntityType.ATTESTATION.value,
43 state=EntityState.DRAFT.value,
44 text="abc",
45 version=1,
46 )
47 signer = uuid4()
48 data = b"Hello Entity Signing"
49
50 sig = FlexoSignature.create_signed(
51 data=data,
52 entity=entity_id,
53 signer_id=signer,
54 backend=signing_backend,
55 )
56
57 assert isinstance(sig.signature_data, str)
58 assert sig.signature_type == "PKCS7-DER"
59 assert sig.signed_entity == entity_id
60 assert sig.signer_id == signer
61 assert sig.certificate_thumbprint != ""
62
63 assert sig.verify(data, signing_backend) is True
Note: See TracBrowser for help on using the repository browser.