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

pubkey()
Alias for: public_key
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