spoiled 0.1.0 → 0.2.0

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
  SHA1:
3
- metadata.gz: e5888f72cd25f2e795c93207d62fbf063fb468c9
4
- data.tar.gz: 812ef01ba27a0b6c747f7bc4175eb7663726efac
3
+ metadata.gz: 132931f494b7f818525bcdaaef19a182dea4b011
4
+ data.tar.gz: 1d6e43725742d5f5fc4be76abc89884dda5d94de
5
5
  SHA512:
6
- metadata.gz: b9a79565e147ae12f58f853453f2b498c3b4b32b44b850a7fd1e1b7f978f942ec7f9f9617caccb820984324e6b8eb9741c1f85066659049b2c3f9d0d9da21fec
7
- data.tar.gz: 2bbe09b1890af12cccf3025895a235ee0b91d87a500000897071aaeb9255de3295b532d7b0c16ee7fafe4231976e98ebeca9ed2668449d328c9d38839104a7c0
6
+ metadata.gz: 217ff06b27b4203a8519ba5ded03402deff4ba086c8aac72cd7c29c3e7add6daebe935b92e75fa361c8925a4d1dd69d4acfe917519e6ae35e297ee26e3eb45cb
7
+ data.tar.gz: ea1c40cbb8ffaff8d6af897368523bf23ad3596049f41ece2300384cf1ae1705dc80b6df53c7970f4e857f5b9dcea1726e0e7505940465fda688bb33a9d718ad
@@ -0,0 +1 @@
1
+ 2.2.3
data/Gemfile CHANGED
@@ -1,6 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- ruby '2.1.2'
4
-
5
3
  # Specify your gem's dependencies in spoiled.gemspec
6
4
  gemspec
@@ -1,20 +1,32 @@
1
+ require 'socket'
2
+ require 'openssl'
3
+
1
4
  require "active_support/all"
2
5
 
3
6
  require "spoiled/version"
4
7
 
5
8
  module Spoiled
6
9
  def self.verify url, port = 443
7
- command = "echo | openssl s_client -connect #{url}:#{port} 2>/dev/null | openssl x509 -noout -dates"
8
- output = `#{command}`
10
+ tcp_client = TCPSocket.new(url, 443)
11
+ ssl_client = OpenSSL::SSL::SSLSocket.new(tcp_client)
12
+ ssl_client.connect
13
+ cert = OpenSSL::X509::Certificate.new(ssl_client.peer_cert)
14
+ ssl_client.sysclose
15
+ tcp_client.close
16
+
17
+ certprops = OpenSSL::X509::Name.new(cert.issuer).to_a
18
+ issuer = certprops.select { |name, data, type| name == "O" }.first[1]
9
19
 
10
- not_before = output.lines.first.to_date
11
- not_after = output.lines.last.to_date
12
- time_remaining = ( not_after - Date.today ).to_i.days
20
+ cn = cert.subject.to_s.gsub!(/.*?(?=CN=)/im, "").gsub("CN=", '')
13
21
 
14
- {
15
- not_before: not_before,
16
- not_after: not_after,
17
- time_remaining: time_remaining
22
+ result = {
23
+ url: url,
24
+ port: port,
25
+ valid_on: cert.not_before.to_date,
26
+ valid_until: cert.not_after.to_date,
27
+ issuer: issuer,
28
+ time_remaining: ( cert.not_after.to_date - Date.today ).to_i.days,
29
+ common_name: cn
18
30
  }
19
31
  end
20
32
  end
@@ -1,3 +1,3 @@
1
1
  module Spoiled
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -27,7 +27,10 @@ Gem::Specification.new do |spec|
27
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
28
  spec.require_paths = ["lib"]
29
29
 
30
+ spec.add_runtime_dependency 'thor', '~> 0.19.1'
31
+ spec.add_runtime_dependency "activesupport", "~> 4.0"
32
+
33
+
30
34
  spec.add_development_dependency "bundler", "~> 1.9"
31
35
  spec.add_development_dependency "rake", "~> 10.0"
32
- spec.add_development_dependency "activesupport", "~> 4.0"
33
36
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spoiled
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - |+
@@ -10,50 +10,64 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2015-04-29 00:00:00.000000000 Z
13
+ date: 2016-05-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: bundler
16
+ name: thor
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
19
  - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: '1.9'
22
- type: :development
21
+ version: 0.19.1
22
+ type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - "~>"
27
27
  - !ruby/object:Gem::Version
28
- version: '1.9'
28
+ version: 0.19.1
29
29
  - !ruby/object:Gem::Dependency
30
- name: rake
30
+ name: activesupport
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - "~>"
34
34
  - !ruby/object:Gem::Version
35
- version: '10.0'
35
+ version: '4.0'
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '4.0'
43
+ - !ruby/object:Gem::Dependency
44
+ name: bundler
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '1.9'
36
50
  type: :development
37
51
  prerelease: false
38
52
  version_requirements: !ruby/object:Gem::Requirement
39
53
  requirements:
40
54
  - - "~>"
41
55
  - !ruby/object:Gem::Version
42
- version: '10.0'
56
+ version: '1.9'
43
57
  - !ruby/object:Gem::Dependency
44
- name: activesupport
58
+ name: rake
45
59
  requirement: !ruby/object:Gem::Requirement
46
60
  requirements:
47
61
  - - "~>"
48
62
  - !ruby/object:Gem::Version
49
- version: '4.0'
63
+ version: '10.0'
50
64
  type: :development
51
65
  prerelease: false
52
66
  version_requirements: !ruby/object:Gem::Requirement
53
67
  requirements:
54
68
  - - "~>"
55
69
  - !ruby/object:Gem::Version
56
- version: '4.0'
70
+ version: '10.0'
57
71
  description: Spoiled is a small tool to check SSL expiration dates
58
72
  email:
59
73
  - w.s.van.der.meulen@gmail.com
@@ -63,6 +77,7 @@ extra_rdoc_files: []
63
77
  files:
64
78
  - ".gitignore"
65
79
  - ".rspec"
80
+ - ".ruby-version"
66
81
  - ".travis.yml"
67
82
  - CODE_OF_CONDUCT.md
68
83
  - Gemfile
@@ -95,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
110
  version: '0'
96
111
  requirements: []
97
112
  rubyforge_project:
98
- rubygems_version: 2.4.6
113
+ rubygems_version: 2.4.5.1
99
114
  signing_key:
100
115
  specification_version: 4
101
116
  summary: Spoiled is a small tool to check SSL expiration dates