add ser and get_addr to public_key class

This commit is contained in:
jackjack-jj 2013-09-15 14:13:33 +02:00
parent ef01a8ffe2
commit 0bc54205b4

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python
#-*- coding: utf-8 -*-
pywversion="2.1.4"
pywversion="2.1.5"
never_update=False
#
@ -986,10 +986,11 @@ class Signature( object ):
self.s = s
class Public_key( object ):
def __init__( self, generator, point ):
def __init__( self, generator, point, c=None ):
self.curve = generator.curve()
self.generator = generator
self.point = point
self.compressed = c
n = generator.order()
if not n:
raise RuntimeError, "Generator point must have order."
@ -1012,6 +1013,17 @@ class Public_key( object ):
v = xy.x() % n
return v == r
def ser(self):
if self.compressed:
pk=('%02x'%(2+(self.point.y()&1))) + '%064x' % self.point.x()
else:
pk='04%064x%064x' % (self.point.x(), self.point.y())
return pk.decode('hex')
def get_addr(self, v=0):
return public_key_to_bc_address(self.ser(), v)
class Private_key( object ):
def __init__( self, public_key, secret_multiplier ):
self.public_key = public_key