linzer 0.6.2 → 0.6.3

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: db6a27eef77de787dbb8e481a845c44b2df6c284d98adc01d872fc10bb9f6061
4
- data.tar.gz: c500a2ee97f3b9b9ec7717fc9162c9f26d979301dfdcd8aad50298126e9943a3
3
+ metadata.gz: f2a241d8621efa2c0ed148bfcf9f4973296f1dd342d1ddddea7840a55f6f6385
4
+ data.tar.gz: 74b4b845ec51e87b1a616be0d2757a6e123ffb9d1ec2b5c4234edc7644522662
5
5
  SHA512:
6
- metadata.gz: 828eabfdd8bb62382eb97b05b9ad7e75a8c8a71bdf082594d73abbf964735bf60fe8e31dcbfcd16e157bf14f369747e71631f54d7b896c7be3a8dfb336a1977f
7
- data.tar.gz: 65d6be87fe00af2685a7bed82990d3ffa3fd92f4bd5375d00b34cb7d4756e9dca4beee0871c410b62918236cf4fdfd23f0304f5f51294cd855f9774fe104b1d0
6
+ metadata.gz: '067900eddd392626dcc1a0bdec5f8c7b0b00fd67dbe938376231f4c9c1262245e6ed2dcb1b4ea8af37a10c50cd47747b553b315869104342c5b94e2b45810132'
7
+ data.tar.gz: 7f1293c1feff0c225bda479422d77dc3ac1489c6c8d2233cfdd6ef3bc7a689345f091987ce9f3600a34f74ffd9688eeebdbd048a5e54ec992df1fbc1a1e65355
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.6.3] - 2025-03-29
4
+
5
+ - Parse signature structured fields values as ASCII string.
6
+
3
7
  ## [0.6.2] - 2024-12-10
4
8
 
5
9
  - Remove dependency on ed25519 gem. Pull request
@@ -31,11 +31,11 @@ module Linzer
31
31
  headers.transform_keys!(&:downcase)
32
32
  validate headers
33
33
 
34
- input = parse_field(headers, "signature-input")
34
+ input = parse_structured_field(headers, "signature-input")
35
35
  reject_multiple_signatures if input.size > 1 && options[:label].nil?
36
36
  label = options[:label] || input.keys.first
37
37
 
38
- signature = parse_field(headers, "signature")
38
+ signature = parse_structured_field(headers, "signature")
39
39
  fail_with_signature_not_found label unless signature.key?(label)
40
40
 
41
41
  raw_signature =
@@ -44,8 +44,7 @@ module Linzer
44
44
 
45
45
  fail_due_invalid_components unless input[label].value.respond_to?(:each)
46
46
 
47
- ascii = Encoding::US_ASCII
48
- components = input[label].value.map { |c| c.value.encode(ascii) }
47
+ components = input[label].value.map(&:value)
49
48
  parameters = input[label].parameters
50
49
 
51
50
  new(components, raw_signature, label, parameters)
@@ -75,8 +74,11 @@ module Linzer
75
74
  raise Error.new "Unexpected value for covered components."
76
75
  end
77
76
 
78
- def parse_field(hsh, field_name)
79
- Message.parse_structured_dictionary(hsh[field_name], field_name)
77
+ def parse_structured_field(hsh, field_name)
78
+ # Serialized Structured Field values for HTTP are ASCII strings.
79
+ # See: RFC 8941 (https://datatracker.ietf.org/doc/html/rfc8941)
80
+ value = hsh[field_name].encode(Encoding::US_ASCII)
81
+ Message.parse_structured_dictionary(value, field_name)
80
82
  end
81
83
  end
82
84
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Linzer
4
- VERSION = "0.6.2"
4
+ VERSION = "0.6.3"
5
5
  end
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.2
4
+ version: 0.6.3
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-10 00:00:00.000000000 Z
11
+ date: 2025-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: openssl