sygna 0.1.1 → 0.1.2

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: 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
  - - ">="