acme-client 2.0.16 → 2.0.17

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: f26a6196b6e5f7bfe464c6d5e3068f29a295c914aaa2af7a086b949cfb00e132
4
- data.tar.gz: 20ae05784979ec85c880736ded0915de4ad07a743262eb203a089e7fd7fbf79c
3
+ metadata.gz: 417bc7e66063768660e078a24866ac390792f42c861742054ee4d6269297bb3d
4
+ data.tar.gz: 29d839f6c57f17ca85dcce3bad8b505bf9bc75a7ae4ea5baca55c341b29cf238
5
5
  SHA512:
6
- metadata.gz: 1c89f451807ab8f10529c3feabc4d96d961bddfc915eeaa2cc76d9f4ed31b9e6376e80327f82ce0daafa7df2d74e5585403b354cb53d1942b1e5bf0db9c4c0d0
7
- data.tar.gz: 21970923591d7133201257ad95e456b429eb3d906bd12d1fcd17a0305ba2edce0e16d0bdd8edfbb03764d8d35b2a845f08a0f5e6e116385735d6e081b7d094e2
6
+ metadata.gz: b769d1192fcbf7468cea7637a79398d19a1561da94e34e1e08c15108dba6923b2f2c4d38c2a6404699111b42455c97217eec46ba5fbb66c6a0e0661230743b0b
7
+ data.tar.gz: aa3deacd0ad900db154efaf3d6e231faf2b8f8ac01e9a02cfafb4b17f7993e13c8bad00321545b4a042e49ba68540b4be874ca5024828ac0299edf7c47d7c246
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## `2.0.17`
2
+
3
+ * Fix bug where depending on call order `jws` get generated with the wrong `kid`
4
+
1
5
  ## `2.0.16`
2
6
 
3
7
  * Refactor Directory
data/Gemfile CHANGED
@@ -8,6 +8,5 @@ end
8
8
 
9
9
  group :development, :test do
10
10
  gem 'pry'
11
- gem 'rubocop', '~> 0.49.0'
12
11
  gem 'ruby-prof', require: false
13
12
  end
data/README.md CHANGED
@@ -1,13 +1,11 @@
1
1
  # Acme::Client
2
2
 
3
- `acme-client` is a client implementation of the ACMEv2 / [RFC 8555](https://tools.ietf.org/html/rfc8555) protocol in Ruby.
3
+ `acme-client` is a client implementation of the ACME / [RFC 8555](https://tools.ietf.org/html/rfc8555) protocol in Ruby.
4
4
 
5
5
  You can find the ACME reference implementations of the [server](https://github.com/letsencrypt/boulder) in Go and the [client](https://github.com/certbot/certbot) in Python.
6
6
 
7
7
  ACME is part of the [Letsencrypt](https://letsencrypt.org/) project, which goal is to provide free SSL/TLS certificates with automation of the acquiring and renewal process.
8
8
 
9
- You can find ACMEv1 compatible client in the [acme-v1](https://github.com/unixcharles/acme-client/tree/acme-v1) branch.
10
-
11
9
  ## Installation
12
10
 
13
11
  Via RubyGems:
@@ -207,8 +205,7 @@ order.certificate # => PEM-formatted certificate
207
205
 
208
206
  ### Ordering an alternative certificate
209
207
 
210
- Let's Encrypt is [transitioning](https://letsencrypt.org/2019/04/15/transitioning-to-isrg-root.html) to use a new intermediate certificate. Starting January 11, 2021 new certificates will be signed by their own intermediate. To ease the transition on clients Let's Encrypt will continue signing an alternative version of the certificate using the old, cross-signed intermediate until September 29, 2021. In order to utilize an alternative certificate the `Order#certificate` method accepts a `force_chain` keyword argument, which takes the issuer name of the intermediate certificate.
211
- For example, to download the cross-signed certificate after January 11, 2021, call `Order#certificate` as follows:
208
+ The provider may provide alternate certificate with different certificate chain. You can specify the required chain and the client will automatically download alternate certificate and match the chain by name.
212
209
 
213
210
  ```ruby
214
211
  begin
@@ -249,7 +246,7 @@ client.account_key_change(new_private_key: new_private_key)
249
246
 
250
247
  ## Requirements
251
248
 
252
- Ruby >= 2.1
249
+ Ruby >= 3.0
253
250
 
254
251
  ## Development
255
252
 
data/Rakefile CHANGED
@@ -3,7 +3,4 @@ require 'bundler/gem_tasks'
3
3
  require 'rspec/core/rake_task'
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- require 'rubocop/rake_task'
7
- RuboCop::RakeTask.new
8
-
9
- task default: [:spec, :rubocop]
6
+ task default: [:spec]
data/acme-client.gemspec CHANGED
@@ -16,12 +16,11 @@ Gem::Specification.new do |spec|
16
16
 
17
17
  spec.required_ruby_version = '>= 2.3.0'
18
18
 
19
- spec.add_development_dependency 'bundler', '>= 1.17.3'
20
19
  spec.add_development_dependency 'rake', '~> 13.0'
21
20
  spec.add_development_dependency 'rspec', '~> 3.9'
22
21
  spec.add_development_dependency 'vcr', '~> 2.9'
23
22
  spec.add_development_dependency 'webmock', '~> 3.8'
24
- spec.add_development_dependency 'webrick'
23
+ spec.add_development_dependency 'webrick', '~> 1.7'
25
24
 
26
25
  spec.add_runtime_dependency 'faraday', '>= 1.0', '< 3.0.0'
27
26
  spec.add_runtime_dependency 'faraday-retry', '>= 1.0', '< 3.0.0'
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'acme-client'
5
+
6
+ require File.join(File.dirname(__FILE__), '../spec/support/ssl_helper')
7
+
8
+
9
+ SSLHelper::KEYSTASH.generate_keystash!(size: 200)
@@ -56,7 +56,7 @@ class Acme::Client::Resources::Authorization
56
56
  type: attributes.fetch('type'),
57
57
  status: attributes.fetch('status'),
58
58
  url: attributes.fetch('url'),
59
- token: attributes.fetch('token'),
59
+ token: attributes.fetch('token', nil),
60
60
  error: attributes['error']
61
61
  }
62
62
  Acme::Client::Resources::Challenges.new(@client, **arguments)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Acme
4
4
  class Client
5
- VERSION = '2.0.16'.freeze
5
+ VERSION = '2.0.17'.freeze
6
6
  end
7
7
  end
data/lib/acme/client.rb CHANGED
@@ -332,7 +332,7 @@ class Acme::Client
332
332
  connection.post(url, nil)
333
333
  end
334
334
 
335
- def get(url, mode: :kid)
335
+ def get(url, mode: :get)
336
336
  connection = connection_for(url: url, mode: mode)
337
337
  connection.get(url)
338
338
  end
@@ -356,16 +356,6 @@ class Acme::Client
356
356
  )
357
357
  end
358
358
 
359
- def fetch_chain(response, limit = 10)
360
- links = response.headers['link']
361
- if limit.zero? || links.nil? || links['up'].nil?
362
- []
363
- else
364
- issuer = get(links['up'])
365
- [OpenSSL::X509::Certificate.new(issuer.body), *fetch_chain(issuer, limit - 1)]
366
- end
367
- end
368
-
369
359
  def endpoint_for(key)
370
360
  directory.endpoint_for(key)
371
361
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acme-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.16
4
+ version: 2.0.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charles Barbier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-16 00:00:00.000000000 Z
11
+ date: 2024-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 1.17.3
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: 1.17.3
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: rake
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -84,16 +70,16 @@ dependencies:
84
70
  name: webrick
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
- - - ">="
73
+ - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: '0'
75
+ version: '1.7'
90
76
  type: :development
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
- - - ">="
80
+ - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: '0'
82
+ version: '1.7'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: faraday
99
85
  requirement: !ruby/object:Gem::Requirement
@@ -148,6 +134,7 @@ files:
148
134
  - Rakefile
149
135
  - acme-client.gemspec
150
136
  - bin/console
137
+ - bin/generate_keystash
151
138
  - bin/release
152
139
  - bin/setup
153
140
  - lib/acme-client.rb