Total Complexity | 4 |
Total Lines | 19 |
Duplicated Lines | 0 % |
Changes | 2 | ||
Bugs | 0 | Features | 2 |
1 | from bitpay import key_utils as utils |
||
9 | class TestKeyUtils(unittest.TestCase): |
||
10 | |||
11 | def test_generate_pem(self): |
||
12 | pem = utils.generate_pem() |
||
13 | match = re.match(r"-----BEGIN EC PRIVATE KEY-----", pem) |
||
14 | self.assertIsNotNone(match) |
||
15 | |||
16 | def test_sin_from_pem(self): |
||
17 | pem = '-----BEGIN EC PRIVATE KEY-----\nMHQCAQEEICg7E4NN53YkaWuAwpoqjfAofjzKI7Jq1f532dX+0O6QoAcGBSuBBAAK\noUQDQgAEjZcNa6Kdz6GQwXcUD9iJ+t1tJZCx7hpqBuJV2/IrQBfue8jh8H7Q/4vX\nfAArmNMaGotTpjdnymWlMfszzXJhlw==\n-----END EC PRIVATE KEY-----\n' |
||
18 | assert utils.get_sin_from_pem(pem) == 'TeyN4LPrXiG5t2yuSamKqP3ynVk3F52iHrX' |
||
19 | |||
20 | def test_sign(self): |
||
21 | pem = '-----BEGIN EC PRIVATE KEY-----\nMHQCAQEEICg7E4NN53YkaWuAwpoqjfAofjzKI7Jq1f532dX+0O6QoAcGBSuBBAAK\noUQDQgAEjZcNa6Kdz6GQwXcUD9iJ+t1tJZCx7hpqBuJV2/IrQBfue8jh8H7Q/4vX\nfAArmNMaGotTpjdnymWlMfszzXJhlw==\n-----END EC PRIVATE KEY-----\n' |
||
22 | signed = utils.sign("message", pem) |
||
23 | sk = SigningKey.from_pem(pem) |
||
24 | vk = sk.get_verifying_key() |
||
25 | print(signed) |
||
26 | signed = binascii.unhexlify(signed) |
||
27 | vk.verify(signed, "message".encode(), hashfunc=hashlib.sha256, sigdecode=ecdsaUtil.sigdecode_der) |
||
28 | |||
29 |