@@ -369,43 +369,50 @@ Create a NIST192p keypair and immediately save both to disk:
369
369
``` python
370
370
from ecdsa import SigningKey
371
371
sk = SigningKey.generate()
372
- vk = sk.get_verifying_key()
373
- open (" private.pem" ," w" ).write(sk.to_pem())
374
- open (" public.pem" ," w" ).write(vk.to_pem())
372
+ vk = sk.verifying_key
373
+ with open (" private.pem" , " wb" ) as f:
374
+ f.write(sk.to_pem())
375
+ with open (" public.pem" , " wb" ) as f:
376
+ f.write(vk.to_pem())
375
377
```
376
378
377
- Load a signing key from disk, use it to sign a message, and write the
378
- signature to disk:
379
+ Load a signing key from disk, use it to sign a message (using SHA-1) , and write
380
+ the signature to disk:
379
381
380
382
``` python
381
383
from ecdsa import SigningKey
382
- sk = SigningKey.from_pem(open (" private.pem" ).read())
383
- message = open (" message" ," rb" ).read()
384
+ with open (" private.pem" ) as f:
385
+ sk = SigningKey.from_pem(f.read())
386
+ with open (" message" , " rb" ) as f:
387
+ message = f.read()
384
388
sig = sk.sign(message)
385
- open (" signature" ," wb" ).write(sig)
389
+ with open (" signature" , " wb" ) as f:
390
+ f.write(sig)
386
391
```
387
392
388
393
Load the verifying key, message, and signature from disk, and verify the
389
- signature:
394
+ signature (assume SHA-1 hash) :
390
395
391
396
``` python
392
397
from ecdsa import VerifyingKey, BadSignatureError
393
398
vk = VerifyingKey.from_pem(open (" public.pem" ).read())
394
- message = open (" message" ," rb" ).read()
395
- sig = open (" signature" ," rb" ).read()
399
+ with open (" message" , " rb" ) as f:
400
+ message = f.read()
401
+ with open (" signature" , " rb" ) as f:
402
+ sig = f.read()
396
403
try :
397
404
vk.verify(sig, message)
398
405
print " good signature"
399
406
except BadSignatureError:
400
407
print " BAD SIGNATURE"
401
408
```
402
409
403
- Create a NIST521p keypair
410
+ Create a NIST521p keypair:
404
411
405
412
``` python
406
413
from ecdsa import SigningKey, NIST521p
407
414
sk = SigningKey.generate(curve = NIST521p)
408
- vk = sk.get_verifying_key()
415
+ vk = sk.verifying_key
409
416
```
410
417
411
418
Create three independent signing keys from a master seed:
@@ -422,3 +429,27 @@ sk1 = make_key_from_seed("1:%s" % seed)
422
429
sk2 = make_key_from_seed(" 2:%s " % seed)
423
430
sk3 = make_key_from_seed(" 3:%s " % seed)
424
431
```
432
+
433
+ Load a verifying key from disk and print it using hex encoding in
434
+ uncompressed and compressed format (defined in X9.62 and SEC1 standards):
435
+
436
+ ``` python
437
+ from ecdsa import VerifyingKey
438
+
439
+ with open (" public.pem" ) as f:
440
+ vk = VerifyingKey.from_pem(f.read())
441
+
442
+ print (" uncompressed: {0} " .format(vk.to_string(" uncompressed" ).hex()))
443
+ print (" compressed: {0} " .format(vk.to_string(" compressed" ).hex()))
444
+ ```
445
+
446
+ Load a verifying key from a hex string from compressed format, output
447
+ uncompressed:
448
+
449
+ ``` python
450
+ from ecdsa import VerifyingKey, NIST256p
451
+
452
+ comp_str = ' 022799c0d0ee09772fdd337d4f28dc155581951d07082fb19a38aa396b67e77759'
453
+ vk = VerifyingKey.from_string(bytearray .fromhex(comp_str), curve = NIST256p)
454
+ print (vk.to_string(" uncompressed" ).hex())
455
+ ```
0 commit comments