acme-client 0.3.6 → 0.3.7

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
  SHA1:
3
- metadata.gz: 44c84cbfeeee02a36b07cae292b7466dfafa928b
4
- data.tar.gz: d3f6a5474c6d65abad6dc8d3a2674e6af8710adc
3
+ metadata.gz: caadecc954e9a67dfb321eeb5017112660d24110
4
+ data.tar.gz: 7788f6340a7266cfc652583ec1b3f70a8ddb672d
5
5
  SHA512:
6
- metadata.gz: 2574977b8a14c135fabbe3b1caa7b29605b19d1c1f20362536f06ef77a3af13bf722a2c2a52fc8397756cf7a690148535915af8ab4dbcd6ae7b4fc156f850d92
7
- data.tar.gz: 035c701ac78c523d0ad1dc699856320aa730f19a8b5b4c485d10ac915f1a098d9e66b55b1b520e0f7e064fe2e63cd27e3cc66b9fec3cf2c880557ad35f525e24
6
+ metadata.gz: bb70e95c5e5acc0faba72c687bc257f03b4ca0411b2ab30d206c79b08ce73974a473c01ca6d48734f6b69eb4bef2efdf314b82b033c36c9465cfbef2a73d1155
7
+ data.tar.gz: 971890ea5f70b48d68a29ef5f447d6641e9eab60a51785f6db7c26e52e5dc3f39fd4aa23aa25c8481dd0279a1fb05af9d6f78a44f64775187ec4ab77e5162bf0
@@ -1,17 +1 @@
1
- require 'faraday'
2
- require 'json'
3
- require 'json/jwt'
4
- require 'openssl'
5
- require 'digest'
6
- require 'forwardable'
7
-
8
- module Acme; end
9
-
10
1
  require 'acme/client'
11
- require 'acme/client/certificate'
12
- require 'acme/client/certificate_request'
13
- require 'acme/client/self_sign_certificate'
14
- require 'acme/client/crypto'
15
- require 'acme/client/resources'
16
- require 'acme/client/faraday_middleware'
17
- require 'acme/client/error'
@@ -1,3 +1,22 @@
1
+ require 'faraday'
2
+ require 'json'
3
+ require 'json/jwt'
4
+ require 'openssl'
5
+ require 'digest'
6
+ require 'forwardable'
7
+
8
+ module Acme; end
9
+ class Acme::Client; end
10
+
11
+ require 'acme/client/version'
12
+ require 'acme/client/certificate'
13
+ require 'acme/client/certificate_request'
14
+ require 'acme/client/self_sign_certificate'
15
+ require 'acme/client/crypto'
16
+ require 'acme/client/resources'
17
+ require 'acme/client/faraday_middleware'
18
+ require 'acme/client/error'
19
+
1
20
  class Acme::Client
2
21
  DEFAULT_ENDPOINT = 'http://127.0.0.1:4000'.freeze
3
22
  DIRECTORY_DEFAULT = {
@@ -81,6 +81,7 @@ class Acme::Client::CertificateRequest
81
81
  OpenSSL::X509::Request.new.tap do |csr|
82
82
  csr.public_key = @private_key.public_key
83
83
  csr.subject = generate_subject
84
+ csr.version = 2
84
85
  add_extension(csr)
85
86
  csr.sign @private_key, @digest
86
87
  end
@@ -9,8 +9,8 @@ class Acme::Client::Crypto
9
9
  jwt = JSON::JWT.new(payload || {})
10
10
  jwt.header.merge!(header || {})
11
11
  jwt.header[:jwk] = jwk
12
- jwt.signature = jwt.sign(private_key, :RS256).signature
13
- jwt.to_json(syntax: :flattened)
12
+ jws = jwt.sign(private_key, :RS256)
13
+ jws.to_json(syntax: :flattened)
14
14
  end
15
15
 
16
16
  def thumbprint
@@ -1,6 +1,9 @@
1
1
  class Acme::Client::FaradayMiddleware < Faraday::Middleware
2
2
  attr_reader :env, :response, :client
3
3
 
4
+ repo_url = 'https://github.com/unixcharles/acme-client'
5
+ USER_AGENT = "Acme::Client v#{Acme::Client::VERSION} (#{repo_url})".freeze
6
+
4
7
  def initialize(app, client:)
5
8
  super(app)
6
9
  @client = client
@@ -8,6 +11,7 @@ class Acme::Client::FaradayMiddleware < Faraday::Middleware
8
11
 
9
12
  def call(env)
10
13
  @env = env
14
+ @env[:request_headers]['User-Agent'] = USER_AGENT
11
15
  @env.body = crypto.generate_signed_jws(header: { nonce: pop_nonce }, payload: env.body)
12
16
  @app.call(env).on_complete { |response_env| on_complete(response_env) }
13
17
  rescue Faraday::TimeoutError
@@ -46,7 +50,7 @@ class Acme::Client::FaradayMiddleware < Faraday::Middleware
46
50
  end
47
51
 
48
52
  def error_class
49
- if error_name.present? && Acme::Client::Error.qualified_const_defined?(error_name)
53
+ if error_name.present? && Acme::Client::Error.const_defined?(error_name)
50
54
  "Acme::Client::Error::#{error_name}".constantize
51
55
  else
52
56
  Acme::Client::Error
@@ -99,7 +103,7 @@ class Acme::Client::FaradayMiddleware < Faraday::Middleware
99
103
  end
100
104
 
101
105
  def get_nonce
102
- response = Faraday.head(env.url)
106
+ response = Faraday.head(env.url, nil, 'User-Agent' => USER_AGENT)
103
107
  response.headers['replay-nonce']
104
108
  end
105
109
 
@@ -1,5 +1,5 @@
1
1
  module Acme
2
2
  class Client
3
- VERSION = '0.3.6'.freeze
3
+ VERSION = '0.3.7'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acme-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ version: 0.3.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charles Barbier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-05 00:00:00.000000000 Z
11
+ date: 2016-07-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler