parent
4510cd158a
commit
018f2ba6f5
@ -0,0 +1,33 @@ |
||||
#!/usr/bin/env ruby |
||||
require 'httparty' |
||||
require 'nokogiri' |
||||
require 'nokogiri-pretty' |
||||
require 'open-uri' |
||||
|
||||
uas = Nokogiri::HTML open 'https://www.ssllabs.com/ssltest/clients.html' |
||||
uas = Hash[uas.css('#multiTable > tr > td:first > a').collect do |ua| |
||||
ua_url = ua.attr :href |
||||
ua = Nokogiri::HTML open "https://www.ssllabs.com/ssltest/#{ua_url}" |
||||
|
||||
name = ua.at_css('h1').text.sub('User Agent Capabilities:', '').strip |
||||
puts name |
||||
|
||||
reports = ua.css '.reportTable' |
||||
protocols = Hash[reports[0].css('tr').collect do |protocol| |
||||
protocol, support = protocol.css 'td' |
||||
next if protocol.attr(:class) == 'tableHead' |
||||
protocol = protocol.text.sub("\xC2\xA0 INSECURE", '').strip |
||||
support = support.text == 'Yes' |
||||
[protocol, support] |
||||
end.reject &:nil?] |
||||
|
||||
ciphers = Hash[reports[1].css('tr').collect do |cipher| |
||||
cipher, size = cipher.css 'td' |
||||
next if cipher.attr(:class) == 'tableHead' or size.nil? |
||||
cipher = /(.*) \(0x(.*)\).*/.match cipher.text |
||||
cipher = ["0x#{cipher[2].upcase.rjust(2, '0')}", cipher[1]] |
||||
end.reject &:nil?] |
||||
|
||||
[name, { protocols: protocols, ciphers: ciphers }] |
||||
end] |
||||
File.write 'config/user-agent.json', JSON.pretty_generate(uas, {indent: "\t"}) |
@ -0,0 +1,6 @@ |
||||
Rails.application.config.tap do |config| |
||||
config.openssl_ciphers = JSON.parse File.read 'config/openssl-ciphers.json' |
||||
config.openssl_ciphers.merge! config.openssl_ciphers.invert |
||||
|
||||
config.user_agents_ciphers = JSON.parse File.read 'config/user-agents-ciphers.json' |
||||
end |
@ -0,0 +1,104 @@ |
||||
{ |
||||
"0x04": "RC4-MD5", |
||||
"0x05": "RC4-SHA", |
||||
"0x09": "DES-CBC-SHA", |
||||
"0x0A": "DES-CBC3-SHA", |
||||
"0x0C": "DH-DSS-DES-CBC-SHA", |
||||
"0x0D": "DH-DSS-DES-CBC3-SHA", |
||||
"0x0F": "DH-RSA-DES-CBC-SHA", |
||||
"0x10": "DH-RSA-DES-CBC3-SHA", |
||||
"0x12": "EDH-DSS-DES-CBC-SHA", |
||||
"0x13": "EDH-DSS-DES-CBC3-SHA", |
||||
"0x15": "EDH-RSA-DES-CBC-SHA", |
||||
"0x16": "EDH-RSA-DES-CBC3-SHA", |
||||
"0x2F": "AES128-SHA", |
||||
"0x30": "DH-DSS-AES128-SHA", |
||||
"0x31": "DH-RSA-AES128-SHA", |
||||
"0x32": "DHE-DSS-AES128-SHA", |
||||
"0x33": "DHE-RSA-AES128-SHA", |
||||
"0x35": "AES256-SHA", |
||||
"0x36": "DH-DSS-AES256-SHA", |
||||
"0x37": "DH-RSA-AES256-SHA", |
||||
"0x38": "DHE-DSS-AES256-SHA", |
||||
"0x39": "DHE-RSA-AES256-SHA", |
||||
"0x3C": "AES128-SHA256", |
||||
"0x3D": "AES256-SHA256", |
||||
"0x3E": "DH-DSS-AES128-SHA256", |
||||
"0x3F": "DH-RSA-AES128-SHA256", |
||||
"0x40": "DHE-DSS-AES128-SHA256", |
||||
"0x41": "CAMELLIA128-SHA", |
||||
"0x42": "DH-DSS-CAMELLIA128-SHA", |
||||
"0x43": "DH-RSA-CAMELLIA128-SHA", |
||||
"0x44": "DHE-DSS-CAMELLIA128-SHA", |
||||
"0x45": "DHE-RSA-CAMELLIA128-SHA", |
||||
"0x67": "DHE-RSA-AES128-SHA256", |
||||
"0x68": "DH-DSS-AES256-SHA256", |
||||
"0x69": "DH-RSA-AES256-SHA256", |
||||
"0x6A": "DHE-DSS-AES256-SHA256", |
||||
"0x6B": "DHE-RSA-AES256-SHA256", |
||||
"0x84": "CAMELLIA256-SHA", |
||||
"0x85": "DH-DSS-CAMELLIA256-SHA", |
||||
"0x86": "DH-RSA-CAMELLIA256-SHA", |
||||
"0x87": "DHE-DSS-CAMELLIA256-SHA", |
||||
"0x88": "DHE-RSA-CAMELLIA256-SHA", |
||||
"0x8A": "PSK-RC4-SHA", |
||||
"0x8B": "PSK-3DES-EDE-CBC-SHA", |
||||
"0x8C": "PSK-AES128-CBC-SHA", |
||||
"0x8D": "PSK-AES256-CBC-SHA", |
||||
"0x96": "SEED-SHA", |
||||
"0x97": "DH-DSS-SEED-SHA", |
||||
"0x98": "DH-RSA-SEED-SHA", |
||||
"0x99": "DHE-DSS-SEED-SHA", |
||||
"0x9A": "DHE-RSA-SEED-SHA", |
||||
"0x9C": "AES128-GCM-SHA256", |
||||
"0x9D": "AES256-GCM-SHA384", |
||||
"0x9E": "DHE-RSA-AES128-GCM-SHA256", |
||||
"0x9F": "DHE-RSA-AES256-GCM-SHA384", |
||||
"0xA0": "DH-RSA-AES128-GCM-SHA256", |
||||
"0xA1": "DH-RSA-AES256-GCM-SHA384", |
||||
"0xA2": "DHE-DSS-AES128-GCM-SHA256", |
||||
"0xA3": "DHE-DSS-AES256-GCM-SHA384", |
||||
"0xA4": "DH-DSS-AES128-GCM-SHA256", |
||||
"0xA5": "DH-DSS-AES256-GCM-SHA384", |
||||
"0xC002": "ECDH-ECDSA-RC4-SHA", |
||||
"0xC003": "ECDH-ECDSA-DES-CBC3-SHA", |
||||
"0xC004": "ECDH-ECDSA-AES128-SHA", |
||||
"0xC005": "ECDH-ECDSA-AES256-SHA", |
||||
"0xC007": "ECDHE-ECDSA-RC4-SHA", |
||||
"0xC008": "ECDHE-ECDSA-DES-CBC3-SHA", |
||||
"0xC009": "ECDHE-ECDSA-AES128-SHA", |
||||
"0xC00A": "ECDHE-ECDSA-AES256-SHA", |
||||
"0xC00C": "ECDH-RSA-RC4-SHA", |
||||
"0xC00D": "ECDH-RSA-DES-CBC3-SHA", |
||||
"0xC00E": "ECDH-RSA-AES128-SHA", |
||||
"0xC00F": "ECDH-RSA-AES256-SHA", |
||||
"0xC011": "ECDHE-RSA-RC4-SHA", |
||||
"0xC012": "ECDHE-RSA-DES-CBC3-SHA", |
||||
"0xC013": "ECDHE-RSA-AES128-SHA", |
||||
"0xC014": "ECDHE-RSA-AES256-SHA", |
||||
"0xC01A": "SRP-3DES-EDE-CBC-SHA", |
||||
"0xC01B": "SRP-RSA-3DES-EDE-CBC-SHA", |
||||
"0xC01C": "SRP-DSS-3DES-EDE-CBC-SHA", |
||||
"0xC01D": "SRP-AES-128-CBC-SHA", |
||||
"0xC01E": "SRP-RSA-AES-128-CBC-SHA", |
||||
"0xC01F": "SRP-DSS-AES-128-CBC-SHA", |
||||
"0xC020": "SRP-AES-256-CBC-SHA", |
||||
"0xC021": "SRP-RSA-AES-256-CBC-SHA", |
||||
"0xC022": "SRP-DSS-AES-256-CBC-SHA", |
||||
"0xC023": "ECDHE-ECDSA-AES128-SHA256", |
||||
"0xC024": "ECDHE-ECDSA-AES256-SHA384", |
||||
"0xC025": "ECDH-ECDSA-AES128-SHA256", |
||||
"0xC026": "ECDH-ECDSA-AES256-SHA384", |
||||
"0xC027": "ECDHE-RSA-AES128-SHA256", |
||||
"0xC028": "ECDHE-RSA-AES256-SHA384", |
||||
"0xC029": "ECDH-RSA-AES128-SHA256", |
||||
"0xC02A": "ECDH-RSA-AES256-SHA384", |
||||
"0xC02B": "ECDHE-ECDSA-AES128-GCM-SHA256", |
||||
"0xC02C": "ECDHE-ECDSA-AES256-GCM-SHA384", |
||||
"0xC02D": "ECDH-ECDSA-AES128-GCM-SHA256", |
||||
"0xC02E": "ECDH-ECDSA-AES256-GCM-SHA384", |
||||
"0xC02F": "ECDHE-RSA-AES128-GCM-SHA256", |
||||
"0xC030": "ECDHE-RSA-AES256-GCM-SHA384", |
||||
"0xC031": "ECDH-RSA-AES128-GCM-SHA256", |
||||
"0xC032": "ECDH-RSA-AES256-GCM-SHA384" |
||||
} |
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue