ecdsa_ext 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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