@@ -229,7 +229,7 @@ def test_VerifyingKey_verify(
229229prv_key_bytes = (b'^\xc8 B\x0b \xd6 \xef \x92 R\xa9 B\xe9 \x89 \x04 <\xa2 '
230230 b'\x9f V\x1f \xa5 %w\x0e \xb1 \xc5 ' )
231231assert len (prv_key_bytes ) == 24
232- keys = []
232+ converters = []
233233for modifier , convert in [
234234 ("bytes" , lambda x : x ),
235235 ("bytes memoryview" , buffer ),
@@ -242,13 +242,33 @@ def test_VerifyingKey_verify(
242242 ("array.array of ints memoryview" ,
243243 lambda x : buffer (array .array ('I' , x )))
244244 ]:
245- keys .append (pytest .param (
245+ converters .append (pytest .param (
246246 convert ,
247247 id = modifier ))
248248
249- @pytest .mark .parametrize ("convert" , keys )
249+ @pytest .mark .parametrize ("convert" , converters )
250250def test_SigningKey_from_string (convert ):
251251 key = convert (prv_key_bytes )
252252 sk = SigningKey .from_string (key )
253253
254254 assert sk .to_string () == prv_key_bytes
255+
256+
257+ # test SigningKey.from_der()
258+ prv_key_str = (
259+ "-----BEGIN EC PRIVATE KEY-----\n "
260+ "MF8CAQEEGF7IQgvW75JSqULpiQQ8op9WH6Uldw6xxaAKBggqhkjOPQMBAaE0AzIA\n "
261+ "BLiBd9CE7xf15FY5QIAoNg+fWbSk1yZOYtoGUdzkejWkxbRc9RWTQjqLVXucIJnz\n "
262+ "bA==\n "
263+ "-----END EC PRIVATE KEY-----\n " )
264+ key_bytes = unpem (prv_key_str )
265+ assert isinstance (key_bytes , bytes )
266+
267+ # last two converters are for array.array of ints, those require input
268+ # that's multiple of 4, which no curve we support produces
269+ @pytest .mark .parametrize ("convert" , converters [:- 2 ])
270+ def test_SigningKey_from_der (convert ):
271+ key = convert (key_bytes )
272+ sk = SigningKey .from_der (key )
273+
274+ assert sk .to_string () == prv_key_bytes
0 commit comments