ssl_scanner 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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