ssl_info 1.0.1 → 1.0.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: c7c3f95cf2513ef01ba22e9b41b89f5cc26e9e07222b333bea08994f58cce7be
4
- data.tar.gz: 23e9cf9ee1097afc72498c85ea5cb70b94c579bc93c99f0dbfbd419ba05e8b8b
3
+ metadata.gz: 954c1cd2baee5c80f1a8d9d961080beb4ea5191333663424b624ebd55ef18d12
4
+ data.tar.gz: a813187fe11d87d6b0eeb1250e61a2d09946cc8a2e8a0a624453919bf9c74e81
5
5
  SHA512:
6
- metadata.gz: c23b4b502587ce8d9816419d3f5b7c2a79b76a2851ce35dcede07e55e5eec8eb9d917841c989c8953ca7829d6127fa4f2a6607e0568baa9dd49bf0b7bdaa7d1c
7
- data.tar.gz: 61fbbc100dd54d38c0e6f40e94fa70f798427e0f05dcc71dca4807e5f38f7c9a64aab62115dcde1529e6c2fa41c8de0c11ba58bffbf55336c1318ab45c992929
6
+ metadata.gz: 03cd10b89305d2092e56b72126abab8cbd24e4674791fcd85359a1c114e3c12c1a34b449074f9e6c96fe54c7a3785ed0686fb317b8e43c3a9c3399f78c68d6aa
7
+ data.tar.gz: c10a8d92e25aa805dc18a3f2786432650297b269c28f45d3f2a01246a031abb52765d7ed0415c3c3b48767947f1a9cb66ad9ca45506e6541f0648edbf83f0b60
@@ -1,23 +1,23 @@
1
1
  Layout/IndentationWidth:
2
2
  Width: 4
3
3
 
4
- Metrics/AbcSize:
5
- Max: 50
4
+ Layout/LineLength:
5
+ Enabled: false
6
6
 
7
- Metrics/LineLength:
7
+ Metrics/AbcSize:
8
8
  Enabled: false
9
9
 
10
10
  Metrics/BlockLength:
11
- Max: 40
11
+ Enabled: false
12
12
 
13
13
  Metrics/CyclomaticComplexity:
14
- Max: 20
14
+ Enabled: false
15
15
 
16
16
  Metrics/MethodLength:
17
- Max: 60
17
+ Enabled: false
18
18
 
19
19
  Metrics/PerceivedComplexity:
20
- Max: 20
20
+ Enabled: false
21
21
 
22
22
  Style/GlobalVars:
23
23
  Enabled: false
@@ -1,3 +1,9 @@
1
+ ## 1.0.2 (February 7, 2020)
2
+
3
+ IMPROVEMENTS:
4
+
5
+ * Allow the specification of a custom port. ([@TGWolf][])
6
+
1
7
  ## 1.0.1 (June 28, 2019)
2
8
 
3
9
  IMPROVEMENTS:
data/README.md CHANGED
@@ -42,6 +42,13 @@ printf("Expires: #{SSLInfo.not_after}\n")
42
42
  printf("Expires In: #{SSLInfo.expires_in} days\n")
43
43
  ```
44
44
 
45
+ > You can add an optional port to the domain name.
46
+
47
+ ```ruby
48
+ SSLInfo.get_cert("www.antiphoton.com:8080")
49
+ SSLInfo.display_cert
50
+ ```
51
+
45
52
  ## Development
46
53
 
47
54
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -21,14 +21,25 @@ module SSLInfo
21
21
 
22
22
  def self.get_cert(domain_name, verify = false)
23
23
  begin
24
+ parts = domain_name.split(':')
25
+
26
+ domain_name = parts[0]
27
+
24
28
  uri = URI::HTTPS.build(host: domain_name)
25
- http = Net::HTTP.new(uri.host, uri.port)
29
+
30
+ port = if parts.length == 1
31
+ uri.port
32
+ else
33
+ parts[1]
34
+ end
35
+
36
+ http = Net::HTTP.new(uri.host, port)
26
37
 
27
38
  http.use_ssl = true
28
39
  http.verify_mode = verify ? OpenSSL::SSL::VERIFY_PEER : OpenSSL::SSL::VERIFY_NONE
29
- http.open_timeout = 10
30
- http.read_timeout = 10
31
- http.ssl_timeout = 10
40
+ http.open_timeout = 5
41
+ http.read_timeout = 5
42
+ http.ssl_timeout = 5
32
43
 
33
44
  http.start do |h|
34
45
  @cert = h.peer_cert
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SSLInfo
4
- VERSION = '1.0.1'
4
+ VERSION = '1.0.2'
5
5
  end
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'bundler/setup'
5
+
6
+ require 'optparse'
7
+ require 'ssl_info'
8
+
9
+ # -------------------------------------------------------------------------------- #
10
+ # Process Arguments #
11
+ # -------------------------------------------------------------------------------- #
12
+ # This function will process the input from the command line and work out what it #
13
+ # is that the user wants to see. #
14
+ # #
15
+ # This is the main processing function where all the processing logic is handled. #
16
+ # -------------------------------------------------------------------------------- #
17
+
18
+ def process_arguments
19
+ options = {}
20
+ # Enforce the presence of
21
+ mandatory = %I[domain]
22
+
23
+ optparse = OptionParser.new do |opts|
24
+ opts.banner = "Usage: #{$PROGRAM_NAME}"
25
+
26
+ opts.on('-h', '--help', 'Display this screen') do
27
+ puts opts
28
+ exit(1)
29
+ end
30
+ opts.on('-d', '--domain string', 'The domain name to check') do |domain|
31
+ options[:domain] = domain
32
+ end
33
+ end
34
+
35
+ begin
36
+ optparse.parse!
37
+ options[:message] = ARGF.read unless STDIN.tty? # override message parameter if data is piped in
38
+ missing = mandatory.select { |param| options[param].nil? }
39
+ raise OptionParser::MissingArgument.new(missing.join(', ')) unless missing.empty?
40
+ rescue OptionParser::InvalidOption, OptionParser::MissingArgument => e
41
+ puts e.to_s
42
+ puts optparse
43
+ exit
44
+ end
45
+
46
+ SSLInfo.get_cert(options[:domain])
47
+ SSLInfo.display_cert unless SSLInfo.cert.nil?
48
+ end
49
+
50
+ # -------------------------------------------------------------------------------- #
51
+ # Main() #
52
+ # -------------------------------------------------------------------------------- #
53
+ # The main function where all of the heavy lifting and script config is done. #
54
+ # -------------------------------------------------------------------------------- #
55
+
56
+ def main
57
+ process_arguments
58
+ end
59
+
60
+ main
61
+
62
+ # -------------------------------------------------------------------------------- #
63
+ # End of Script #
64
+ # -------------------------------------------------------------------------------- #
65
+ # This is the end - nothing more to see here. #
66
+ # -------------------------------------------------------------------------------- #
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ssl_info
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Gurney aka Wolf
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-06-28 00:00:00.000000000 Z
11
+ date: 2020-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -141,6 +141,7 @@ files:
141
141
  - spec/spec_helper.rb
142
142
  - spec/ssl_info_spec.rb
143
143
  - ssl_info.gemspec
144
+ - testing/ssl-info
144
145
  homepage: https://github.com/AntiPhotonltd/ssl_info
145
146
  licenses:
146
147
  - MIT
@@ -160,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
161
  - !ruby/object:Gem::Version
161
162
  version: '0'
162
163
  requirements: []
163
- rubygems_version: 3.0.2
164
+ rubygems_version: 3.1.2
164
165
  signing_key:
165
166
  specification_version: 4
166
167
  summary: A simple gem for retreiving and displaying SSL certificate information.