ruby-sslyze 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|