linzer 0.6.1 → 0.6.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: d2ec6a2a846f2bb066bdd658c2e50a869ceff52f65f3e5f8670cc5509af6069c
4
- data.tar.gz: 5401df5ea61c39290b61a21cf19c4eaddc537abe908067a47688c1f209c982e3
3
+ metadata.gz: db6a27eef77de787dbb8e481a845c44b2df6c284d98adc01d872fc10bb9f6061
4
+ data.tar.gz: c500a2ee97f3b9b9ec7717fc9162c9f26d979301dfdcd8aad50298126e9943a3
5
5
  SHA512:
6
- metadata.gz: 53c504c5c0f886d3e73332d7d8bf7072137519a218ca6a005824f8ad073fb589dd91f2e7980aa02b232c17dd80a87923141e57b094087fb4f412dddbf5588a9f
7
- data.tar.gz: 0a99fc9611e6b26ae820fecfe09e10a6c610be20bdf8f9c3fd7c6fab031f82f6f7fa109359470a2a65b7d7cd9817c21259e59fe6f99e50a1c6326d965b0df944
6
+ metadata.gz: 828eabfdd8bb62382eb97b05b9ad7e75a8c8a71bdf082594d73abbf964735bf60fe8e31dcbfcd16e157bf14f369747e71631f54d7b896c7be3a8dfb336a1977f
7
+ data.tar.gz: 65d6be87fe00af2685a7bed82990d3ffa3fd92f4bd5375d00b34cb7d4756e9dca4beee0871c410b62918236cf4fdfd23f0304f5f51294cd855f9774fe104b1d0
data/CHANGELOG.md CHANGED
@@ -1,12 +1,24 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.6.2] - 2024-12-10
4
+
5
+ - Remove dependency on ed25519 gem. Pull request
6
+ [#5](https://github.com/nomadium/linzer/pull/5) by
7
+ [oneiros](https://github.com/oneiros).
8
+
9
+ - Run unit tests against Ruby 3.4.
10
+
3
11
  ## [0.6.1] - 2024-12-02
4
12
 
5
13
  - Add more validation checks on HTTP field component identifiers and parameters.
6
14
 
7
- - Relax rack version requirements.
15
+ - Relax rack version requirements. Pull request
16
+ [#4](https://github.com/nomadium/linzer/pull/4) by
17
+ [oneiros](https://github.com/oneiros).
8
18
 
9
- - Update uri dependency to the latest version.
19
+ - Update uri dependency to the latest version. Pull request
20
+ [#3](https://github.com/nomadium/linzer/pull/3) by
21
+ [oneiros](https://github.com/oneiros).
10
22
 
11
23
  ## [0.6.0] - 2024-04-06
12
24
 
data/README.md CHANGED
@@ -97,13 +97,10 @@ response = http.post("/some_uri", "data", headers.merge(signature.to_h))
97
97
  ### To verify a valid signature:
98
98
 
99
99
  ```ruby
100
- test_ed25519_key_pub = Base64.strict_encode64(key.material.verify_key.to_bytes)
101
- # => "EUra7KsJ8B/lSZJVhDaopMycmZ6T7KtJqKVNJTHKIw0="
100
+ test_ed25519_key_pub = key.material.public_to_pem
101
+ # => "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAK1ZrC4JqC356pRsUiLVJdFZ3dAjo909VfWs1li33MCQ=\n-----END PUBLIC KEY-----\n"
102
102
 
103
- raw_pubkey = Base64.strict_decode64(test_ed25519_key_pub)
104
- # => "\xB1rM\xFFR\x1F\xDDw\x00\x89\..."
105
-
106
- pubkey = Linzer.new_ed25519_public_key(raw_pubkey, "some-key-ed25519")
103
+ pubkey = Linzer.new_ed25519_public_key(test_ed25519_key_pub, "some-key-ed25519")
107
104
  # => #<Linzer::Ed25519::Key:0x00000fe19b9384b0
108
105
 
109
106
  # if you have to, there is a helper method to build a request object on the server side
@@ -1,19 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "ed25519"
4
-
5
3
  module Linzer
6
4
  module Ed25519
7
5
  class Key < Linzer::Key
8
6
  def sign(data)
9
- material.sign(data)
7
+ material.sign(nil, data)
10
8
  end
11
9
 
12
10
  def verify(signature, data)
13
- verify_key = material.is_a?(::Ed25519::SigningKey) ? material.verify_key : material
14
- verify_key.verify(signature, data)
15
- rescue ::Ed25519::VerifyError
16
- false
11
+ material.verify(nil, signature, data)
17
12
  end
18
13
  end
19
14
  end
@@ -33,18 +33,17 @@ module Linzer
33
33
  end
34
34
 
35
35
  def generate_ed25519_key(key_id = nil)
36
- material = ::Ed25519::SigningKey.generate
36
+ material = OpenSSL::PKey.generate_key("ed25519")
37
37
  Linzer::Ed25519::Key.new(material, id: key_id)
38
38
  end
39
39
 
40
40
  def new_ed25519_key(material, key_id = nil)
41
- key = ::Ed25519::SigningKey.new(material)
41
+ key = OpenSSL::PKey.read(material)
42
42
  Linzer::Ed25519::Key.new(key, id: key_id)
43
43
  end
44
44
 
45
45
  def new_ed25519_public_key(material, key_id = nil)
46
- key = ::Ed25519::VerifyKey.new(material)
47
- Linzer::Ed25519::Key.new(key, id: key_id)
46
+ new_ed25519_key(material, key_id)
48
47
  end
49
48
 
50
49
  # https://www.rfc-editor.org/rfc/rfc4492.html#appendix-A
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Linzer
4
- VERSION = "0.6.1"
4
+ VERSION = "0.6.2"
5
5
  end
data/lib/linzer.rb CHANGED
@@ -4,6 +4,7 @@ require "starry"
4
4
  require "openssl"
5
5
  require "rack"
6
6
  require "uri"
7
+ require "stringio"
7
8
 
8
9
  require_relative "linzer/version"
9
10
  require_relative "linzer/common"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: linzer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Landaeta
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-12-02 00:00:00.000000000 Z
11
+ date: 2024-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: openssl
@@ -30,26 +30,6 @@ dependencies:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 3.0.0
33
- - !ruby/object:Gem::Dependency
34
- name: ed25519
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: '1.3'
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- version: 1.3.0
43
- type: :runtime
44
- prerelease: false
45
- version_requirements: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - "~>"
48
- - !ruby/object:Gem::Version
49
- version: '1.3'
50
- - - ">="
51
- - !ruby/object:Gem::Version
52
- version: 1.3.0
53
33
  - !ruby/object:Gem::Dependency
54
34
  name: starry
55
35
  requirement: !ruby/object:Gem::Requirement
@@ -104,6 +84,26 @@ dependencies:
104
84
  - - ">="
105
85
  - !ruby/object:Gem::Version
106
86
  version: 1.0.2
87
+ - !ruby/object:Gem::Dependency
88
+ name: stringio
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
92
+ - !ruby/object:Gem::Version
93
+ version: '3.1'
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 3.1.2
97
+ type: :runtime
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '3.1'
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: 3.1.2
107
107
  description:
108
108
  email:
109
109
  - miguel@miguel.cc