class ECC::PublicKey
Attributes
point[R]
Public Class Methods
new( *args, group: SECP256K1 )
click to toggle source
# File lib/elliptic-lite/signature.rb, line 18 def initialize( *args, group: SECP256K1 ) @group = group if args.size == 1 ## assume it's a point already -- todo/fix: check class via group - why? why not? @point = args[0] elsif args.size == 2 ## assume it's an x/y coord pair -- todo/fix: check must be Integer class/type - why? why not? @point = @group.point( *args ) else raise ArgumentError, "expected point or x/y coords for point; got: #{args.inspect}" end end
Public Instance Methods
verify?( z, sig )
click to toggle source
# File lib/elliptic-lite/signature.rb, line 30 def verify?( z, sig ) s_inv = sig.s.pow( @group.n-2, @group.n ) u = z * s_inv % @group.n v = sig.r * s_inv % @group.n total = u*@group.g + v*@point total.x == sig.r end