1
1
import lakers
2
2
import cbor2
3
3
import pytest
4
+ from lakers import CredentialTransfer , EdhocInitiator , EdhocResponder
4
5
5
6
# values from RFC9529, but CRED_I shortened so that passing by value is possible in a 256 byte message
6
7
CRED_I = bytes .fromhex ("A202617808A101A5010202412B2001215820AC75E9ECE3E50BFC8ED60399889522405C47BF16DF96660A41298CB4307F7EB62258206E5DE611388A4B8A8211334AC7D37ECB52A387D257E6DB3C2A93DF21FF3AFFC8" )
@@ -15,12 +16,12 @@ def test_gen_keys():
15
16
assert len (pub ) == 32
16
17
17
18
def test_initiator ():
18
- initiator = lakers . EdhocInitiator ()
19
+ initiator = EdhocInitiator ()
19
20
message_1 = initiator .prepare_message_1 (c_i = None , ead_1 = None )
20
21
assert type (message_1 ) == bytes
21
22
22
23
def test_responder ():
23
- responder = lakers . EdhocResponder (R , CRED_R )
24
+ responder = EdhocResponder (R , CRED_R )
24
25
25
26
def test_ccs_consruction ():
26
27
# The main crednetials we use can be parsed as they are:
@@ -36,12 +37,12 @@ def test_ccs_consruction():
36
37
assert repr (cred_r_manual ) == repr (cred_r )
37
38
38
39
# Both forms are accepted for constructing equivalent responders
39
- _ = lakers . EdhocResponder (R , CRED_R )
40
- _ = lakers . EdhocResponder (R , cred_r_manual )
40
+ _ = EdhocResponder (R , CRED_R )
41
+ _ = EdhocResponder (R , cred_r_manual )
41
42
42
43
def _test_handshake (cred_r_transfer , cred_i_transfer ):
43
- initiator = lakers . EdhocInitiator ()
44
- responder = lakers . EdhocResponder (R , CRED_R )
44
+ initiator = EdhocInitiator ()
45
+ responder = EdhocResponder (R , CRED_R )
45
46
46
47
# initiator
47
48
message_1 = initiator .prepare_message_1 (c_i = None , ead_1 = None )
@@ -81,19 +82,18 @@ def _test_handshake(cred_r_transfer, cred_i_transfer):
81
82
assert i_prk_out_new == r_prk_out_new
82
83
83
84
def test_edhoc_error ():
84
- responder = lakers . EdhocResponder (R , CRED_R )
85
+ responder = EdhocResponder (R , CRED_R )
85
86
with pytest .raises (ValueError ) as err :
86
87
_ = responder .process_message_1 ([1 , 2 , 3 ])
87
88
assert str (err .value ) == "EDHOCError::ParsingError"
88
89
89
90
def test_buffer_error ():
90
- initiator = lakers . EdhocInitiator ()
91
+ initiator = EdhocInitiator ()
91
92
with pytest .raises (ValueError ) as err :
92
93
_ = initiator .parse_message_2 ([1 ] * 1000 )
93
94
assert str (err .value ) == "MessageBufferError::SliceTooLong"
94
95
95
- def test_handshake_byvalue_byreference ():
96
- _test_handshake (lakers .CredentialTransfer .ByValue , lakers .CredentialTransfer .ByReference )
97
-
98
- def test_handshake_byreference_byvalue ():
99
- _test_handshake (lakers .CredentialTransfer .ByReference , lakers .CredentialTransfer .ByValue )
96
+ @pytest .mark .parametrize ("cred_r_transfer" , [CredentialTransfer .ByReference , CredentialTransfer .ByValue ])
97
+ @pytest .mark .parametrize ("cred_i_transfer" , [CredentialTransfer .ByReference , CredentialTransfer .ByValue ])
98
+ def test_handshake_credential_transfer_by (cred_r_transfer , cred_i_transfer ):
99
+ _test_handshake (cred_r_transfer , cred_i_transfer )
0 commit comments