sygna 0.1.1 → 0.1.2

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: 91869e76d9647d23dc4a187dd8afb3c62f5224da4c9e08b41a9f6b21ce8d8b6e
4
- data.tar.gz: 3083b0dc21a7bd59f6bffaf0d06eea801468c0764c68ba9be0fc1ead416e9230
3
+ metadata.gz: '099fadb75a5bd19ce0954189407a7c4f2b8f2bd20c19c7e9ee95de7475381d39'
4
+ data.tar.gz: da5010fc8a1d4109967d494e8a960396b43a40026bb23319a3adb08079e205be
5
5
  SHA512:
6
- metadata.gz: 42ee7fcada7af5573a607045973d018230d1c65c9cf347dc892b37696946332ab41fc08e41bbbbc3e8a29cf59784bc3a5081d75b724fb19b1396b703ea53edc9
7
- data.tar.gz: 75754c3411b8e26903f054a7591e8ecfe0804ff5b952533b3b5ba41f8caf1e211c7b70eea6b24a6569ac92af51bcfffd4e93fc1b424a4f3bea7c65938ff9b226
6
+ metadata.gz: 1a54d4eef4aa86a8ad2d086286a6233c8f5e2e387d4334675236745222805bbfd496b1b30dfc27c9a812d6a13eb34b4324f13d988f214c6c1e44efbe74ed0eb0
7
+ data.tar.gz: 4efeba43bd1008f8ebe896bf0423eb3649270aa23c85af2f51b974f31c1110f0245675f679b20d1fac90691c435b9b5ed96ac73c9be7343c9bcaf0d59b553a47
data/Gemfile CHANGED
@@ -4,4 +4,4 @@ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
5
  gemspec
6
6
 
7
- gem "secp256k1-ruby"
7
+ gem "bitcoin-secp256k1"
data/Gemfile.lock CHANGED
@@ -1,18 +1,14 @@
1
- GIT
2
- remote: https://github.com/niclin/ecies
3
- revision: 8b1c1af0c5444fc715a0f110ea3fcba535789fcd
4
- branch: master
5
- specs:
6
- ecies (0.3.0)
7
-
8
1
  PATH
9
2
  remote: .
10
3
  specs:
11
- sygna (0.1.0)
4
+ sygna (0.1.1)
5
+ bitcoin-secp256k1
12
6
 
13
7
  GEM
14
8
  remote: https://rubygems.org/
15
9
  specs:
10
+ bitcoin-secp256k1 (0.5.2)
11
+ ffi (>= 1.9.25)
16
12
  diff-lcs (1.3)
17
13
  ffi (1.12.2)
18
14
  rake (12.3.3)
@@ -29,18 +25,15 @@ GEM
29
25
  diff-lcs (>= 1.2.0, < 2.0)
30
26
  rspec-support (~> 3.9.0)
31
27
  rspec-support (3.9.2)
32
- secp256k1-ruby (0.4.1)
33
- ffi (>= 1.9.10)
34
28
 
35
29
  PLATFORMS
36
30
  ruby
37
31
 
38
32
  DEPENDENCIES
33
+ bitcoin-secp256k1
39
34
  bundler (~> 1.17)
40
- ecies!
41
35
  rake (~> 12)
42
36
  rspec (~> 3.7)
43
- secp256k1-ruby
44
37
  sygna!
45
38
 
46
39
  BUNDLED WITH
@@ -1,29 +1,31 @@
1
1
  module Sygna
2
- class Signature
3
- def initialize(obj)
4
- @obj = obj
2
+ module Signature
3
+ EMPTY_SIGNATURE = { signature: "" }.freeze
4
+
5
+ def self.sign(object)
6
+ object_string = object.merge(EMPTY_SIGNATURE).to_json
7
+
8
+ Secp256k1::Utils.encode_hex(ecdsa_private_key.ecdsa_serialize_compact(ecdsa_private_key.ecdsa_sign(object_string)))
5
9
  end
6
10
 
7
- def sign
8
- object_string = @obj.merge(empty_signature).to_json
11
+ def self.verify(object, signature)
12
+ object_string = object.merge(EMPTY_SIGNATURE).to_json
9
13
 
10
- privkey = Secp256k1::PrivateKey.new(privkey: private_key_binary)
14
+ raw_signature = Secp256k1::Utils.decode_hex(signature)
11
15
 
12
- Secp256k1::Utils.encode_hex(privkey.ecdsa_serialize_compact(privkey.ecdsa_sign(object_string)))
13
- end
16
+ signature = ecdsa_private_key.pubkey.ecdsa_deserialize_compact(raw_signature)
14
17
 
15
- private
18
+ ecdsa_private_key.pubkey.ecdsa_verify(object_string, signature)
19
+ end
16
20
 
17
- def private_key_binary
21
+ def self.ecdsa_private_key
18
22
  config = Sygna::Config.instance
19
23
 
20
- OpenSSL::PKey::EC.new(config.private_key).private_key.to_s(2)
21
- end
24
+ private_key_binary = OpenSSL::PKey::EC.new(config.private_key).private_key.to_s(2)
22
25
 
23
- def empty_signature
24
- {
25
- signature: ""
26
- }
26
+ Secp256k1::PrivateKey.new(privkey: private_key_binary)
27
27
  end
28
+
29
+ private_class_method :ecdsa_private_key
28
30
  end
29
31
  end
data/lib/sygna/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Sygna
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
data/sygna.gemspec CHANGED
@@ -38,5 +38,5 @@ Gem::Specification.new do |spec|
38
38
  spec.add_development_dependency "rake", "~> 12"
39
39
  spec.add_development_dependency "rspec", "~> 3.7"
40
40
 
41
- spec.add_runtime_dependency "secp256k1-ruby"
41
+ spec.add_runtime_dependency "bitcoin-secp256k1"
42
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sygna
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nic
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-31 00:00:00.000000000 Z
11
+ date: 2020-04-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.7'
55
55
  - !ruby/object:Gem::Dependency
56
- name: secp256k1-ruby
56
+ name: bitcoin-secp256k1
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="