(self, secret)
| 98 | self.k = None |
| 99 | |
| 100 | def set_secretbytes(self, secret): |
| 101 | priv_key = ssl.BN_bin2bn(secret, 32, ssl.BN_new()) |
| 102 | group = ssl.EC_KEY_get0_group(self.k) |
| 103 | pub_key = ssl.EC_POINT_new(group) |
| 104 | ctx = ssl.BN_CTX_new() |
| 105 | if not ssl.EC_POINT_mul(group, pub_key, priv_key, None, None, ctx): |
| 106 | raise ValueError("Could not derive public key from the supplied secret.") |
| 107 | ssl.EC_POINT_mul(group, pub_key, priv_key, None, None, ctx) |
| 108 | ssl.EC_KEY_set_private_key(self.k, priv_key) |
| 109 | ssl.EC_KEY_set_public_key(self.k, pub_key) |
| 110 | ssl.EC_POINT_free(pub_key) |
| 111 | ssl.BN_CTX_free(ctx) |
| 112 | return self.k |
| 113 | |
| 114 | def set_privkey(self, key): |
| 115 | self.mb = ctypes.create_string_buffer(key) |
no outgoing calls