schnorr_sig 1.0.1.1 → 1.2.0.1

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: 583aef17bbda178fd790a7cfddb29bdd1d38ee1d44092d3cb6afc2517a564a09
4
- data.tar.gz: 299a66f0e042c200b81f902e23ab2adb712a6260532fb28a6e23555cfc414db6
3
+ metadata.gz: 2168b7333b06337bd90e65f6838a59acc10f87c2101ef3a300f832546c51c2ef
4
+ data.tar.gz: 4499c662534c9c88dd5129d6922817704935be94d1266e7553abb38907e05cc1
5
5
  SHA512:
6
- metadata.gz: bb3a7ade41fcdd713ae0b9da0d8c0cf8c390f7c3da232e19e4be146f66bf45311aa19ab02025ff3b55e5dc11a000094817751aaf4dd2c4a9d7e9f93b455ff866
7
- data.tar.gz: 0dd87d6af1595d3a51b4d1788bb3b24f3c1a11a0997ceb3fc0543e422b4dde75fa04e2b3f1ca4ec5cdafe3fbd9f23091c23cd9608e9ea338e7a21f5b515a6dcf
6
+ metadata.gz: 9a7e5e7c1247580889901b1711a4d49dfb1d48003b8818dc0697eb7b22f2cf99488e16a1b0c1ef07b9f3b964856b2733a8bda9ddcfa38d806310090fd015945c
7
+ data.tar.gz: 34bbccee610a93c138f8a060cba1f216cc95c5129245bfa42dec820ca4eacd317461ec48026bca107b257eba5300070f7af45d75308452f22c2908a57e7f1a2c
data/README.md CHANGED
@@ -110,7 +110,7 @@ Here are the fundamental functions common to both implementations:
110
110
  * `tagged_hash(str tag, str msg)` *returns* `32B hash`
111
111
  * `keypair()` *returns* `[32B sk, 32B pk]`
112
112
 
113
- Use `soft_verify?(pk, msg, sig)` to yield `false` if errors are raised.
113
+ Use `soft_verify?(pk, msg, sig)` to return false if errors are raised.
114
114
 
115
115
  ### Differences
116
116
 
@@ -129,14 +129,9 @@ though `Random` may also be used via `NO_SECURERANDOM` environment variable.
129
129
 
130
130
  ## Enable Fast Implementation
131
131
 
132
- *The `rbsecp256k1` gem must be installed,
133
- otherwise there will be a `LoadError`.*
134
-
135
- Ensure `ENV['SCHNORR_SIG']&.downcase == 'fast'`, and then
136
- `require 'schnorr_sig'` will try the fast implementation first, before
137
- falling back to the pure implementation.
138
-
139
- After `require 'schnorr_sig'`, you can check which implementation is loaded
132
+ If the `rbsecp256k1` gem is installed and loadable, it will be loaded and used.
133
+ Otherwise, we fall back to the pure implementation. After
134
+ `require 'schnorr_sig'`, you can check which implementation is loaded
140
135
  by the presence of `SchnorrSig::Pure` or `SchnorrSig::Fast`.
141
136
 
142
137
  ### Load Directly
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'rake/testtask'
2
2
 
3
- Rake::TestTask.new :test do |t|
3
+ Rake::TestTask.new :test => :vectors do |t|
4
4
  t.test_files = [
5
5
  'test/utils.rb',
6
6
  'test/pure.rb',
@@ -8,18 +8,18 @@ Rake::TestTask.new :test do |t|
8
8
  t.warning = true
9
9
  end
10
10
 
11
- Rake::TestTask.new :vectors do |t|
11
+ Rake::TestTask.new :fast => :vectors do |t|
12
12
  t.test_files = [
13
- 'test/vectors.rb',
14
- 'test/vectors_extra.rb',
13
+ 'test/utils.rb',
14
+ 'test/fast.rb',
15
15
  ]
16
16
  t.warning = true
17
17
  end
18
18
 
19
- Rake::TestTask.new :fast do |t|
19
+ Rake::TestTask.new :vectors do |t|
20
20
  t.test_files = [
21
- 'test/utils.rb',
22
- 'test/fast.rb',
21
+ 'test/vectors.rb',
22
+ 'test/vectors_extra.rb',
23
23
  ]
24
24
  t.warning = true
25
25
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.1.1
1
+ 1.2.0.1
@@ -17,12 +17,6 @@ module SchnorrSig
17
17
  # Utils
18
18
  #
19
19
 
20
- # use SecureRandom unless ENV['NO_SECURERANDOM'] is nonempty
21
- def random_bytes(count)
22
- nsr = ENV['NO_SECURERANDOM']
23
- (nsr and !nsr.empty?) ? Random.bytes(count) : SecureRandom.bytes(count)
24
- end
25
-
26
20
  # int (dot) G, returns ECDSA::Point
27
21
  def point(int)
28
22
  (GROUP.generator.to_jacobian * int).to_affine # 10x faster via ecdsa_ext
@@ -38,5 +38,11 @@ module SchnorrSig
38
38
 
39
39
  # convert a hex string to a binary string
40
40
  def hex2bin(hex) = [hex].pack('H*')
41
+
42
+ # use SecureRandom unless ENV['NO_SECURERANDOM'] is nonempty
43
+ def random_bytes(count)
44
+ nsr = ENV['NO_SECURERANDOM']
45
+ (nsr and !nsr.empty?) ? Random.bytes(count) : SecureRandom.bytes(count)
46
+ end
41
47
  end
42
48
  end
data/lib/schnorr_sig.rb CHANGED
@@ -1,16 +1,7 @@
1
- loaded = false
2
-
3
- if ENV['SCHNORR_SIG']&.downcase == 'fast'
4
- begin
5
- require 'schnorr_sig/fast'
6
- SchnorrSig.extend SchnorrSig::Fast
7
- loaded = true
8
- rescue LoadError => e
9
- warn [e.class, e.message].join(': ')
10
- end
11
- end
12
-
13
- unless loaded
1
+ begin
2
+ require 'schnorr_sig/fast'
3
+ SchnorrSig.extend SchnorrSig::Fast
4
+ rescue LoadError
14
5
  require 'schnorr_sig/pure'
15
6
  SchnorrSig.extend SchnorrSig::Pure
16
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schnorr_sig
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1.1
4
+ version: 1.2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rick Hull