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.
- checksums.yaml +15 -0
- data/README.md +6 -5
- data/lib/ssl_scanner.rb +16 -20
- data/lib/ssl_scanner/version.rb +1 -1
- data/spec/lib/ssl_scanner_spec.rb +8 -6
- data/spec/spec_helper.rb +1 -7
- data/ssl_scanner.gemspec +0 -3
- metadata +5 -49
checksums.yaml
ADDED
@@ -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
|
29
|
-
:issuer
|
30
|
-
:serial=>3098776753094407546654350892289265887,
|
31
|
-
:issued=>2012-03-15 00:00:00 UTC,
|
32
|
-
:
|
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
|
```
|
data/lib/ssl_scanner.rb
CHANGED
@@ -4,31 +4,27 @@ require 'net/https'
|
|
4
4
|
module SslScanner
|
5
5
|
|
6
6
|
def self.scan_domain(domain)
|
7
|
-
|
7
|
+
cert = scan(domain)
|
8
8
|
|
9
|
-
|
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
|
-
|
19
|
-
|
20
|
-
|
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
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
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
|
data/lib/ssl_scanner/version.rb
CHANGED
@@ -3,11 +3,13 @@ require 'spec_helper'
|
|
3
3
|
describe SslScanner do
|
4
4
|
|
5
5
|
it 'gets information from domain' do
|
6
|
-
|
7
|
-
|
8
|
-
|
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
|
-
|
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
|
data/spec/spec_helper.rb
CHANGED
@@ -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
|
data/ssl_scanner.gemspec
CHANGED
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.
|
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-
|
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:
|
77
|
+
rubygems_version: 2.0.6
|
122
78
|
signing_key:
|
123
|
-
specification_version:
|
79
|
+
specification_version: 4
|
124
80
|
summary: Get ssl information from domains
|
125
81
|
test_files:
|
126
82
|
- spec/lib/ssl_scanner_spec.rb
|