ssl_scanner 0.0.1 → 0.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.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MDA3MzMzMjUwNDczNzQxNjg2NTQwMzIxNDg0MWFjYzY5OGE4MWFhNw==
5
+ data.tar.gz: !binary |-
6
+ YzgxMjk0NWVmZDUxZjU3NjI2Y2Y4NWQwNWJhMjcxOTdkODYyNjNmMA==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ NjlmNDljMjI1ZDdhYzNlMTBlNTA3MzcxYzE1ZWMwYmFlOTk3MWQyZjkzMGFm
10
+ M2M3ZThjNzJlNjY1MDZkMjQ5MzIxMWYyNDBkYWZkM2U5MzRiNzFjNTY2NTAx
11
+ YTA0N2I4MjM4MTliNjZiZmRkOGFhYTliZmRiODM4YmRmMDYwNzg=
12
+ data.tar.gz: !binary |-
13
+ YjA2MDYwMmQ2NDQ0YWNmNjhkMmE1MGUyYzNjOTI5ZGFmZjEzMjNkN2QzZjA2
14
+ M2ZjMmNkZGMzZmY3NDVmNjJkM2VlNjRjNjUzNmJiZTcwOWM4Nzk0MzhhNmI3
15
+ YTFmYTUzM2RiZTYxOWU4YmMzNjhlMDVjMDg5ZWQxYjIxMzViMGM=
data/README.md CHANGED
@@ -25,10 +25,11 @@ SslScanner.scan_domain('https://www.yahoo.com')
25
25
  Results in
26
26
 
27
27
  ```ruby
28
- { :subject=>/C=US/ST=CA/L=Sunnyvale/O=Yahoo! Inc./CN=*.mail.yahoo.com,
29
- :issuer=>/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance CA-3,
30
- :serial=>3098776753094407546654350892289265887,
31
- :issued=>2012-03-15 00:00:00 UTC, :expires=>2013-06-15 12:00:00 UTC,
32
- :certificate=>" .... "
28
+ { :subject=>'/C=US/ST=CA/L=Sunnyvale/O=Yahoo! Inc./CN=*.mail.yahoo.com',
29
+ :issuer=> '/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance CA-3',
30
+ :serial=> '3098776753094407546654350892289265887',
31
+ :issued=> '2012-03-15 00:00:00 UTC',
32
+ :expires=>'2013-06-15 12:00:00 UTC',
33
+ :certificate=> ' .... '
33
34
  }
34
35
  ```
@@ -4,31 +4,27 @@ require 'net/https'
4
4
  module SslScanner
5
5
 
6
6
  def self.scan_domain(domain)
7
- perform_request(domain)
7
+ cert = scan(domain)
8
8
 
9
- @info = {
10
- subject: @cert.subject,
11
- issuer: @cert.issuer,
12
- serial: @cert.serial,
13
- issued: @cert.not_before,
14
- expires: @cert.not_after,
15
- certificate: @cert.to_s
16
- }
9
+ return { error: 'no ssl information found' } if cert.nil?
17
10
 
18
- @info
19
- rescue => ex
20
- { error: ex.to_s }
11
+ {
12
+ subject: cert.subject,
13
+ issuer: cert.issuer,
14
+ serial: cert.serial,
15
+ issued: cert.not_before,
16
+ expires: cert.not_after,
17
+ certificate: cert.to_s
18
+ }
21
19
  end
22
20
 
23
21
  private
24
22
 
25
- def self.perform_request(domain)
26
- uri = URI.parse(domain)
27
- http = Net::HTTP.new(uri.host,uri.port)
28
- http.use_ssl = true
29
- http.verify_mode = OpenSSL::SSL::VERIFY_NONE
30
- http.start do |h|
31
- @cert = h.peer_cert
23
+ def self.scan(domain)
24
+ uri = URI.parse(domain)
25
+ Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |h|
26
+ return h.peer_cert
27
+ end
28
+ rescue
32
29
  end
33
- end
34
30
  end
@@ -1,3 +1,3 @@
1
1
  module SslScanner
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -3,11 +3,13 @@ require 'spec_helper'
3
3
  describe SslScanner do
4
4
 
5
5
  it 'gets information from domain' do
6
- VCR.use_cassette('getting ssl information') do
7
- info = SslScanner.scan_domain('https://www.yahoo.com')
8
- [:subject, :issuer, :serial, :issued, :expires, :certificate].each do |k|
9
- info.should have_key(k)
10
- end
6
+ info = SslScanner.scan_domain('https://www.yahoo.com')
7
+ [:subject, :issuer, :serial, :issued, :expires, :certificate].each do |k|
8
+ info.should have_key(k)
11
9
  end
12
10
  end
13
- end
11
+
12
+ it 'returns an error if domain does not have ssl' do
13
+ SslScanner.scan_domain('http://www.lucasallan.com').should == {error: 'no ssl information found'}
14
+ end
15
+ end
@@ -3,13 +3,7 @@ $:.unshift File.expand_path('../../lib', __FILE__)
3
3
  $:.unshift File.expand_path('../../lib/ssl_scanner', __FILE__)
4
4
 
5
5
  require 'rspec'
6
- require 'vcr'
7
6
  require 'ssl_scanner'
8
7
 
9
8
  RSpec.configure do |config|
10
-
11
- VCR.configure do |c|
12
- c.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
13
- c.hook_into :webmock
14
- end
15
- end
9
+ end
@@ -19,7 +19,4 @@ Gem::Specification.new do |gem|
19
19
 
20
20
  gem.add_development_dependency 'rspec', '~> 2.7'
21
21
  gem.add_development_dependency 'rake'
22
- gem.add_development_dependency 'vcr'
23
- gem.add_development_dependency 'webmock', '1.8.0'
24
-
25
22
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ssl_scanner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
5
- prerelease:
4
+ version: 0.0.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Lucas Allan Amorim
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-25 00:00:00.000000000 Z
11
+ date: 2013-09-07 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rspec
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ! '>='
36
32
  - !ruby/object:Gem::Version
@@ -38,43 +34,10 @@ dependencies:
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ! '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
- - !ruby/object:Gem::Dependency
47
- name: vcr
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- - !ruby/object:Gem::Dependency
63
- name: webmock
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - '='
68
- - !ruby/object:Gem::Version
69
- version: 1.8.0
70
- type: :development
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - '='
76
- - !ruby/object:Gem::Version
77
- version: 1.8.0
78
41
  description: Get ssl information from domains
79
42
  email:
80
43
  - lucas.allan@gmail.com
@@ -94,33 +57,26 @@ files:
94
57
  - ssl_scanner.gemspec
95
58
  homepage: ''
96
59
  licenses: []
60
+ metadata: {}
97
61
  post_install_message:
98
62
  rdoc_options: []
99
63
  require_paths:
100
64
  - lib
101
65
  required_ruby_version: !ruby/object:Gem::Requirement
102
- none: false
103
66
  requirements:
104
67
  - - ! '>='
105
68
  - !ruby/object:Gem::Version
106
69
  version: '0'
107
- segments:
108
- - 0
109
- hash: 4557681205418875691
110
70
  required_rubygems_version: !ruby/object:Gem::Requirement
111
- none: false
112
71
  requirements:
113
72
  - - ! '>='
114
73
  - !ruby/object:Gem::Version
115
74
  version: '0'
116
- segments:
117
- - 0
118
- hash: 4557681205418875691
119
75
  requirements: []
120
76
  rubyforge_project:
121
- rubygems_version: 1.8.24
77
+ rubygems_version: 2.0.6
122
78
  signing_key:
123
- specification_version: 3
79
+ specification_version: 4
124
80
  summary: Get ssl information from domains
125
81
  test_files:
126
82
  - spec/lib/ssl_scanner_spec.rb