Skip to content

Commit

Permalink
Explicitly validate against known SSL certificates
Browse files Browse the repository at this point in the history
  • Loading branch information
cysp committed Oct 28, 2013
1 parent d35a345 commit 4bd9cab
Show file tree
Hide file tree
Showing 3 changed files with 349 additions and 1 deletion.
7 changes: 6 additions & 1 deletion lib/itunes_validator/client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@ def initialize(options=nil)
@use_latest = (options[:use_latest] if options) || true
@return_latest_too = (options[:return_latest_too] if options) || true
@proxy = [options[:proxy_host], options[:proxy_port] || 8080] if (options && options[:proxy_host])
@cert_store = OpenSSL::X509::Store.new
@cert_store.set_default_paths
gem_share_path = File.expand_path('../../../share', __FILE__)
@cert_store.add_file(File.expand_path('chain.prod.pem', gem_share_path))
@cert_store.add_file(File.expand_path('chain.sandbox.pem', gem_share_path))
end

def validate(receipt_data)
Expand All @@ -30,7 +35,7 @@ def validate(receipt_data)
uri = URI(APPSTORE_VERIFY_URL_PRODUCTION)
begin
h = @proxy ? Net::HTTP::Proxy(*@proxy) : Net::HTTP
h.start(uri.host, uri.port, use_ssl: true) do |http|
h.start(uri.host, uri.port, use_ssl: true, cert_store: @cert_store) do |http|
req = Net::HTTP::Post.new(uri.request_uri, {'Accept' => 'application/json', 'Content-Type'=>'applications/json'})
req.body = post_body.to_json

Expand Down
172 changes: 172 additions & 0 deletions share/chain.prod.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
-----BEGIN CERTIFICATE-----
MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln
biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1
nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex
t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz
SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG
BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+
rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/
NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv
MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE
p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y
5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK
WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ
4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N
hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIOqzCCDZOgAwIBAgIQceL9iUj3whoexUlzhYY5tzANBgkqhkiG9w0BAQUFADCB
vjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2Ug
YXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjE4MDYGA1UEAxMv
VmVyaVNpZ24gQ2xhc3MgMyBFeHRlbmRlZCBWYWxpZGF0aW9uIFNTTCBTR0MgQ0Ew
HhcNMTMwOTI1MDAwMDAwWhcNMTUwOTI2MjM1OTU5WjCCARYxEzARBgsrBgEEAYI3
PAIBAxMCVVMxGzAZBgsrBgEEAYI3PAIBAhMKQ2FsaWZvcm5pYTEdMBsGA1UEDxMU
UHJpdmF0ZSBPcmdhbml6YXRpb24xETAPBgNVBAUTCEMwODA2NTkyMQswCQYDVQQG
EwJVUzEOMAwGA1UEERQFOTUwMTQxEzARBgNVBAgTCkNhbGlmb3JuaWExEjAQBgNV
BAcUCUN1cGVydGlubzEYMBYGA1UECRQPMSBJbmZpbml0ZSBMb29wMRMwEQYDVQQK
FApBcHBsZSBJbmMuMRkwFwYDVQQLFBBpVE1TIEVuZ2luZWVyaW5nMSAwHgYDVQQD
FBdwMi1idXkuaXR1bmVzLmFwcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBANrPC7XABIGUW1D8nSMLJpzUH7/jQyb9DVlFCBnSJIKJ72DLJ2aA
Oe2i4zC4JSOF8MvR8PpTppd2pD4Oepi1UGlg2m6vpauXsJgX/tjC/bCkAGu+FnLb
Ved+VG47v9Mz87WJcXk+eIIHYz3D6Z7BrKSMoqZNj9paqePGdiclB0HZLWcDyNaG
Dlidph44gnkoB/zeyaWYSSbVQqmCZH8GymO2ZqagJIQ0m5Yxxb84HmdTUXOBdXai
LY3Kc7c1WzHA0AqgLSWipMuy4cbSpRlqWnBgmsTKZ3vlM5ih+eBta0nSqZVV7fh7
+ukeBumGVo7JMbR6sdfTCjqGuPl/bfyPVcUCAwEAAaOCCkgwggpEMIIIvQYDVR0R
BIIItDCCCLCCGHNhbmRib3guaXR1bmVzLmFwcGxlLmNvbYIUYnV5Lml0dW5lcy5h
cHBsZS5jb22CF3AxLWJ1eS5pdHVuZXMuYXBwbGUuY29tghdwMi1idXkuaXR1bmVz
LmFwcGxlLmNvbYIXcDMtYnV5Lml0dW5lcy5hcHBsZS5jb22CF3A0LWJ1eS5pdHVu
ZXMuYXBwbGUuY29tghdwNS1idXkuaXR1bmVzLmFwcGxlLmNvbYIXcDYtYnV5Lml0
dW5lcy5hcHBsZS5jb22CF3A3LWJ1eS5pdHVuZXMuYXBwbGUuY29tghdwOC1idXku
aXR1bmVzLmFwcGxlLmNvbYIXcDktYnV5Lml0dW5lcy5hcHBsZS5jb22CGHAxMC1i
dXkuaXR1bmVzLmFwcGxlLmNvbYIYcDExLWJ1eS5pdHVuZXMuYXBwbGUuY29tghhw
MTItYnV5Lml0dW5lcy5hcHBsZS5jb22CGHAxMy1idXkuaXR1bmVzLmFwcGxlLmNv
bYIYcDE0LWJ1eS5pdHVuZXMuYXBwbGUuY29tghhwMTUtYnV5Lml0dW5lcy5hcHBs
ZS5jb22CGHAxNi1idXkuaXR1bmVzLmFwcGxlLmNvbYIYcDE3LWJ1eS5pdHVuZXMu
YXBwbGUuY29tghhwMTgtYnV5Lml0dW5lcy5hcHBsZS5jb22CGHAxOS1idXkuaXR1
bmVzLmFwcGxlLmNvbYIYcDIwLWJ1eS5pdHVuZXMuYXBwbGUuY29tghhwMjEtYnV5
Lml0dW5lcy5hcHBsZS5jb22CGHAyMi1idXkuaXR1bmVzLmFwcGxlLmNvbYIYcDIz
LWJ1eS5pdHVuZXMuYXBwbGUuY29tghhwMjQtYnV5Lml0dW5lcy5hcHBsZS5jb22C
GHAyNS1idXkuaXR1bmVzLmFwcGxlLmNvbYIYcDI2LWJ1eS5pdHVuZXMuYXBwbGUu
Y29tghhwMjctYnV5Lml0dW5lcy5hcHBsZS5jb22CGHAyOC1idXkuaXR1bmVzLmFw
cGxlLmNvbYIYcDI5LWJ1eS5pdHVuZXMuYXBwbGUuY29tghhwMzAtYnV5Lml0dW5l
cy5hcHBsZS5jb22CGHAzMS1idXkuaXR1bmVzLmFwcGxlLmNvbYIYcDMyLWJ1eS5p
dHVuZXMuYXBwbGUuY29tghhwMzMtYnV5Lml0dW5lcy5hcHBsZS5jb22CGHAzNC1i
dXkuaXR1bmVzLmFwcGxlLmNvbYIYcDM1LWJ1eS5pdHVuZXMuYXBwbGUuY29tghhw
MzYtYnV5Lml0dW5lcy5hcHBsZS5jb22CGHAzNy1idXkuaXR1bmVzLmFwcGxlLmNv
bYIYcDM4LWJ1eS5pdHVuZXMuYXBwbGUuY29tghhwMzktYnV5Lml0dW5lcy5hcHBs
ZS5jb22CGHA0MC1idXkuaXR1bmVzLmFwcGxlLmNvbYIYcDQxLWJ1eS5pdHVuZXMu
YXBwbGUuY29tghhwNDItYnV5Lml0dW5lcy5hcHBsZS5jb22CGHA0My1idXkuaXR1
bmVzLmFwcGxlLmNvbYIYcDQ0LWJ1eS5pdHVuZXMuYXBwbGUuY29tghhwNDUtYnV5
Lml0dW5lcy5hcHBsZS5jb22CGHA0Ni1idXkuaXR1bmVzLmFwcGxlLmNvbYIYcDQ3
LWJ1eS5pdHVuZXMuYXBwbGUuY29tghhwNDgtYnV5Lml0dW5lcy5hcHBsZS5jb22C
GHA0OS1idXkuaXR1bmVzLmFwcGxlLmNvbYIYcDUwLWJ1eS5pdHVuZXMuYXBwbGUu
Y29tghhwNTEtYnV5Lml0dW5lcy5hcHBsZS5jb22CGHA1Mi1idXkuaXR1bmVzLmFw
cGxlLmNvbYIYcDUzLWJ1eS5pdHVuZXMuYXBwbGUuY29tghhwNTQtYnV5Lml0dW5l
cy5hcHBsZS5jb22CGHA1NS1idXkuaXR1bmVzLmFwcGxlLmNvbYIYcDU2LWJ1eS5p
dHVuZXMuYXBwbGUuY29tghhwNTctYnV5Lml0dW5lcy5hcHBsZS5jb22CGHA1OC1i
dXkuaXR1bmVzLmFwcGxlLmNvbYIYcDU5LWJ1eS5pdHVuZXMuYXBwbGUuY29tghhw
NjAtYnV5Lml0dW5lcy5hcHBsZS5jb22CGHA2MS1idXkuaXR1bmVzLmFwcGxlLmNv
bYIYcDYyLWJ1eS5pdHVuZXMuYXBwbGUuY29tghhwNjMtYnV5Lml0dW5lcy5hcHBs
ZS5jb22CGHA2NC1idXkuaXR1bmVzLmFwcGxlLmNvbYIYcDY1LWJ1eS5pdHVuZXMu
YXBwbGUuY29tghhwNjYtYnV5Lml0dW5lcy5hcHBsZS5jb22CGHA2Ny1idXkuaXR1
bmVzLmFwcGxlLmNvbYIYcDY4LWJ1eS5pdHVuZXMuYXBwbGUuY29tghhwNjktYnV5
Lml0dW5lcy5hcHBsZS5jb22CGHA3MC1idXkuaXR1bmVzLmFwcGxlLmNvbYIYcDcx
LWJ1eS5pdHVuZXMuYXBwbGUuY29tghhwNzItYnV5Lml0dW5lcy5hcHBsZS5jb22C
GHA3My1idXkuaXR1bmVzLmFwcGxlLmNvbYIYcDc0LWJ1eS5pdHVuZXMuYXBwbGUu
Y29tghhwNzUtYnV5Lml0dW5lcy5hcHBsZS5jb22CGHA3Ni1idXkuaXR1bmVzLmFw
cGxlLmNvbYIYcDc3LWJ1eS5pdHVuZXMuYXBwbGUuY29tghhwNzgtYnV5Lml0dW5l
cy5hcHBsZS5jb22CGHA3OS1idXkuaXR1bmVzLmFwcGxlLmNvbYIYcDgwLWJ1eS5p
dHVuZXMuYXBwbGUuY29tghlwMTAwLWJ1eS5pdHVuZXMuYXBwbGUuY29tgh1wMTAw
LXNhbmRib3guaXR1bmVzLmFwcGxlLmNvbYIUdnBwLml0dW5lcy5hcHBsZS5jb22C
F3ZvbHVtZS5pdHVuZXMuYXBwbGUuY29tMAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQD
AgWgMCgGA1UdJQQhMB8GCCsGAQUFBwMBBggrBgEFBQcDAgYJYIZIAYb4QgQBMEQG
A1UdIAQ9MDswOQYLYIZIAYb4RQEHFwYwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93
d3cudmVyaXNpZ24uY29tL2NwczAdBgNVHQ4EFgQUpzALnxAz6pDamT2AzrWrFT5g
I7AwHwYDVR0jBBgwFoAUTkPIHXbvN1N6T/JYb5TzOOLVvd8wPgYDVR0fBDcwNTAz
oDGgL4YtaHR0cDovL0VWSW50bC1jcmwudmVyaXNpZ24uY29tL0VWSW50bDIwMDYu
Y3JsMHYGCCsGAQUFBwEBBGowaDArBggrBgEFBQcwAYYfaHR0cDovL0VWSW50bC1v
Y3NwLnZlcmlzaWduLmNvbTA5BggrBgEFBQcwAoYtaHR0cDovL0VWSW50bC1haWEu
dmVyaXNpZ24uY29tL0VWSW50bDIwMDYuY2VyMA0GCSqGSIb3DQEBBQUAA4IBAQAE
QKmBmw3W9pMLxvUDjrwRnbwRKh/XOh1vIhuMVskkErfBXnIyYC+u0SuL2lLGcwJv
1c1eXrm+VbiLipjsPhOpdrqIYKKeC6wFaZIA65gPCgwulLs2viWggrMOry29jNMT
CIqgcCSWIxqo2sQw4GfQYuJooUHIPfPMNvwsgar1xSXBxSwBz3IKemk3Ea1Yiyop
rkxUjmxcC5SDV53IYC08ZuAgeBKieZSDG8I6Ft+G+hRWslTzvod7tW2TMEmHDuGI
YC/HiXnNMirOaIExZNd5rv5wKaSFhZmVwQJvH9qlV9KJ3UHr5xtYsXl77cbzqga3
WL4EyqAziuwVhjvxyARf
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGHjCCBQagAwIBAgIQLEjdkw31WY75PJlUemDtQzANBgkqhkiG9w0BAQUFADCB
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMTYxMTA3MjM1OTU5WjCBvjEL
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQg
aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjE4MDYGA1UEAxMvVmVy
aVNpZ24gQ2xhc3MgMyBFeHRlbmRlZCBWYWxpZGF0aW9uIFNTTCBTR0MgQ0EwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9Voi6iDRkZM/NyrDu5xlzxXLZ
u0W8taj/g74cA9vtibcuEBolvFXKQaGfC88ZXnC5XjlLnjEcX4euKqqoK6IbOxAj
XxOx3QiMThTag4HjtYzjaO0kZ85Wtqybc5ZE24qMs9bwcZOO23FUSutzWWqPcFEs
A5+X0cwRerxiDZUqyRx1V+n1x+q6hDXLx4VafuRN4RGXfQ4gNEXb8aIJ6+s9nriW
Q140SwglHkMaotm3igE0PcP45a9PjP/NZfAjTsWXs1zakByChQ0GDcEitnsopAPD
TFPRWLxyvAg5/KB2qKjpS26IPeOzMSWMcylIDjJ5Bu09Q/T25On8fb6OCNUfAgMB
AAGjggIIMIICBDAdBgNVHQ4EFgQUTkPIHXbvN1N6T/JYb5TzOOLVvd8wEgYDVR0T
AQH/BAgwBgEB/wIBADA9BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYc
aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL2NwczA9BgNVHR8ENjA0MDKgMKAuhixo
dHRwOi8vRVZTZWN1cmUtY3JsLnZlcmlzaWduLmNvbS9wY2EzLWc1LmNybDAOBgNV
HQ8BAf8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgEGMG0GCCsGAQUFBwEMBGEwX6Fd
oFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrU
SBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMCkG
A1UdEQQiMCCkHjAcMRowGAYDVQQDExFDbGFzczNDQTIwNDgtMS00ODAfBgNVHSME
GDAWgBR/02Wnwt3su/AwCfNDOfoCrzMxMzA9BggrBgEFBQcBAQQxMC8wLQYIKwYB
BQUHMAGGIWh0dHA6Ly9FVlNlY3VyZS1vY3NwLnZlcmlzaWduLmNvbTA0BgNVHSUE
LTArBglghkgBhvhCBAEGCmCGSAGG+EUBCAEGCCsGAQUFBwMBBggrBgEFBQcDAjAN
BgkqhkiG9w0BAQUFAAOCAQEAJ3SmNOodneFT1hydDKdbTKln8vAytwEP+0IYON7k
7knIE8kL7ATDQHEYcnZDAiNdq3vISBQayHsd/PYKnzah0glzcWaWdVE0v5kwUWed
VLcmRaxzCCOGJplx9I7X6jmbBgkjv2LdqMS2faSJBz7zba5AWVB5lzc9Mnh9smNL
+eoIaQ4T7ejPu6wFhsoiz4hiXTwiSdhj1SSmve9c48wgOyLq/ETGqOUf4YbNDE2P
k1PZf+6hCKezMJZJcG6jbD3QY+8lZmPMqrcYF07qcHb2ukKmgDcJTp9miC5rM2bI
wHGkQeta4/wULkuI/a5uW2XpJ+S/5LAjwbJ9W2Il1z4Q1A==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIE0DCCBDmgAwIBAgIQJQzo4DBhLp8rifcFTXz4/TANBgkqhkiG9w0BAQUFADBf
MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT
LkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
HhcNMDYxMTA4MDAwMDAwWhcNMjExMTA3MjM1OTU5WjCByjELMAkGA1UEBhMCVVMx
FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
dCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZv
ciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAz
IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8
RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbext0uz/o9+B1fs70Pb
ZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhDY2pSS9KP6HBR
TdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNH
iDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMB
AAGjggGbMIIBlzAPBgNVHRMBAf8EBTADAQH/MDEGA1UdHwQqMCgwJqAkoCKGIGh0
dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3JsMA4GA1UdDwEB/wQEAwIBBjA9
BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVy
aXNpZ24uY29tL2NwczAdBgNVHQ4EFgQUf9Nlp8Ld7LvwMAnzQzn6Aq8zMTMwbQYI
KwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQU
j+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24uY29t
L3ZzbG9nby5naWYwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v
b2NzcC52ZXJpc2lnbi5jb20wPgYDVR0lBDcwNQYIKwYBBQUHAwEGCCsGAQUFBwMC
BggrBgEFBQcDAwYJYIZIAYb4QgQBBgpghkgBhvhFAQgBMA0GCSqGSIb3DQEBBQUA
A4GBABMC3fjohgDyWvj4IAxZiGIHzs73Tvm7WaGY5eE43U68ZhjTresY8g3JbT5K
lCDDPLq9ZVTGr0SzEK0saz6r1we2uIFjxfleLuUqZ87NMwwq14lWAyMfs77oOghZ
tOxFNfeKW/9mz1Cvxm1XjRl4t7mi0VfqH5pLr7rJjhJ+xr3/
-----END CERTIFICATE-----

0 comments on commit 4bd9cab

Please sign in to comment.