ruby-sslyze 1.0.0 → 1.1.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 +4 -4
- data/.travis.yml +1 -1
- data/ChangeLog.md +9 -0
- data/README.md +4 -6
- data/Rakefile +1 -1
- data/lib/sslyze/task.rb +25 -20
- data/lib/sslyze/version.rb +1 -1
- data/lib/sslyze/xml.rb +3 -1
- data/lib/sslyze/xml/invalid_target.rb +25 -2
- data/ruby-sslyze.gemspec +1 -1
- data/spec/sslyze.xml +101 -109
- data/spec/xml/certinfo/ocsp_stapling/ocsp_response_spec.rb +1 -1
- data/spec/xml/invalid_target_spec.rb +19 -4
- data/spec/xml/target_spec.rb +1 -3
- data/spec/xml_spec.rb +0 -6
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 25b21046df9d3e4510c71640035f1767dbe0c3f9
|
4
|
+
data.tar.gz: dc0dbc7fcb2630e9bb5e6c197fea5fb01c5a5c7e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dfb62b940c461f7aec7174312d2ca590f85333fb946648929d1a5d15c925cb9ac89aae273a3f7b84d6f18b8e04fb09076aa3919e50060d8f1a01d742cb41341a
|
7
|
+
data.tar.gz: 28240232b1e5051e050b7e1945b4753d13ea1425de6f875eff3591daade88b0d0136f377cd6ff058ca81a1ef4caf830d384ca27ed7af56e8c386411828ac44ae
|
data/.travis.yml
CHANGED
data/ChangeLog.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
### 1.1.0 / 2018-03-12
|
2
|
+
|
3
|
+
* Require [sslyze] >= 1.4.0
|
4
|
+
* Added {SSLyze::XML::InvalidTarget#target}.
|
5
|
+
* Added {SSLyze::XML::InvalidTarget#port}.
|
6
|
+
* Added the `--update_trust_stores` option.
|
7
|
+
* Added the `--robot` option.
|
8
|
+
* Replaced the `--timeout` and `--nb_retries` options with `--slow_connection`.
|
9
|
+
|
1
10
|
### 1.0.0 / 2018-03-06
|
2
11
|
|
3
12
|
* Require [sslyze] >= 1.3.4.
|
data/README.md
CHANGED
@@ -16,7 +16,7 @@ A Ruby interface to [sslyze] python utility.
|
|
16
16
|
|
17
17
|
* Provides a Ruby interface to `sslyze.py`.
|
18
18
|
* Provides a Parser for consuming the sslyze XML output.
|
19
|
-
* Supports [sslyze] >= 1.
|
19
|
+
* Supports [sslyze] >= 1.4.0
|
20
20
|
|
21
21
|
## Examples
|
22
22
|
|
@@ -24,14 +24,13 @@ Analyze a domain:
|
|
24
24
|
|
25
25
|
require 'sslyze'
|
26
26
|
|
27
|
-
SSLyze::Program.analyze(targets: 'twitter.com', regular: true
|
27
|
+
SSLyze::Program.analyze(targets: 'twitter.com', regular: true)
|
28
28
|
|
29
29
|
Analyze multiple domains:
|
30
30
|
|
31
31
|
SSLyze::Program.analyze(
|
32
32
|
targets: ['twitter.com', 'github.com'],
|
33
|
-
regular: true
|
34
|
-
timeout: 5
|
33
|
+
regular: true
|
35
34
|
)
|
36
35
|
|
37
36
|
Output to XML:
|
@@ -39,7 +38,6 @@ Output to XML:
|
|
39
38
|
SSLyze::Program.analyze(
|
40
39
|
targets: 'twitter.com',
|
41
40
|
regular: true,
|
42
|
-
timeout: 5,
|
43
41
|
xml_out: 'path/to/xml'
|
44
42
|
)
|
45
43
|
|
@@ -51,7 +49,7 @@ Parsing sslyze XML output:
|
|
51
49
|
|
52
50
|
* [rprogram] ~> 0.3
|
53
51
|
* [nokogiri] ~> 1.8
|
54
|
-
* [sslyze] >= 1.
|
52
|
+
* [sslyze] >= 1.4.0
|
55
53
|
|
56
54
|
## Install
|
57
55
|
|
data/Rakefile
CHANGED
@@ -19,5 +19,5 @@ YARD::Rake::YardocTask.new
|
|
19
19
|
task :doc => :yard
|
20
20
|
|
21
21
|
file 'spec/sslyze.xml' do
|
22
|
-
sh 'sslyze --xml_out spec/sslyze.xml --regular --resum_rate --http_headers
|
22
|
+
sh 'sslyze --xml_out spec/sslyze.xml --regular --resum_rate --http_headers twitter.com github.com:443 www.yahoo.com:443 foo bar'
|
23
23
|
end
|
data/lib/sslyze/task.rb
CHANGED
@@ -11,6 +11,9 @@ module SSLyze
|
|
11
11
|
long_option flag: '--help'
|
12
12
|
long_option flag: '--regular'
|
13
13
|
|
14
|
+
# Trust stores options:
|
15
|
+
long_option flag: '--update_trust_stores'
|
16
|
+
|
14
17
|
# Client certificate support:
|
15
18
|
long_option flag: '--cert', equals: true
|
16
19
|
long_option flag: '--key', equals: true
|
@@ -24,38 +27,25 @@ module SSLyze
|
|
24
27
|
long_option flag: '--quiet'
|
25
28
|
|
26
29
|
# Connectivity options:
|
27
|
-
long_option flag: '--
|
28
|
-
long_option flag: '--nb_retries', equals: true
|
30
|
+
long_option flag: '--slow_connection'
|
29
31
|
long_option flag: '--https_tunnel', equals: true
|
30
32
|
long_option flag: '--starttls', equals: true
|
31
33
|
long_option flag: '--xmpp_to', equals: true
|
32
34
|
long_option flag: '--sni', equals: true
|
33
35
|
|
36
|
+
# SessionResumptionPlugin:
|
37
|
+
long_option flag: '--resum'
|
38
|
+
long_option flag: '--resum_rate'
|
39
|
+
|
34
40
|
# HeartbleedPlugin:
|
35
41
|
long_option flag: '--heartbleed'
|
36
42
|
|
37
|
-
# OpenSslCcsInjectionPlugin:
|
38
|
-
long_option flag: '--openssl_ccs'
|
39
|
-
|
40
|
-
# FallbackScsvPlugin:
|
41
|
-
long_option flag: '--fallback'
|
42
|
-
|
43
|
-
# SessionRenegotiationPlugin:
|
44
|
-
long_option flag: '--reneg'
|
45
|
-
|
46
43
|
# CertificateInfoPlugin:
|
47
44
|
long_option flag: '--certinfo'
|
48
45
|
long_option flag: '--ca_file', equals: true
|
49
46
|
|
50
|
-
#
|
51
|
-
long_option flag: '--
|
52
|
-
|
53
|
-
# SessionResumptionPlugin:
|
54
|
-
long_option flag: '--resum'
|
55
|
-
long_option flag: '--resum_rate'
|
56
|
-
|
57
|
-
# CompressionPlugin:
|
58
|
-
long_option flag: '--compression'
|
47
|
+
# SessionRenegotiationPlugin:
|
48
|
+
long_option flag: '--reneg'
|
59
49
|
|
60
50
|
# OpenSslCipherSuitesPlugin:
|
61
51
|
long_option flag: '--sslv2'
|
@@ -66,6 +56,21 @@ module SSLyze
|
|
66
56
|
long_option flag: '--http_get'
|
67
57
|
long_option flag: '--hide_rejected_ciphers'
|
68
58
|
|
59
|
+
# HttpHeadersPlugin:
|
60
|
+
long_option flag: '--http_headers'
|
61
|
+
|
62
|
+
# CompressionPlugin:
|
63
|
+
long_option flag: '--compression'
|
64
|
+
|
65
|
+
# RobotPlugin:
|
66
|
+
long_option flag: '--robot'
|
67
|
+
|
68
|
+
# FallbackScsvPlugin:
|
69
|
+
long_option flag: '--fallback'
|
70
|
+
|
71
|
+
# OpenSslCcsInjectionPlugin:
|
72
|
+
long_option flag: '--openssl_ccs'
|
73
|
+
|
69
74
|
non_option name: :targets, tailing: true
|
70
75
|
|
71
76
|
end
|
data/lib/sslyze/version.rb
CHANGED
data/lib/sslyze/xml.rb
CHANGED
@@ -67,7 +67,9 @@ module SSLyze
|
|
67
67
|
# @since 1.0.0
|
68
68
|
#
|
69
69
|
def network_timeout
|
70
|
-
@default_time ||= @doc.at_xpath('/document/results/@networkTimeout')
|
70
|
+
@default_time ||= if (attr = @doc.at_xpath('/document/results/@networkTimeout'))
|
71
|
+
attr.value.to_i
|
72
|
+
end
|
71
73
|
end
|
72
74
|
|
73
75
|
#
|
@@ -20,14 +20,37 @@ module SSLyze
|
|
20
20
|
end
|
21
21
|
|
22
22
|
#
|
23
|
-
# The
|
23
|
+
# The target name.
|
24
|
+
#
|
25
|
+
# @return [String]
|
26
|
+
#
|
27
|
+
# @since 1.1.0
|
28
|
+
#
|
29
|
+
def target
|
30
|
+
@target ||= @node.inner_text
|
31
|
+
end
|
32
|
+
|
33
|
+
#
|
34
|
+
# The host component of the target.
|
24
35
|
#
|
25
36
|
# @return [String]
|
26
37
|
#
|
27
38
|
def host
|
28
|
-
@host ||=
|
39
|
+
@host ||= target.split(':',2).first
|
29
40
|
end
|
30
41
|
|
42
|
+
#
|
43
|
+
# The port component of the target.
|
44
|
+
#
|
45
|
+
# @return [Integer]
|
46
|
+
#
|
47
|
+
# @since 1.1.0
|
48
|
+
#
|
49
|
+
def port
|
50
|
+
@port ||= target.split(':',2).last.to_i
|
51
|
+
end
|
52
|
+
|
53
|
+
|
31
54
|
end
|
32
55
|
end
|
33
56
|
end
|
data/ruby-sslyze.gemspec
CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
18
|
gem.require_paths = ['lib']
|
19
19
|
|
20
|
-
gem.requirements << 'sslyze >= 1.
|
20
|
+
gem.requirements << 'sslyze >= 1.4.0'
|
21
21
|
|
22
22
|
gem.add_dependency 'rprogram', '~> 0.3'
|
23
23
|
gem.add_dependency 'nokogiri', '~> 1.8'
|
data/spec/sslyze.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
2
|
-
<document SSLyzeVersion="1.
|
3
|
-
<results
|
4
|
-
<target host="github.com" ip="192.30.255.
|
2
|
+
<document SSLyzeVersion="1.4.0" SSLyzeWeb="https://github.com/nabla-c0d3/sslyze" title="SSLyze Scan Results">
|
3
|
+
<results totalScanTime="8.4713280201">
|
4
|
+
<target host="github.com" ip="192.30.255.112" port="443" tlsWrappedProtocol="https">
|
5
5
|
<certinfo title="Certificate Information">
|
6
6
|
<receivedCertificateChain containsAnchorCertificate="False" hasMustStapleExtension="False" includedSctsCount="3" isChainOrderValid="True" suppliedServerNameIndication="github.com">
|
7
7
|
<certificate hpkpSha256Pin="pL1+qb9HTMRZJmuC/bB/ZI9d302BYrrqiVuRyW+DGrU=" sha1Fingerprint="d79f076110b39293e349ac89845b0380c19e2f8b">
|
@@ -101,11 +101,11 @@ oVWNWlZopCJwqjyBcdmdqEU79OX2olHdx3ti6G8MdOu42vi/hw15UJGQmxg7kVkn
|
|
101
101
|
</receivedCertificateChain>
|
102
102
|
<certificateValidation>
|
103
103
|
<hostnameValidation certificateMatchesServerHostname="True" serverHostname="github.com"/>
|
104
|
-
<pathValidation trustStoreVersion="8.1.
|
104
|
+
<pathValidation trustStoreVersion="8.1.0_r9" usingTrustStore="Android" validationResult="ok"/>
|
105
105
|
<pathValidation trustStoreVersion="11" usingTrustStore="iOS" validationResult="ok"/>
|
106
106
|
<pathValidation trustStoreVersion="High Sierra" usingTrustStore="macOS" validationResult="ok"/>
|
107
107
|
<pathValidation isExtendedValidationCertificate="True" trustStoreVersion="2018-01-14" usingTrustStore="Mozilla" validationResult="ok"/>
|
108
|
-
<pathValidation trustStoreVersion="
|
108
|
+
<pathValidation trustStoreVersion="2018-02-09" usingTrustStore="Windows" validationResult="ok"/>
|
109
109
|
<verifiedCertificateChain hasMustStapleExtension="False" hasSha1SignedCertificate="False" includedSctsCount="3" successfulTrustStore="Windows" suppliedServerNameIndication="github.com">
|
110
110
|
<certificate hpkpSha256Pin="pL1+qb9HTMRZJmuC/bB/ZI9d302BYrrqiVuRyW+DGrU=" sha1Fingerprint="d79f076110b39293e349ac89845b0380c19e2f8b">
|
111
111
|
<asPEM>-----BEGIN CERTIFICATE-----
|
@@ -673,10 +673,10 @@ vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
|
|
673
673
|
</cipherSuite>
|
674
674
|
</preferredCipherSuite>
|
675
675
|
<acceptedCipherSuites>
|
676
|
-
<cipherSuite anonymous="False" connectionStatus="HTTP 200 OK" keySize="256" name="TLS_RSA_WITH_AES_256_CBC_SHA256"/>
|
677
676
|
<cipherSuite anonymous="False" connectionStatus="HTTP 200 OK" keySize="256" name="TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA">
|
678
677
|
<keyExchange A="0x00ffffffff00000001000000000000000000000000fffffffffffffffffffffffc" B="0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b" Cofactor="1" Field_Type="prime-field" Generator="0x046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5" GeneratorType="uncompressed" GroupSize="256" Order="0x00ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551" Prime="0x00ffffffff00000001000000000000000000000000ffffffffffffffffffffffff" Seed="0xc49d360886e704936a6678e1139d26b7819f7e90" Type="ECDH"/>
|
679
678
|
</cipherSuite>
|
679
|
+
<cipherSuite anonymous="False" connectionStatus="HTTP 200 OK" keySize="256" name="TLS_RSA_WITH_AES_256_CBC_SHA256"/>
|
680
680
|
<cipherSuite anonymous="False" connectionStatus="HTTP 200 OK" keySize="256" name="TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384">
|
681
681
|
<keyExchange A="0x00ffffffff00000001000000000000000000000000fffffffffffffffffffffffc" B="0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b" Cofactor="1" Field_Type="prime-field" Generator="0x046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5" GeneratorType="uncompressed" GroupSize="256" Order="0x00ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551" Prime="0x00ffffffff00000001000000000000000000000000ffffffffffffffffffffffff" Seed="0xc49d360886e704936a6678e1139d26b7819f7e90" Type="ECDH"/>
|
682
682
|
</cipherSuite>
|
@@ -692,8 +692,8 @@ vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
|
|
692
692
|
<keyExchange A="0x00ffffffff00000001000000000000000000000000fffffffffffffffffffffffc" B="0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b" Cofactor="1" Field_Type="prime-field" Generator="0x046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5" GeneratorType="uncompressed" GroupSize="256" Order="0x00ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551" Prime="0x00ffffffff00000001000000000000000000000000ffffffffffffffffffffffff" Seed="0xc49d360886e704936a6678e1139d26b7819f7e90" Type="ECDH"/>
|
693
693
|
</cipherSuite>
|
694
694
|
<cipherSuite anonymous="False" connectionStatus="HTTP 200 OK" keySize="128" name="TLS_RSA_WITH_AES_128_CBC_SHA"/>
|
695
|
-
<cipherSuite anonymous="False" connectionStatus="HTTP 200 OK" keySize="128" name="TLS_RSA_WITH_AES_128_GCM_SHA256"/>
|
696
695
|
<cipherSuite anonymous="False" connectionStatus="HTTP 200 OK" keySize="128" name="TLS_RSA_WITH_AES_128_CBC_SHA256"/>
|
696
|
+
<cipherSuite anonymous="False" connectionStatus="HTTP 200 OK" keySize="128" name="TLS_RSA_WITH_AES_128_GCM_SHA256"/>
|
697
697
|
<cipherSuite anonymous="False" connectionStatus="HTTP 200 OK" keySize="128" name="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256">
|
698
698
|
<keyExchange A="0x00ffffffff00000001000000000000000000000000fffffffffffffffffffffffc" B="0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b" Cofactor="1" Field_Type="prime-field" Generator="0x046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5" GeneratorType="uncompressed" GroupSize="256" Order="0x00ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551" Prime="0x00ffffffff00000001000000000000000000000000ffffffffffffffffffffffff" Seed="0xc49d360886e704936a6678e1139d26b7819f7e90" Type="ECDH"/>
|
699
699
|
</cipherSuite>
|
@@ -800,7 +800,7 @@ vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
|
|
800
800
|
<errors/>
|
801
801
|
</tlsv1_3>
|
802
802
|
</target>
|
803
|
-
<target host="www.yahoo.com" ip="206.190.39.
|
803
|
+
<target host="www.yahoo.com" ip="206.190.39.43" port="443" tlsWrappedProtocol="https">
|
804
804
|
<certinfo title="Certificate Information">
|
805
805
|
<receivedCertificateChain containsAnchorCertificate="False" hasMustStapleExtension="False" includedSctsCount="2" isChainOrderValid="True" suppliedServerNameIndication="www.yahoo.com">
|
806
806
|
<certificate hpkpSha256Pin="Zp964pqQpx94buKz5C8LxtmtQQWq2ZcWnLzrmt187go=" sha1Fingerprint="ae699d5ebddce6ed574111262f19bb18efbe73b0">
|
@@ -951,11 +951,11 @@ cPUeybQ=
|
|
951
951
|
</receivedCertificateChain>
|
952
952
|
<certificateValidation>
|
953
953
|
<hostnameValidation certificateMatchesServerHostname="True" serverHostname="www.yahoo.com"/>
|
954
|
-
<pathValidation trustStoreVersion="8.1.
|
954
|
+
<pathValidation trustStoreVersion="8.1.0_r9" usingTrustStore="Android" validationResult="ok"/>
|
955
955
|
<pathValidation trustStoreVersion="11" usingTrustStore="iOS" validationResult="ok"/>
|
956
956
|
<pathValidation trustStoreVersion="High Sierra" usingTrustStore="macOS" validationResult="ok"/>
|
957
957
|
<pathValidation trustStoreVersion="2018-01-14" usingTrustStore="Mozilla" validationResult="ok"/>
|
958
|
-
<pathValidation trustStoreVersion="
|
958
|
+
<pathValidation trustStoreVersion="2018-02-09" usingTrustStore="Windows" validationResult="ok"/>
|
959
959
|
<verifiedCertificateChain hasMustStapleExtension="False" hasSha1SignedCertificate="False" includedSctsCount="2" successfulTrustStore="Windows" suppliedServerNameIndication="www.yahoo.com">
|
960
960
|
<certificate hpkpSha256Pin="Zp964pqQpx94buKz5C8LxtmtQQWq2ZcWnLzrmt187go=" sha1Fingerprint="ae699d5ebddce6ed574111262f19bb18efbe73b0">
|
961
961
|
<asPEM>-----BEGIN CERTIFICATE-----
|
@@ -1140,7 +1140,7 @@ vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
|
|
1140
1140
|
<ocspStapling isSupported="True">
|
1141
1141
|
<ocspResponse isTrustedByMozillaCAStore="True" status="SUCCESSFUL">
|
1142
1142
|
<responderID>5168FF90AF0207753CCCD9656462A212B859723B</responderID>
|
1143
|
-
<producedAt>
|
1143
|
+
<producedAt>Mar 12 12:34:51 2018 GMT</producedAt>
|
1144
1144
|
</ocspResponse>
|
1145
1145
|
</ocspStapling>
|
1146
1146
|
</certinfo>
|
@@ -1184,7 +1184,7 @@ vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
|
|
1184
1184
|
<sessionResumptionWithTLSTickets isSupported="True"/>
|
1185
1185
|
</resum>
|
1186
1186
|
<resum_rate title="Resumption Rate">
|
1187
|
-
<sessionResumptionWithSessionIDs errors="0" failedAttempts="
|
1187
|
+
<sessionResumptionWithSessionIDs errors="0" failedAttempts="100" isSupported="False" successfulAttempts="0" totalAttempts="100"/>
|
1188
1188
|
</resum_rate>
|
1189
1189
|
<robot title="ROBOT Attack">
|
1190
1190
|
<robotAttack resultEnum="NOT_VULNERABLE_NO_ORACLE"/>
|
@@ -1745,59 +1745,55 @@ vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
|
|
1745
1745
|
<errors/>
|
1746
1746
|
</tlsv1_3>
|
1747
1747
|
</target>
|
1748
|
-
<target host="twitter.com" ip="104.244.42.
|
1748
|
+
<target host="twitter.com" ip="104.244.42.193" port="443" tlsWrappedProtocol="https">
|
1749
1749
|
<certinfo title="Certificate Information">
|
1750
|
-
<receivedCertificateChain containsAnchorCertificate="False" hasMustStapleExtension="False" includedSctsCount="
|
1751
|
-
<certificate hpkpSha256Pin="
|
1750
|
+
<receivedCertificateChain containsAnchorCertificate="False" hasMustStapleExtension="False" includedSctsCount="2" isChainOrderValid="True" suppliedServerNameIndication="twitter.com">
|
1751
|
+
<certificate hpkpSha256Pin="TfHW/l4khWKX6OE4Jra+u3onnsH4IfzWgHPJGE88rEo=" sha1Fingerprint="265c85f65b044dc830645c6fb9cfa7d28f28bc1b">
|
1752
1752
|
<asPEM>-----BEGIN CERTIFICATE-----
|
1753
|
-
|
1753
|
+
MIIG6DCCBdCgAwIBAgIQDmdXKeZyRvcaXeXGF6L5UTANBgkqhkiG9w0BAQsFADB1
|
1754
1754
|
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
1755
1755
|
d3cuZGlnaWNlcnQuY29tMTQwMgYDVQQDEytEaWdpQ2VydCBTSEEyIEV4dGVuZGVk
|
1756
|
-
|
1757
|
-
|
1758
|
-
|
1759
|
-
|
1760
|
-
|
1761
|
-
|
1762
|
-
|
1763
|
-
|
1764
|
-
|
1765
|
-
|
1766
|
-
|
1767
|
-
|
1768
|
-
|
1769
|
-
|
1770
|
-
|
1771
|
-
|
1772
|
-
|
1773
|
-
|
1774
|
-
|
1775
|
-
|
1776
|
-
|
1777
|
-
|
1778
|
-
|
1779
|
-
|
1780
|
-
|
1781
|
-
|
1782
|
-
|
1783
|
-
|
1784
|
-
|
1785
|
-
|
1786
|
-
|
1787
|
-
|
1788
|
-
|
1789
|
-
|
1790
|
-
OEJBzeL20fjYidN1Sr39q02e7kjJNCPVg8yTlRREpSXlsfwXWFOnACSBwpRzmD43
|
1791
|
-
bRKVH6zjIPiy2wmxXP6ibb3p0ITHnosxLsf3pWXjL/YeWqQq6mUDMRKmeCRR3k1E
|
1792
|
-
03kXQyxV4AD4hccLqP4K6m17dOkpWbKWNN+/wxWy/ApMuP0hNPgoZSLQBaMidNzh
|
1793
|
-
Y63izHj1KcOdLNg8VVCCEPoEX8IlbLMIY/YTfN5XAFjs
|
1756
|
+
IFZhbGlkYXRpb24gU2VydmVyIENBMB4XDTE4MDIyMzAwMDAwMFoXDTE5MDQwODEy
|
1757
|
+
MDAwMFowgeQxHTAbBgNVBA8MFFByaXZhdGUgT3JnYW5pemF0aW9uMRMwEQYLKwYB
|
1758
|
+
BAGCNzwCAQMTAlVTMRkwFwYLKwYBBAGCNzwCAQITCERlbGF3YXJlMRAwDgYDVQQF
|
1759
|
+
Ewc0MzM3NDQ2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQG
|
1760
|
+
A1UEBxMNU2FuIEZyYW5jaXNjbzEWMBQGA1UEChMNVHdpdHRlciwgSW5jLjEZMBcG
|
1761
|
+
A1UECxMQVHdpdHRlciBTZWN1cml0eTEUMBIGA1UEAxMLdHdpdHRlci5jb20wggEi
|
1762
|
+
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDRDIxB2Cj0SQtIOuWHjdzO5XKD
|
1763
|
+
lqUEFW69HmazatAWqN0Up9jel/8GMzfwMso650IRBBrhvJTPc3TdHn/JEscGAcnp
|
1764
|
+
IRrZkbTtpKMIJeNuWiACQosREt0Ur8gGLce4PJlt2BqMRJJ++SE8eV9Ryyl2Sgm+
|
1765
|
+
kqY65SML27IecrOkNmMuZKIUw/gLpt8msOnxy5JJWsjA3z9ND6FAx2DCbZ5GDIpt
|
1766
|
+
gK07FIV2z+cg1MStpf1TbgZ93pmmX9hnFk4F7VDS6Uf2K5YsPdsI0SwpW9HiG3TK
|
1767
|
+
9oz2GvsXffU6HGGM9Vcrpi5WhlaYHT1xCQ13caOduBxCkwhRZY2AFdyCR2MpAgMB
|
1768
|
+
AAGjggMCMIIC/jAfBgNVHSMEGDAWgBQ901Cl1qCt7vNKYApl0yHU+PjWDzAdBgNV
|
1769
|
+
HQ4EFgQUjI1wmILOVLL4dplPJjT+dTMjsUUwJwYDVR0RBCAwHoILdHdpdHRlci5j
|
1770
|
+
b22CD3d3dy50d2l0dGVyLmNvbTAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYI
|
1771
|
+
KwYBBQUHAwEGCCsGAQUFBwMCMHUGA1UdHwRuMGwwNKAyoDCGLmh0dHA6Ly9jcmwz
|
1772
|
+
LmRpZ2ljZXJ0LmNvbS9zaGEyLWV2LXNlcnZlci1nMi5jcmwwNKAyoDCGLmh0dHA6
|
1773
|
+
Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9zaGEyLWV2LXNlcnZlci1nMi5jcmwwSwYDVR0g
|
1774
|
+
BEQwQjA3BglghkgBhv1sAgEwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGln
|
1775
|
+
aWNlcnQuY29tL0NQUzAHBgVngQwBATCBiAYIKwYBBQUHAQEEfDB6MCQGCCsGAQUF
|
1776
|
+
BzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wUgYIKwYBBQUHMAKGRmh0dHA6
|
1777
|
+
Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFNIQTJFeHRlbmRlZFZhbGlk
|
1778
|
+
YXRpb25TZXJ2ZXJDQS5jcnQwDAYDVR0TAQH/BAIwADCCAQUGCisGAQQB1nkCBAIE
|
1779
|
+
gfYEgfMA8QB3AKS5CZC0GFgUh7sTosxncAo8NZgE+RvfuON3zQ7IDdwQAAABYcBN
|
1780
|
+
gy8AAAQDAEgwRgIhAOW65zPD/WuWN0kNEKx0LZBxTqLrQSkh6G7db+TT+FQcAiEA
|
1781
|
+
o9jTxePOzkuDoq+kO/FY8wKYp+/RWLXj2VbL8wKI/SkAdgBWFAaaL9fC7NP14b1E
|
1782
|
+
sj7HRna5vJkRXMDvlJhV1onQ3QAAAWHATYOxAAAEAwBHMEUCIQCUWpCOm+ejKxg1
|
1783
|
+
LyfPlxMEyTqmEyrajGx8PbTaBet8XwIgUKQXhoLMKb66Cvs4goSt3wWLDkX4WmFW
|
1784
|
+
DPcR9Mbq87gwDQYJKoZIhvcNAQELBQADggEBAJlV+Uez02kinJi7AHiYujgJ5j1k
|
1785
|
+
icieSrL+qspP6CMv6OCAa353vrVc95+iwDWimE9ovJZrANWpW2bNHClLb/R4pjlc
|
1786
|
+
yDpzXdCzrQzkqUXmIZZ95hU7SxC56fC3ybINy2e2YqOjUPxBoZjZjWBa20opMMxg
|
1787
|
+
ntG1ZqcZ9mZE7JJbOqfCyFbe5eyszpujATD3K24IVW5IXdzWd1udumbL5jUdYA56
|
1788
|
+
TjnyBCxlBjjLdQt2IWOiMATp+IlslwEpNScMl/gSLEX5b550/tn/5MaIY7cPNG38
|
1789
|
+
WNiLTkomw//7coTN6HdctcTSojOWQqjl8PLzcG+UxZd3vFe7Kf07VFBHav4=
|
1794
1790
|
-----END CERTIFICATE-----
|
1795
1791
|
</asPEM>
|
1796
|
-
<subject>businessCategory=Private Organization, jurisdictionCountryName=US, jurisdictionStateOrProvinceName=Delaware, serialNumber=4337446,
|
1792
|
+
<subject>businessCategory=Private Organization, jurisdictionCountryName=US, jurisdictionStateOrProvinceName=Delaware, serialNumber=4337446, countryName=US, stateOrProvinceName=California, localityName=San Francisco, organizationName=Twitter, Inc., organizationalUnitName=Twitter Security, commonName=twitter.com</subject>
|
1797
1793
|
<issuer>countryName=US, organizationName=DigiCert Inc, organizationalUnitName=www.digicert.com, commonName=DigiCert SHA2 Extended Validation Server CA</issuer>
|
1798
|
-
<serialNumber>
|
1799
|
-
<notBefore>
|
1800
|
-
<notAfter>
|
1794
|
+
<serialNumber>19145766406727795172801612582821755217</serialNumber>
|
1795
|
+
<notBefore>2018-02-23 00:00:00</notBefore>
|
1796
|
+
<notAfter>2019-04-08 12:00:00</notAfter>
|
1801
1797
|
<signatureAlgorithm>sha256</signatureAlgorithm>
|
1802
1798
|
<publicKey algorithm="RSA" exponent="65537" size="2048"/>
|
1803
1799
|
<subjectAlternativeName>
|
@@ -1846,62 +1842,58 @@ oVWNWlZopCJwqjyBcdmdqEU79OX2olHdx3ti6G8MdOu42vi/hw15UJGQmxg7kVkn
|
|
1846
1842
|
</receivedCertificateChain>
|
1847
1843
|
<certificateValidation>
|
1848
1844
|
<hostnameValidation certificateMatchesServerHostname="True" serverHostname="twitter.com"/>
|
1849
|
-
<pathValidation trustStoreVersion="8.1.
|
1845
|
+
<pathValidation trustStoreVersion="8.1.0_r9" usingTrustStore="Android" validationResult="ok"/>
|
1850
1846
|
<pathValidation trustStoreVersion="11" usingTrustStore="iOS" validationResult="ok"/>
|
1851
1847
|
<pathValidation trustStoreVersion="High Sierra" usingTrustStore="macOS" validationResult="ok"/>
|
1852
1848
|
<pathValidation isExtendedValidationCertificate="True" trustStoreVersion="2018-01-14" usingTrustStore="Mozilla" validationResult="ok"/>
|
1853
|
-
<pathValidation trustStoreVersion="
|
1854
|
-
<verifiedCertificateChain hasMustStapleExtension="False" hasSha1SignedCertificate="False" includedSctsCount="
|
1855
|
-
<certificate hpkpSha256Pin="
|
1849
|
+
<pathValidation trustStoreVersion="2018-02-09" usingTrustStore="Windows" validationResult="ok"/>
|
1850
|
+
<verifiedCertificateChain hasMustStapleExtension="False" hasSha1SignedCertificate="False" includedSctsCount="2" successfulTrustStore="Windows" suppliedServerNameIndication="twitter.com">
|
1851
|
+
<certificate hpkpSha256Pin="TfHW/l4khWKX6OE4Jra+u3onnsH4IfzWgHPJGE88rEo=" sha1Fingerprint="265c85f65b044dc830645c6fb9cfa7d28f28bc1b">
|
1856
1852
|
<asPEM>-----BEGIN CERTIFICATE-----
|
1857
|
-
|
1853
|
+
MIIG6DCCBdCgAwIBAgIQDmdXKeZyRvcaXeXGF6L5UTANBgkqhkiG9w0BAQsFADB1
|
1858
1854
|
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
1859
1855
|
d3cuZGlnaWNlcnQuY29tMTQwMgYDVQQDEytEaWdpQ2VydCBTSEEyIEV4dGVuZGVk
|
1860
|
-
|
1861
|
-
|
1862
|
-
|
1863
|
-
|
1864
|
-
|
1865
|
-
|
1866
|
-
|
1867
|
-
|
1868
|
-
|
1869
|
-
|
1870
|
-
|
1871
|
-
|
1872
|
-
|
1873
|
-
|
1874
|
-
|
1875
|
-
|
1876
|
-
|
1877
|
-
|
1878
|
-
|
1879
|
-
|
1880
|
-
|
1881
|
-
|
1882
|
-
|
1883
|
-
|
1884
|
-
|
1885
|
-
|
1886
|
-
|
1887
|
-
|
1888
|
-
|
1889
|
-
|
1890
|
-
|
1891
|
-
|
1892
|
-
|
1893
|
-
|
1894
|
-
OEJBzeL20fjYidN1Sr39q02e7kjJNCPVg8yTlRREpSXlsfwXWFOnACSBwpRzmD43
|
1895
|
-
bRKVH6zjIPiy2wmxXP6ibb3p0ITHnosxLsf3pWXjL/YeWqQq6mUDMRKmeCRR3k1E
|
1896
|
-
03kXQyxV4AD4hccLqP4K6m17dOkpWbKWNN+/wxWy/ApMuP0hNPgoZSLQBaMidNzh
|
1897
|
-
Y63izHj1KcOdLNg8VVCCEPoEX8IlbLMIY/YTfN5XAFjs
|
1856
|
+
IFZhbGlkYXRpb24gU2VydmVyIENBMB4XDTE4MDIyMzAwMDAwMFoXDTE5MDQwODEy
|
1857
|
+
MDAwMFowgeQxHTAbBgNVBA8MFFByaXZhdGUgT3JnYW5pemF0aW9uMRMwEQYLKwYB
|
1858
|
+
BAGCNzwCAQMTAlVTMRkwFwYLKwYBBAGCNzwCAQITCERlbGF3YXJlMRAwDgYDVQQF
|
1859
|
+
Ewc0MzM3NDQ2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQG
|
1860
|
+
A1UEBxMNU2FuIEZyYW5jaXNjbzEWMBQGA1UEChMNVHdpdHRlciwgSW5jLjEZMBcG
|
1861
|
+
A1UECxMQVHdpdHRlciBTZWN1cml0eTEUMBIGA1UEAxMLdHdpdHRlci5jb20wggEi
|
1862
|
+
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDRDIxB2Cj0SQtIOuWHjdzO5XKD
|
1863
|
+
lqUEFW69HmazatAWqN0Up9jel/8GMzfwMso650IRBBrhvJTPc3TdHn/JEscGAcnp
|
1864
|
+
IRrZkbTtpKMIJeNuWiACQosREt0Ur8gGLce4PJlt2BqMRJJ++SE8eV9Ryyl2Sgm+
|
1865
|
+
kqY65SML27IecrOkNmMuZKIUw/gLpt8msOnxy5JJWsjA3z9ND6FAx2DCbZ5GDIpt
|
1866
|
+
gK07FIV2z+cg1MStpf1TbgZ93pmmX9hnFk4F7VDS6Uf2K5YsPdsI0SwpW9HiG3TK
|
1867
|
+
9oz2GvsXffU6HGGM9Vcrpi5WhlaYHT1xCQ13caOduBxCkwhRZY2AFdyCR2MpAgMB
|
1868
|
+
AAGjggMCMIIC/jAfBgNVHSMEGDAWgBQ901Cl1qCt7vNKYApl0yHU+PjWDzAdBgNV
|
1869
|
+
HQ4EFgQUjI1wmILOVLL4dplPJjT+dTMjsUUwJwYDVR0RBCAwHoILdHdpdHRlci5j
|
1870
|
+
b22CD3d3dy50d2l0dGVyLmNvbTAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYI
|
1871
|
+
KwYBBQUHAwEGCCsGAQUFBwMCMHUGA1UdHwRuMGwwNKAyoDCGLmh0dHA6Ly9jcmwz
|
1872
|
+
LmRpZ2ljZXJ0LmNvbS9zaGEyLWV2LXNlcnZlci1nMi5jcmwwNKAyoDCGLmh0dHA6
|
1873
|
+
Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9zaGEyLWV2LXNlcnZlci1nMi5jcmwwSwYDVR0g
|
1874
|
+
BEQwQjA3BglghkgBhv1sAgEwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGln
|
1875
|
+
aWNlcnQuY29tL0NQUzAHBgVngQwBATCBiAYIKwYBBQUHAQEEfDB6MCQGCCsGAQUF
|
1876
|
+
BzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wUgYIKwYBBQUHMAKGRmh0dHA6
|
1877
|
+
Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFNIQTJFeHRlbmRlZFZhbGlk
|
1878
|
+
YXRpb25TZXJ2ZXJDQS5jcnQwDAYDVR0TAQH/BAIwADCCAQUGCisGAQQB1nkCBAIE
|
1879
|
+
gfYEgfMA8QB3AKS5CZC0GFgUh7sTosxncAo8NZgE+RvfuON3zQ7IDdwQAAABYcBN
|
1880
|
+
gy8AAAQDAEgwRgIhAOW65zPD/WuWN0kNEKx0LZBxTqLrQSkh6G7db+TT+FQcAiEA
|
1881
|
+
o9jTxePOzkuDoq+kO/FY8wKYp+/RWLXj2VbL8wKI/SkAdgBWFAaaL9fC7NP14b1E
|
1882
|
+
sj7HRna5vJkRXMDvlJhV1onQ3QAAAWHATYOxAAAEAwBHMEUCIQCUWpCOm+ejKxg1
|
1883
|
+
LyfPlxMEyTqmEyrajGx8PbTaBet8XwIgUKQXhoLMKb66Cvs4goSt3wWLDkX4WmFW
|
1884
|
+
DPcR9Mbq87gwDQYJKoZIhvcNAQELBQADggEBAJlV+Uez02kinJi7AHiYujgJ5j1k
|
1885
|
+
icieSrL+qspP6CMv6OCAa353vrVc95+iwDWimE9ovJZrANWpW2bNHClLb/R4pjlc
|
1886
|
+
yDpzXdCzrQzkqUXmIZZ95hU7SxC56fC3ybINy2e2YqOjUPxBoZjZjWBa20opMMxg
|
1887
|
+
ntG1ZqcZ9mZE7JJbOqfCyFbe5eyszpujATD3K24IVW5IXdzWd1udumbL5jUdYA56
|
1888
|
+
TjnyBCxlBjjLdQt2IWOiMATp+IlslwEpNScMl/gSLEX5b550/tn/5MaIY7cPNG38
|
1889
|
+
WNiLTkomw//7coTN6HdctcTSojOWQqjl8PLzcG+UxZd3vFe7Kf07VFBHav4=
|
1898
1890
|
-----END CERTIFICATE-----
|
1899
1891
|
</asPEM>
|
1900
|
-
<subject>businessCategory=Private Organization, jurisdictionCountryName=US, jurisdictionStateOrProvinceName=Delaware, serialNumber=4337446,
|
1892
|
+
<subject>businessCategory=Private Organization, jurisdictionCountryName=US, jurisdictionStateOrProvinceName=Delaware, serialNumber=4337446, countryName=US, stateOrProvinceName=California, localityName=San Francisco, organizationName=Twitter, Inc., organizationalUnitName=Twitter Security, commonName=twitter.com</subject>
|
1901
1893
|
<issuer>countryName=US, organizationName=DigiCert Inc, organizationalUnitName=www.digicert.com, commonName=DigiCert SHA2 Extended Validation Server CA</issuer>
|
1902
|
-
<serialNumber>
|
1903
|
-
<notBefore>
|
1904
|
-
<notAfter>
|
1894
|
+
<serialNumber>19145766406727795172801612582821755217</serialNumber>
|
1895
|
+
<notBefore>2018-02-23 00:00:00</notBefore>
|
1896
|
+
<notAfter>2019-04-08 12:00:00</notAfter>
|
1905
1897
|
<signatureAlgorithm>sha256</signatureAlgorithm>
|
1906
1898
|
<publicKey algorithm="RSA" exponent="65537" size="2048"/>
|
1907
1899
|
<subjectAlternativeName>
|
@@ -2451,8 +2443,8 @@ vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
|
|
2451
2443
|
<cipherSuite anonymous="False" connectionStatus="HTTP 200 OK" keySize="256" name="TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384">
|
2452
2444
|
<keyExchange A="0x00ffffffff00000001000000000000000000000000fffffffffffffffffffffffc" B="0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b" Cofactor="1" Field_Type="prime-field" Generator="0x046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5" GeneratorType="uncompressed" GroupSize="256" Order="0x00ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551" Prime="0x00ffffffff00000001000000000000000000000000ffffffffffffffffffffffff" Seed="0xc49d360886e704936a6678e1139d26b7819f7e90" Type="ECDH"/>
|
2453
2445
|
</cipherSuite>
|
2454
|
-
<cipherSuite anonymous="False" connectionStatus="HTTP 200 OK" keySize="256" name="TLS_RSA_WITH_AES_256_GCM_SHA384"/>
|
2455
2446
|
<cipherSuite anonymous="False" connectionStatus="HTTP 200 OK" keySize="256" name="TLS_RSA_WITH_AES_256_CBC_SHA"/>
|
2447
|
+
<cipherSuite anonymous="False" connectionStatus="HTTP 200 OK" keySize="256" name="TLS_RSA_WITH_AES_256_GCM_SHA384"/>
|
2456
2448
|
<cipherSuite anonymous="False" connectionStatus="HTTP 200 OK" keySize="128" name="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA">
|
2457
2449
|
<keyExchange A="0x00ffffffff00000001000000000000000000000000fffffffffffffffffffffffc" B="0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b" Cofactor="1" Field_Type="prime-field" Generator="0x046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5" GeneratorType="uncompressed" GroupSize="256" Order="0x00ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551" Prime="0x00ffffffff00000001000000000000000000000000ffffffffffffffffffffffff" Seed="0xc49d360886e704936a6678e1139d26b7819f7e90" Type="ECDH"/>
|
2458
2450
|
</cipherSuite>
|
@@ -2460,8 +2452,8 @@ vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
|
|
2460
2452
|
<keyExchange A="0x00ffffffff00000001000000000000000000000000fffffffffffffffffffffffc" B="0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b" Cofactor="1" Field_Type="prime-field" Generator="0x046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5" GeneratorType="uncompressed" GroupSize="256" Order="0x00ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551" Prime="0x00ffffffff00000001000000000000000000000000ffffffffffffffffffffffff" Seed="0xc49d360886e704936a6678e1139d26b7819f7e90" Type="ECDH"/>
|
2461
2453
|
</cipherSuite>
|
2462
2454
|
<cipherSuite anonymous="False" connectionStatus="HTTP 200 OK" keySize="128" name="TLS_RSA_WITH_AES_128_CBC_SHA"/>
|
2463
|
-
<cipherSuite anonymous="False" connectionStatus="HTTP 200 OK" keySize="128" name="TLS_RSA_WITH_AES_128_GCM_SHA256"/>
|
2464
2455
|
<cipherSuite anonymous="False" connectionStatus="HTTP 200 OK" keySize="128" name="TLS_RSA_WITH_AES_128_CBC_SHA256"/>
|
2456
|
+
<cipherSuite anonymous="False" connectionStatus="HTTP 200 OK" keySize="128" name="TLS_RSA_WITH_AES_128_GCM_SHA256"/>
|
2465
2457
|
<cipherSuite anonymous="False" connectionStatus="HTTP 200 OK" keySize="128" name="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256">
|
2466
2458
|
<keyExchange A="0x00ffffffff00000001000000000000000000000000fffffffffffffffffffffffc" B="0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b" Cofactor="1" Field_Type="prime-field" Generator="0x046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5" GeneratorType="uncompressed" GroupSize="256" Order="0x00ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551" Prime="0x00ffffffff00000001000000000000000000000000ffffffffffffffffffffffff" Seed="0xc49d360886e704936a6678e1139d26b7819f7e90" Type="ECDH"/>
|
2467
2459
|
</cipherSuite>
|
@@ -2572,7 +2564,7 @@ vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
|
|
2572
2564
|
</target>
|
2573
2565
|
</results>
|
2574
2566
|
<invalidTargets>
|
2575
|
-
<invalidTarget error="Could not resolve
|
2576
|
-
<invalidTarget error="Could not resolve
|
2567
|
+
<invalidTarget error="Could not resolve hostname">foo:443</invalidTarget>
|
2568
|
+
<invalidTarget error="Could not resolve hostname">bar:443</invalidTarget>
|
2577
2569
|
</invalidTargets>
|
2578
2570
|
</document>
|
@@ -50,7 +50,7 @@ describe SSLyze::XML::Certinfo::OCSPStapling::OCSPResponse do
|
|
50
50
|
end
|
51
51
|
|
52
52
|
describe "#produced_at" do
|
53
|
-
let(:expected_time) { '
|
53
|
+
let(:expected_time) { 'Mar 12 12:34:51 2018 GMT' }
|
54
54
|
|
55
55
|
let(:xpath) { "#{super()}[producedAt/text()='#{expected_time}']" }
|
56
56
|
|
@@ -5,19 +5,34 @@ require 'sslyze/xml/invalid_target'
|
|
5
5
|
describe SSLyze::XML::InvalidTarget do
|
6
6
|
include_examples "XML specs"
|
7
7
|
|
8
|
-
let(:
|
8
|
+
let(:host) { 'foo' }
|
9
|
+
let(:port) { 443 }
|
10
|
+
let(:target) { "#{host}:#{port}" }
|
11
|
+
let(:xpath) { "/document/invalidTargets/invalidTarget[text()='#{target}']" }
|
9
12
|
|
10
13
|
subject { described_class.new(xml.at(xpath)) }
|
11
14
|
|
15
|
+
describe "#target" do
|
16
|
+
it "must return the target text" do
|
17
|
+
expect(subject.target).to be == target
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
12
21
|
describe "#host" do
|
13
|
-
it "must
|
14
|
-
expect(subject.host).to be ==
|
22
|
+
it "must return the host component of the target" do
|
23
|
+
expect(subject.host).to be == host
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "#port" do
|
28
|
+
it "must return the port component of the target" do
|
29
|
+
expect(subject.port).to be port
|
15
30
|
end
|
16
31
|
end
|
17
32
|
|
18
33
|
describe "#error" do
|
19
34
|
it "must parse the ip attribute" do
|
20
|
-
expect(subject.error).to be == 'Could not resolve
|
35
|
+
expect(subject.error).to be == 'Could not resolve hostname'
|
21
36
|
end
|
22
37
|
end
|
23
38
|
end
|
data/spec/xml/target_spec.rb
CHANGED
@@ -6,6 +6,7 @@ describe SSLyze::XML::Target do
|
|
6
6
|
include_examples "XML specs"
|
7
7
|
|
8
8
|
let(:xpath) { '/document/results/target' }
|
9
|
+
let(:expected_ip) { '192.30.255.112' }
|
9
10
|
|
10
11
|
subject { described_class.new(xml.at(xpath)) }
|
11
12
|
|
@@ -20,8 +21,6 @@ describe SSLyze::XML::Target do
|
|
20
21
|
end
|
21
22
|
|
22
23
|
describe "#ip" do
|
23
|
-
let(:expected_ip) { '192.30.255.113' }
|
24
|
-
|
25
24
|
let(:xpath) { "#{super()}[@ip='#{expected_ip}']" }
|
26
25
|
|
27
26
|
it "must parse the ip attribute" do
|
@@ -30,7 +29,6 @@ describe SSLyze::XML::Target do
|
|
30
29
|
end
|
31
30
|
|
32
31
|
describe "#ipaddr" do
|
33
|
-
let(:expected_ip) { '192.30.255.113' }
|
34
32
|
let(:xpath) { "#{super()}[@ip='#{expected_ip}']" }
|
35
33
|
|
36
34
|
it "must parse the ip attribute" do
|
data/spec/xml_spec.rb
CHANGED
@@ -21,12 +21,6 @@ describe SSLyze::XML do
|
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
-
describe "#network_timeout" do
|
25
|
-
it "must parse the networkTimeout attribute" do
|
26
|
-
expect(subject.network_timeout).to be == 5
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
24
|
describe "#total_scan_time" do
|
31
25
|
it "must parse the totalScanTime attribute" do
|
32
26
|
expect(subject.total_scan_time).to be_kind_of(Float)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-sslyze
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hal Brodigan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03-
|
11
|
+
date: 2018-03-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rprogram
|
@@ -190,7 +190,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
190
190
|
- !ruby/object:Gem::Version
|
191
191
|
version: '0'
|
192
192
|
requirements:
|
193
|
-
- sslyze >= 1.
|
193
|
+
- sslyze >= 1.4.0
|
194
194
|
rubyforge_project:
|
195
195
|
rubygems_version: 2.6.14
|
196
196
|
signing_key:
|