@@ -223,3 +223,32 @@ def test_VerifyingKey_verify(
223223 sig = mod_apply (signature )
224224
225225 assert vrf_mthd (sig , fun (vrf_data ), sigdecode = decoder )
226+
227+
228+ # test SigningKey.from_string()
229+ prv_key_bytes = (b'^\xc8 B\x0b \xd6 \xef \x92 R\xa9 B\xe9 \x89 \x04 <\xa2 '
230+ b'\x9f V\x1f \xa5 %w\x0e \xb1 \xc5 ' )
231+ assert len (prv_key_bytes ) == 24
232+ keys = []
233+ for modifier , convert in [
234+ ("bytes" , lambda x : x ),
235+ ("bytes memoryview" , buffer ),
236+ ("bytearray" , bytearray ),
237+ ("bytearray memoryview" , lambda x : buffer (bytearray (x ))),
238+ ("array.array of bytes" , lambda x : array .array ('B' , x )),
239+ ("array.array of bytes memoryview" ,
240+ lambda x : buffer (array .array ('B' , x ))),
241+ ("array.array of ints" , lambda x : array .array ('I' , x )),
242+ ("array.array of ints memoryview" ,
243+ lambda x : buffer (array .array ('I' , x )))
244+ ]:
245+ keys .append (pytest .param (
246+ convert ,
247+ id = modifier ))
248+
249+ @pytest .mark .parametrize ("convert" , keys )
250+ def test_SigningKey_from_string (convert ):
251+ key = convert (prv_key_bytes )
252+ sk = SigningKey .from_string (key )
253+
254+ assert sk .to_string () == prv_key_bytes
0 commit comments