ecdsa_ext 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3b62285517cc90d7dcb953cc669c69c22883e2804f729bf28e937922b43439aa
4
- data.tar.gz: 99f865acb675894ad30c868ddd7ce421c9a84fd063c4e57c5abe022419abf85c
3
+ metadata.gz: a0f115741184aa3013de736e9693506b7c6d90191b648658ab6f3215da2172a3
4
+ data.tar.gz: d85bd0930d0c62d4abeb62445a950566d80b625339433d40eb3f9ed165c68d8a
5
5
  SHA512:
6
- metadata.gz: 932217994dec3b19d5896eae554b94a98180d37836af0c921aaf08bc0667787a871cfc19d3745ffd538c3b6adca86a02ace890e5fd746ab406e97e6c7d8fbbac
7
- data.tar.gz: 35a8165ff84e644ad6866208d3bacc930112b37e999e1bfafc898b73825175983fb4a0875d8e2fcde1a60450b8a8d98bca0e533f204a65da7736a946a88124c3
6
+ metadata.gz: 44fbb5bef58b93924b9f5128663d83840dbe3c465fdd5c3abc36c798a34d797bf9dd98233ebc5a3260b21c323fe1466c4251282a840bd2d1e23e70d85d6f2de5
7
+ data.tar.gz: 5f31293b891b21fd42074b1d550f16ad844a5903e47be45e95c5c35ce14e38250941ac830470f707d2d990a80bf9f3db821f4f6b271d9d0cdaa38d25746ba17d
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ECDSA
4
+ # Extension of ECDSA::Point class.
5
+ class Point
6
+ # Convert coordinates to projective point.
7
+ # @return [ECDSA::Ext::ProjectivePoint]
8
+ def to_projective
9
+ ECDSA::Ext::ProjectivePoint.from_affine(self)
10
+ end
11
+ end
12
+ end
@@ -145,7 +145,14 @@ module ECDSA
145
145
 
146
146
  def ==(other)
147
147
  return false unless other.is_a?(ProjectivePoint)
148
- group == other.group && x == other.x && y == other.y && z == other.z
148
+ return true if infinity? && other.infinity?
149
+
150
+ lhs_x = field.mod(x * other.z)
151
+ rhs_x = field.mod(other.x * z)
152
+ lhs_y = field.mod(y * other.z)
153
+ rhs_y = field.mod(other.y * z)
154
+
155
+ lhs_x == rhs_x && lhs_y == rhs_y
149
156
  end
150
157
  end
151
158
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module ECDSA
4
4
  module Ext
5
- VERSION = "0.1.0"
5
+ VERSION = "0.2.0"
6
6
  end
7
7
  end
data/lib/ecdsa/ext.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  require_relative "ext/version"
3
+ require_relative "ext/point"
3
4
  module ECDSA
4
5
  # Extension for ecdsa gem.
5
6
  module Ext
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecdsa_ext
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - azuchi
@@ -46,6 +46,7 @@ files:
46
46
  - bin/setup
47
47
  - ecdsa_ext.gemspec
48
48
  - lib/ecdsa/ext.rb
49
+ - lib/ecdsa/ext/point.rb
49
50
  - lib/ecdsa/ext/point_arithmetic.rb
50
51
  - lib/ecdsa/ext/projective_point.rb
51
52
  - lib/ecdsa/ext/version.rb