7
7
from cryptography .hazmat .primitives .asymmetric import ec
8
8
from cryptography .hazmat .primitives .serialization import Encoding , PublicFormat
9
9
10
- from nose . tools import eq_ , assert_raises
10
+ from pytest import raises
11
11
12
12
import http_ece as ece
13
13
from http_ece import ECEException
@@ -59,7 +59,7 @@ def setUp(self):
59
59
self .m_salt = os .urandom (16 )
60
60
61
61
def test_derive_key_invalid_mode (self ):
62
- with assert_raises (ECEException ) as ex :
62
+ with raises (ECEException ) as ex :
63
63
ece .derive_key (
64
64
"invalid" ,
65
65
version = "aes128gcm" ,
@@ -70,10 +70,10 @@ def test_derive_key_invalid_mode(self):
70
70
auth_secret = None ,
71
71
keyid = "valid" ,
72
72
)
73
- eq_ ( ex .exception .message , "unknown 'mode' specified: invalid" )
73
+ assert ex .value .message == "unknown 'mode' specified: invalid"
74
74
75
75
def test_derive_key_invalid_salt (self ):
76
- with assert_raises (ECEException ) as ex :
76
+ with raises (ECEException ) as ex :
77
77
ece .derive_key (
78
78
"encrypt" ,
79
79
version = "aes128gcm" ,
@@ -84,10 +84,10 @@ def test_derive_key_invalid_salt(self):
84
84
auth_secret = None ,
85
85
keyid = "valid" ,
86
86
)
87
- eq_ ( ex .exception .message , "'salt' must be a 16 octet value" )
87
+ assert ex .value .message == "'salt' must be a 16 octet value"
88
88
89
89
def test_derive_key_invalid_version (self ):
90
- with assert_raises (ECEException ) as ex :
90
+ with raises (ECEException ) as ex :
91
91
ece .derive_key (
92
92
"encrypt" ,
93
93
version = "invalid" ,
@@ -98,10 +98,10 @@ def test_derive_key_invalid_version(self):
98
98
auth_secret = None ,
99
99
keyid = "valid" ,
100
100
)
101
- eq_ ( ex .exception .message , "Invalid version" )
101
+ assert ex .value .message == "Invalid version"
102
102
103
103
def test_derive_key_no_private_key (self ):
104
- with assert_raises (ECEException ) as ex :
104
+ with raises (ECEException ) as ex :
105
105
ece .derive_key (
106
106
"encrypt" ,
107
107
version = "aes128gcm" ,
@@ -112,10 +112,10 @@ def test_derive_key_no_private_key(self):
112
112
auth_secret = None ,
113
113
keyid = "valid" ,
114
114
)
115
- eq_ ( ex .exception .message , "DH requires a private_key" )
115
+ assert ex .value .message == "DH requires a private_key"
116
116
117
117
def test_derive_key_no_secret (self ):
118
- with assert_raises (ECEException ) as ex :
118
+ with raises (ECEException ) as ex :
119
119
ece .derive_key (
120
120
"encrypt" ,
121
121
version = "aes128gcm" ,
@@ -126,12 +126,12 @@ def test_derive_key_no_secret(self):
126
126
auth_secret = None ,
127
127
keyid = "valid" ,
128
128
)
129
- eq_ ( ex .exception .message , "unable to determine the secret" )
129
+ assert ex .value .message == "unable to determine the secret"
130
130
131
131
def test_iv_bad_counter (self ):
132
- with assert_raises (ECEException ) as ex :
132
+ with raises (ECEException ) as ex :
133
133
ece .iv (os .urandom (8 ), pow (2 , 64 ) + 1 )
134
- eq_ ( ex .exception .message , "Counter too big" )
134
+ assert ex .value .message == "Counter too big"
135
135
136
136
137
137
class TestEceChecking (unittest .TestCase ):
@@ -144,76 +144,76 @@ def setUp(self):
144
144
self .m_header += struct .pack ("!L" , 32 ) + b"\0 "
145
145
146
146
def test_encrypt_small_rs (self ):
147
- with assert_raises (ECEException ) as ex :
147
+ with raises (ECEException ) as ex :
148
148
ece .encrypt (
149
149
self .m_input ,
150
150
version = "aes128gcm" ,
151
151
key = self .m_key ,
152
152
rs = 1 ,
153
153
)
154
- eq_ ( ex .exception .message , "Record size too small" )
154
+ assert ex .value .message == "Record size too small"
155
155
156
156
def test_decrypt_small_rs (self ):
157
157
header = os .urandom (16 ) + struct .pack ("!L" , 2 ) + b"\0 "
158
- with assert_raises (ECEException ) as ex :
158
+ with raises (ECEException ) as ex :
159
159
ece .decrypt (
160
160
header + self .m_input ,
161
161
version = "aes128gcm" ,
162
162
key = self .m_key ,
163
163
rs = 1 ,
164
164
)
165
- eq_ ( ex .exception .message , "Record size too small" )
165
+ assert ex .value .message == "Record size too small"
166
166
167
167
def test_encrypt_bad_version (self ):
168
- with assert_raises (ECEException ) as ex :
168
+ with raises (ECEException ) as ex :
169
169
ece .encrypt (
170
170
self .m_input ,
171
171
version = "bogus" ,
172
172
key = self .m_key ,
173
173
)
174
- eq_ ( ex .exception .message , "Invalid version" )
174
+ assert ex .value .message == "Invalid version"
175
175
176
176
def test_decrypt_bad_version (self ):
177
- with assert_raises (ECEException ) as ex :
177
+ with raises (ECEException ) as ex :
178
178
ece .decrypt (
179
179
self .m_input ,
180
180
version = "bogus" ,
181
181
key = self .m_key ,
182
182
)
183
- eq_ ( ex .exception .message , "Invalid version" )
183
+ assert ex .value .message == "Invalid version"
184
184
185
185
def test_decrypt_bad_header (self ):
186
- with assert_raises (ECEException ) as ex :
186
+ with raises (ECEException ) as ex :
187
187
ece .decrypt (
188
188
os .urandom (4 ),
189
189
version = "aes128gcm" ,
190
190
key = self .m_key ,
191
191
)
192
- eq_ ( ex .exception .message , "Could not parse the content header" )
192
+ assert ex .value .message == "Could not parse the content header"
193
193
194
194
def test_encrypt_long_keyid (self ):
195
- with assert_raises (ECEException ) as ex :
195
+ with raises (ECEException ) as ex :
196
196
ece .encrypt (
197
197
self .m_input ,
198
198
version = "aes128gcm" ,
199
199
key = self .m_key ,
200
200
keyid = b64e (os .urandom (192 )), # 256 bytes
201
201
)
202
- eq_ ( ex .exception .message , "keyid is too long" )
202
+ assert ex .value .message == "keyid is too long"
203
203
204
204
def test_overlong_padding (self ):
205
- with assert_raises (ECEException ) as ex :
205
+ with raises (ECEException ) as ex :
206
206
ece .decrypt (
207
207
self .m_header + b"\xbb \xc7 \xb9 ev\x0b \xf0 f+\x93 \xf4 "
208
208
b"\xe5 \xd6 \x94 \xb7 e\xf0 \xcd \x15 \x9b (\x01 \xa5 " ,
209
209
version = "aes128gcm" ,
210
210
key = b"d\xc7 \x0e d\xa7 %U\x14 Q\xf2 \x08 \xdf \xba \xa0 \xb9 r" ,
211
211
keyid = b64e (os .urandom (192 )), # 256 bytes
212
212
)
213
- eq_ ( ex .exception .message , "all zero record plaintext" )
213
+ assert ex .value .message == "all zero record plaintext"
214
214
215
215
def test_bad_early_delimiter (self ):
216
- with assert_raises (ECEException ) as ex :
216
+ with raises (ECEException ) as ex :
217
217
ece .decrypt (
218
218
self .m_header + b"\xb9 \xc7 \xb9 ev\x0b \xf0 \x9e B\xb1 \x08 C8u"
219
219
b"\xa3 \x06 \xc9 x\x06 \n \xfc |}\xe9 R\x85 \x91 "
@@ -224,29 +224,29 @@ def test_bad_early_delimiter(self):
224
224
key = b"d\xc7 \x0e d\xa7 %U\x14 Q\xf2 \x08 \xdf \xba \xa0 \xb9 r" ,
225
225
keyid = b64e (os .urandom (192 )), # 256 bytes
226
226
)
227
- eq_ ( ex .exception .message , "record delimiter != 1" )
227
+ assert ex .value .message == "record delimiter != 1"
228
228
229
229
def test_bad_final_delimiter (self ):
230
- with assert_raises (ECEException ) as ex :
230
+ with raises (ECEException ) as ex :
231
231
ece .decrypt (
232
232
self .m_header + b"\xba \xc7 \xb9 ev\x0b \xf0 \x9e B\xb1 \x08 Ji"
233
233
b"\xe4 P\x1b \x8d I\xdb \xc6 y#MG\xc2 W\x16 " ,
234
234
version = "aes128gcm" ,
235
235
key = b"d\xc7 \x0e d\xa7 %U\x14 Q\xf2 \x08 \xdf \xba \xa0 \xb9 r" ,
236
236
keyid = b64e (os .urandom (192 )), # 256 bytes
237
237
)
238
- eq_ ( ex .exception .message , "last record delimiter != 2" )
238
+ assert ex .value .message == "last record delimiter != 2"
239
239
240
240
def test_damage (self ):
241
- with assert_raises (ECEException ) as ex :
241
+ with raises (ECEException ) as ex :
242
242
ece .decrypt (
243
243
self .m_header + b"\xbb \xc6 \xb1 \x1d F:~\x0f \x07 +\xbe \xaa D"
244
244
b"\xe0 \xd6 .K\xe5 \xf9 ]%\xe3 \x86 q\xe0 }" ,
245
245
version = "aes128gcm" ,
246
246
key = b"d\xc7 \x0e d\xa7 %U\x14 Q\xf2 \x08 \xdf \xba \xa0 \xb9 r" ,
247
247
keyid = b64e (os .urandom (192 )), # 256 bytes
248
248
)
249
- eq_ ( ex .exception .message , "Decryption error: InvalidTag()" )
249
+ assert ex .value .message == "Decryption error: InvalidTag()"
250
250
251
251
252
252
class TestEceIntegration (unittest .TestCase ):
@@ -319,7 +319,7 @@ def encrypt_decrypt(self, input, encrypt_params, decrypt_params=None, version=No
319
319
version = version ,
320
320
)
321
321
logbuf ("Decrypted" , decrypted )
322
- eq_ ( input , decrypted )
322
+ assert input == decrypted
323
323
324
324
def use_explicit_key (self , version = None ):
325
325
params = {
@@ -350,9 +350,9 @@ def detect_truncation(self, version):
350
350
chunk = encrypted [0 : 21 + rs ]
351
351
else :
352
352
chunk = encrypted [0 : rs + 16 ]
353
- with assert_raises (ECEException ) as ex :
353
+ with raises (ECEException ) as ex :
354
354
ece .decrypt (chunk , salt = salt , key = key , rs = rs , version = version )
355
- eq_ ( ex .exception .message , "Message truncated" )
355
+ assert ex .value .message == "Message truncated"
356
356
357
357
def use_dh (self , version ):
358
358
def pubbytes (k ):
@@ -487,7 +487,7 @@ def _run(self, mode):
487
487
rs = p .get ("rs" , 4096 ),
488
488
version = p ["version" ],
489
489
)
490
- eq_ ( b64d (data [outp ]), result )
490
+ assert b64d (data [outp ]) == result
491
491
492
492
def test_decrypt (self ):
493
493
self ._run ("decrypt" )
0 commit comments