class ECC::PrivateKey
Public Class Methods
new( secret, group: SECP256K1 )
click to toggle source
# File lib/elliptic-lite/signature.rb, line 42 def initialize( secret, group: SECP256K1 ) @secret = secret @group = group end
Public Instance Methods
public_key()
click to toggle source
# File lib/elliptic-lite/signature.rb, line 47 def public_key @pubkey ||= PublicKey.new( @secret * @group.g, group: @group ) end
Also aliased as: pubkey
sign( z )
click to toggle source
# File lib/elliptic-lite/signature.rb, line 52 def sign( z ) k = 1 + SecureRandom.random_number( @group.n - 1) # k = 1234567890 r = (k*@group.g).x k_inv = k.pow( @group.n-2, @group.n ) s = (z+r*@secret) * k_inv % @group.n s = @group.n - s if s > @group.n/2 Signature.new( r, s ) end