jruby-openssl 0.5.2 → 0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. data/History.txt +27 -0
  2. data/Manifest.txt +100 -0
  3. data/Rakefile +71 -0
  4. data/lib/jopenssl.jar +0 -0
  5. data/lib/jopenssl/version.rb +1 -1
  6. data/lib/openssl/bn.rb +1 -3
  7. data/lib/openssl/cipher.rb +15 -17
  8. data/lib/openssl/digest.rb +1 -3
  9. data/test/cert_with_ec_pk.cer +27 -0
  10. data/test/fixture/ca_path/72fa7371.0 +19 -0
  11. data/test/fixture/ca_path/verisign.pem +19 -0
  12. data/test/fixture/common.pem +48 -0
  13. data/test/fixture/max.pem +29 -0
  14. data/test/fixture/purpose/b70a5bc1.0 +24 -0
  15. data/test/fixture/purpose/ca/PASSWD_OF_CA_KEY_IS_1234 +0 -0
  16. data/test/fixture/purpose/ca/ca_config.rb +37 -0
  17. data/test/fixture/purpose/ca/cacert.pem +24 -0
  18. data/test/fixture/purpose/ca/newcerts/2_cert.pem +19 -0
  19. data/test/fixture/purpose/ca/newcerts/3_cert.pem +19 -0
  20. data/test/fixture/purpose/ca/private/cakeypair.pem +30 -0
  21. data/test/fixture/purpose/ca/serial +1 -0
  22. data/test/fixture/purpose/cacert.pem +24 -0
  23. data/test/fixture/purpose/scripts/gen_cert.rb +127 -0
  24. data/test/fixture/purpose/scripts/gen_csr.rb +50 -0
  25. data/test/fixture/purpose/scripts/init_ca.rb +66 -0
  26. data/test/fixture/purpose/sslclient.pem +19 -0
  27. data/test/fixture/purpose/sslclient/csr.pem +10 -0
  28. data/test/fixture/purpose/sslclient/keypair.pem +15 -0
  29. data/test/fixture/purpose/sslclient/sslclient.pem +19 -0
  30. data/test/fixture/purpose/sslserver.pem +19 -0
  31. data/test/fixture/purpose/sslserver/csr.pem +10 -0
  32. data/test/fixture/purpose/sslserver/keypair.pem +15 -0
  33. data/test/fixture/purpose/sslserver/sslserver.pem +19 -0
  34. data/test/fixture/verisign.pem +19 -0
  35. data/test/fixture/verisign_c3.pem +14 -0
  36. data/test/openssl/test_cipher.rb +22 -0
  37. data/test/openssl/test_pkcs7.rb +1 -0
  38. data/test/openssl/test_ssl.rb +2 -0
  39. data/test/openssl/test_x509ext.rb +21 -0
  40. data/test/openssl/test_x509name.rb +16 -0
  41. data/test/test_cipher.rb +20 -6
  42. data/test/test_integration.rb +43 -4
  43. data/test/test_parse_certificate.rb +20 -0
  44. data/test/test_x509store.rb +155 -0
  45. metadata +37 -3
@@ -1,3 +1,30 @@
1
+ == 0.6
2
+
3
+ - This is a recommended upgrade to jruby-openssl. A security problem
4
+ involving peer certificate verification was found where failed
5
+ verification silently did nothing, making affected applications
6
+ vulnerable to attackers. Attackers could lead a client application
7
+ to believe that a secure connection to a rogue SSL server is
8
+ legitimate. Attackers could also penetrate client-validated SSL
9
+ server applications with a dummy certificate. Your application would
10
+ be vulnerable if you're using the 'net/https' library with
11
+ OpenSSL::SSL::VERIFY_PEER mode and any version of jruby-openssl
12
+ prior to 0.6. Thanks to NaHi (NAKAMURA Hiroshi) for finding the
13
+ problem and providing the fix. See
14
+ http://www.jruby.org/2009/12/07/vulnerability-in-jruby-openssl.html
15
+ for details.
16
+ - This release addresses CVE-2009-4123 which was reserved for the
17
+ above vulnerability.
18
+ - Many fixes from NaHi, including issues related to certificate
19
+ verification and certificate store purpose verification.
20
+ - implement OpenSSL::X509::Store#set_default_paths
21
+ - MRI compat. fix: OpenSSL::X509::Store#add_file
22
+ - Fix nsCertType handling.
23
+ - Fix Cipher#key_len for DES-EDE3: 16 should be 24.
24
+ - Modified test expectations around Cipher#final.
25
+ - Public keys are lazily instantiated when the
26
+ X509::Certificate#public_key method is called (Dave Garcia)
27
+
1
28
  == 0.5.2
2
29
 
3
30
  * Multiple bugs fixed:
@@ -0,0 +1,100 @@
1
+ Rakefile
2
+ History.txt
3
+ Manifest.txt
4
+ README.txt
5
+ License.txt
6
+ lib/jopenssl.jar
7
+ lib/bcmail-jdk14-139.jar
8
+ lib/bcprov-jdk14-139.jar
9
+ lib/jopenssl
10
+ lib/jopenssl.jar
11
+ lib/openssl
12
+ lib/openssl.rb
13
+ lib/jopenssl/version.rb
14
+ lib/openssl/bn.rb
15
+ lib/openssl/buffering.rb
16
+ lib/openssl/cipher.rb
17
+ lib/openssl/digest.rb
18
+ lib/openssl/dummy.rb
19
+ lib/openssl/dummyssl.rb
20
+ lib/openssl/ssl.rb
21
+ lib/openssl/x509.rb
22
+ test/cert_with_ec_pk.cer
23
+ test/fixture
24
+ test/openssl
25
+ test/pkcs7_mime_enveloped.message
26
+ test/pkcs7_mime_signed.message
27
+ test/pkcs7_multipart_signed.message
28
+ test/ref
29
+ test/test_cipher.rb
30
+ test/test_integration.rb
31
+ test/test_java.rb
32
+ test/test_java_attribute.rb
33
+ test/test_java_bio.rb
34
+ test/test_java_mime.rb
35
+ test/test_java_pkcs7.rb
36
+ test/test_java_smime.rb
37
+ test/test_openssl.rb
38
+ test/test_openssl_x509.rb
39
+ test/test_parse_certificate.rb
40
+ test/test_pkey.rb
41
+ test/test_x509store.rb
42
+ test/ut_eof.rb
43
+ test/fixture/ca_path
44
+ test/fixture/cacert.pem
45
+ test/fixture/cert_localhost.pem
46
+ test/fixture/common.pem
47
+ test/fixture/localhost_keypair.pem
48
+ test/fixture/max.pem
49
+ test/fixture/purpose
50
+ test/fixture/verisign.pem
51
+ test/fixture/verisign_c3.pem
52
+ test/fixture/ca_path/72fa7371.0
53
+ test/fixture/ca_path/verisign.pem
54
+ test/fixture/purpose/b70a5bc1.0
55
+ test/fixture/purpose/ca
56
+ test/fixture/purpose/cacert.pem
57
+ test/fixture/purpose/scripts
58
+ test/fixture/purpose/sslclient
59
+ test/fixture/purpose/sslclient.pem
60
+ test/fixture/purpose/sslserver
61
+ test/fixture/purpose/sslserver.pem
62
+ test/fixture/purpose/ca/ca_config.rb
63
+ test/fixture/purpose/ca/cacert.pem
64
+ test/fixture/purpose/ca/newcerts
65
+ test/fixture/purpose/ca/PASSWD_OF_CA_KEY_IS_1234
66
+ test/fixture/purpose/ca/private
67
+ test/fixture/purpose/ca/serial
68
+ test/fixture/purpose/ca/newcerts/2_cert.pem
69
+ test/fixture/purpose/ca/newcerts/3_cert.pem
70
+ test/fixture/purpose/ca/private/cakeypair.pem
71
+ test/fixture/purpose/scripts/gen_cert.rb
72
+ test/fixture/purpose/scripts/gen_csr.rb
73
+ test/fixture/purpose/scripts/init_ca.rb
74
+ test/fixture/purpose/sslclient/csr.pem
75
+ test/fixture/purpose/sslclient/keypair.pem
76
+ test/fixture/purpose/sslclient/sslclient.pem
77
+ test/fixture/purpose/sslserver/csr.pem
78
+ test/fixture/purpose/sslserver/keypair.pem
79
+ test/fixture/purpose/sslserver/sslserver.pem
80
+ test/openssl/ssl_server.rb
81
+ test/openssl/test_asn1.rb
82
+ test/openssl/test_cipher.rb
83
+ test/openssl/test_digest.rb
84
+ test/openssl/test_hmac.rb
85
+ test/openssl/test_ns_spki.rb
86
+ test/openssl/test_pair.rb
87
+ test/openssl/test_pkcs7.rb
88
+ test/openssl/test_pkey_rsa.rb
89
+ test/openssl/test_ssl.rb
90
+ test/openssl/test_x509cert.rb
91
+ test/openssl/test_x509crl.rb
92
+ test/openssl/test_x509ext.rb
93
+ test/openssl/test_x509name.rb
94
+ test/openssl/test_x509req.rb
95
+ test/openssl/test_x509store.rb
96
+ test/openssl/utils.rb
97
+ test/ref/a.out
98
+ test/ref/compile.rb
99
+ test/ref/pkcs1
100
+ test/ref/pkcs1.c
@@ -0,0 +1,71 @@
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+
4
+ MANIFEST = FileList["Rakefile", "History.txt", "Manifest.txt", "README.txt", "License.txt", "lib/jopenssl.jar", "lib/**/*", "test/**/*"]
5
+ BC_JARS = FileList["lib/bc*.jar"]
6
+
7
+ task :default => [:java_compile, :test]
8
+
9
+ def java_classpath_arg # myriad of ways to discover JRuby classpath
10
+ begin
11
+ cpath = Java::java.lang.System.getProperty('java.class.path').split(File::PATH_SEPARATOR)
12
+ cpath += Java::java.lang.System.getProperty('sun.boot.class.path').split(File::PATH_SEPARATOR)
13
+ jruby_cpath = cpath.compact.join(File::PATH_SEPARATOR)
14
+ rescue => e
15
+ end
16
+ unless jruby_cpath
17
+ jruby_cpath = ENV['JRUBY_PARENT_CLASSPATH'] || ENV['JRUBY_HOME'] &&
18
+ FileList["#{ENV['JRUBY_HOME']}/lib/*.jar"].join(File::PATH_SEPARATOR)
19
+ end
20
+ bc_jars = BC_JARS.join(File::PATH_SEPARATOR)
21
+ jruby_cpath ? "-cp #{jruby_cpath}#{File::PATH_SEPARATOR}#{bc_jars}" : "-cp #{bc_jars}"
22
+ end
23
+
24
+ desc "Compile the native Java code."
25
+ task :java_compile do
26
+ mkdir_p "pkg/classes"
27
+
28
+ File.open("pkg/compile_options", "w") do |f|
29
+ f << "-target 1.5 -source 1.5 -Xlint:unchecked -Xlint:deprecation -d pkg/classes"
30
+ end
31
+
32
+ File.open("pkg/compile_classpath", "w") do |f|
33
+ f << java_classpath_arg
34
+ end
35
+
36
+ File.open("pkg/compile_sourcefiles", "w") do |f|
37
+ f << FileList['src/java/**/*.java'].join(' ')
38
+ end
39
+
40
+ sh "javac @pkg/compile_options @pkg/compile_classpath @pkg/compile_sourcefiles"
41
+ File.open("pkg/classes/manifest.mf", "w") {|f| f.puts "Class-Path: #{BC_JARS.map{|f| File.basename(f) }.join(' ')}"}
42
+ sh "jar cfm lib/jopenssl.jar pkg/classes/manifest.mf -C pkg/classes/ ."
43
+ end
44
+ file "lib/jopenssl.jar" => :java_compile
45
+
46
+ task :more_clean do
47
+ rm_f FileList['lib/jopenssl.jar']
48
+ end
49
+ task :clean => :more_clean
50
+
51
+ File.open("Manifest.txt", "w") {|f| MANIFEST.each {|n| f.puts n } }
52
+
53
+ require File.dirname(__FILE__) + "/lib/jopenssl/version"
54
+ begin
55
+ require 'hoe'
56
+ Hoe.spec("jruby-openssl") do |p|
57
+ p.version = Jopenssl::Version::VERSION
58
+ p.rubyforge_name = "jruby-extras"
59
+ p.url = "http://jruby-extras.rubyforge.org/jruby-openssl"
60
+ p.author = "Ola Bini and JRuby contributors"
61
+ p.email = "ola.bini@gmail.com"
62
+ p.summary = "OpenSSL add-on for JRuby"
63
+ p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
64
+ p.description = p.paragraphs_of('README.txt', 0...1).join("\n\n")
65
+ p.test_globs = ENV["TEST"] || ["test/test_*.rb"]
66
+ end.spec.dependencies.delete_if { |dep| dep.name == "hoe" }
67
+ rescue LoadError
68
+ puts "You really need Hoe installed to be able to package this gem"
69
+ rescue => e
70
+ puts "ignoring error while loading hoe: #{e.to_s}"
71
+ end
Binary file
@@ -1,5 +1,5 @@
1
1
  module Jopenssl
2
2
  module Version
3
- VERSION = "0.5.2"
3
+ VERSION = "0.6"
4
4
  end
5
5
  end
@@ -14,9 +14,7 @@
14
14
  $Id: bn.rb,v 1.1 2003/07/23 16:11:30 gotoyuzo Exp $
15
15
  =end
16
16
 
17
- ##
18
- # Should we care what if somebody require this file directly?
19
- #require 'openssl'
17
+ require 'openssl'
20
18
 
21
19
  module OpenSSL
22
20
  class BN
@@ -14,12 +14,24 @@
14
14
  $Id: cipher.rb,v 1.1.2.2 2006/06/20 11:18:15 gotoyuzo Exp $
15
15
  =end
16
16
 
17
- ##
18
- # Should we care what if somebody require this file directly?
19
- #require 'openssl'
17
+ require 'openssl'
20
18
 
21
19
  module OpenSSL
22
20
  module Cipher
21
+ class Cipher
22
+ def random_key
23
+ str = OpenSSL::Random.random_bytes(self.key_len)
24
+ self.key = str
25
+ return str
26
+ end
27
+
28
+ def random_iv
29
+ str = OpenSSL::Random.random_bytes(self.iv_len)
30
+ self.iv = str
31
+ return str
32
+ end
33
+ end
34
+
23
35
  %w(AES CAST5 BF DES IDEA RC2 RC4 RC5).each{|name|
24
36
  klass = Class.new(Cipher){
25
37
  define_method(:initialize){|*args|
@@ -40,19 +52,5 @@ module OpenSSL
40
52
  }
41
53
  const_set("AES#{keylen}", klass)
42
54
  }
43
-
44
- class Cipher
45
- def random_key
46
- str = OpenSSL::Random.random_bytes(self.key_len)
47
- self.key = str
48
- return str
49
- end
50
-
51
- def random_iv
52
- str = OpenSSL::Random.random_bytes(self.iv_len)
53
- self.iv = str
54
- return str
55
- end
56
- end
57
55
  end # Cipher
58
56
  end # OpenSSL
@@ -14,9 +14,7 @@
14
14
  $Id: digest.rb,v 1.1.2.2 2006/06/20 11:18:15 gotoyuzo Exp $
15
15
  =end
16
16
 
17
- ##
18
- # Should we care what if somebody require this file directly?
19
- #require 'openssl'
17
+ require 'openssl'
20
18
 
21
19
  module OpenSSL
22
20
  module Digest
@@ -0,0 +1,27 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIEgTCCA2mgAwIBAgIDBbhmMA0GCSqGSIb3DQEBBQUAMIGXMQswCQYDVQQGEwJB
3
+ VDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBp
4
+ bSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMR4wHAYDVQQLDBVhLXNpZ24tUHJl
5
+ bWl1bS1TaWctMDIxHjAcBgNVBAMMFWEtc2lnbi1QcmVtaXVtLVNpZy0wMjAeFw0w
6
+ OTA2MjYwOTExMzdaFw0xNDA2MjYwOTExMzdaMGAxCzAJBgNVBAYTAkFUMRcwFQYD
7
+ VQQDDA5NYXggTXVzdGVybWFubjETMBEGA1UEBAwKTXVzdGVybWFubjEMMAoGA1UE
8
+ KgwDTWF4MRUwEwYDVQQFEww3NTkzNjIxNTE2MTYwSTATBgcqhkjOPQIBBggqhkjO
9
+ PQMBAQMyAARbbFo9QvtuaQ5asz4LNXYpSq7Ey/AbNswno8CDMKD+tP39MfSUEjuY
10
+ 7yZ8T3XVYjejggHlMIIB4TATBgNVHSMEDDAKgAhN3+H/S9nJ3zAnBggrBgEFBQcB
11
+ AwEB/wQYMBYwCAYGBACORgEBMAoGCCsGAQUFBwsBMHsGCCsGAQUFBwEBBG8wbTBC
12
+ BggrBgEFBQcwAoY2aHR0cDovL3d3dy5hLXRydXN0LmF0L2NlcnRzL2Etc2lnbi1Q
13
+ cmVtaXVtLVNpZy0wMmEuY3J0MCcGCCsGAQUFBzABhhtodHRwOi8vb2NzcC5hLXRy
14
+ dXN0LmF0L29jc3AwWQYDVR0gBFIwUDBEBgYqKAARAQswOjA4BggrBgEFBQcCARYs
15
+ aHR0cDovL3d3dy5hLXRydXN0LmF0L2RvY3MvY3AvYS1zaWduLVByZW1pdW0wCAYG
16
+ BACLMAEBMIGaBgNVHR8EgZIwgY8wgYyggYmggYaGgYNsZGFwOi8vbGRhcC5hLXRy
17
+ dXN0LmF0L291PWEtc2lnbi1QcmVtaXVtLVNpZy0wMixvPUEtVHJ1c3QsYz1BVD9j
18
+ ZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0P2Jhc2U/b2JqZWN0Y2xhc3M9ZWlkQ2Vy
19
+ dGlmaWNhdGlvbkF1dGhvcml0eTARBgNVHQ4ECgQIR1fr2jRYTEUwDgYDVR0PAQH/
20
+ BAQDAgbAMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQEFBQADggEBAHsrgU7+M1jpofom
21
+ DCx1sZHOX8yPodS2hJuSf0pE7TkazV7i0sZG92P5UPWhh+FdyK7Nrn07tGrLLbGG
22
+ occclVUf8wVsRipKfBjLTYXFZPddzQ/Urtf0zvUFH7wYnMaVX1k32V6R/C/mLC0l
23
+ qmn+1htPnNks/+I4uHcPKLhcXatDPfOdLjLZGLI63B6Azxsf2/gMKEOr2hvdqDIX
24
+ +bGTdwU5r/8+oPlaTbq6xLVhyr6dKSqaXOBZDk8I7lSxDC/YwOfC6yyC2gxyiZP+
25
+ LPcGEzWnwX+9oz9gwfFKTH83i1ifHEI24NGTeJeeEPqP47XSLJf7bX264Vxtq2yf
26
+ xcxpndk=
27
+ -----END CERTIFICATE-----
@@ -0,0 +1,19 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
3
+ BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
4
+ c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
5
+ MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
6
+ emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
7
+ DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
8
+ FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMg
9
+ UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
10
+ YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
11
+ MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
12
+ AQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4
13
+ pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg0
14
+ 13gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwID
15
+ AQABMA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSk
16
+ U01UbSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i
17
+ F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY
18
+ oJ2daZH9
19
+ -----END CERTIFICATE-----
@@ -0,0 +1,19 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
3
+ BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
4
+ c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
5
+ MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
6
+ emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
7
+ DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
8
+ FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMg
9
+ UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
10
+ YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
11
+ MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
12
+ AQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4
13
+ pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg0
14
+ 13gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwID
15
+ AQABMA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSk
16
+ U01UbSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i
17
+ F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY
18
+ oJ2daZH9
19
+ -----END CERTIFICATE-----
@@ -0,0 +1,48 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIIgTCCB2mgAwIBAgICGuwwDQYJKoZIhvcNAQEFBQAwgeAxCzAJBgNVBAYTAkVT
3
+ MS4wLAYJKoZIhvcNAQkBFh9hY19jYW1lcmZpcm1hX2NjQGNhbWVyZmlybWEuY29t
4
+ MUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh
5
+ bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGTAXBgNV
6
+ BAoTEEFDIENhbWVyZmlybWEgU0ExLTArBgNVBAMTJEFDIENhbWVyZmlybWEgQ2Vy
7
+ dGlmaWNhZG9zIENhbWVyYWxlczAeFw0wNTA0MDgxMDUxMDBaFw0wOTA0MDcxMDUx
8
+ MDBaMIIBsDELMAkGA1UEBhMCRVMxHzAdBgNVBAMTFkNlcnRpZmljYWRvIGRlIFBy
9
+ dWViYXMxIjAgBgkqhkiG9w0BCQEWE2luZm9AY2FtZXJmaXJtYS5jb20xEjAQBgNV
10
+ BAUTCTEyMzQ1Njc4WjETMBEGA1UEBBMKZGUgUHJ1ZWJhczEUMBIGA1UEKhMLQ2Vy
11
+ dGlmaWNhZG8xTjBMBgorBgEEAYGHLh4CEz5DSUYgSVZBIChWQVQgbnVtYmVyIGFz
12
+ IGJ5IGFydGljbGUgMjhoIG9mIERpcmVjdGl2ZSA3Ny8zODgvRUVDKTEbMBkGCisG
13
+ AQQBgYcuHgMTC0VTQTAwMTIzNDU2MR0wGwYDVQQKExRPIERFTU8gQUMgQ2FtZXJm
14
+ aXJtYTEeMBwGA1UECxMVT1UgREVNTyBBQyBDYW1lcmZpcm1hMR0wGwYDVQQMExRU
15
+ IERFTU8gQUMgQ2FtZXJmaXJtYTFSMFAGA1UEDRNJQ2hhbWJlcnMgb2YgQ29tbWVy
16
+ Y2UgUXVhbGlmaWVkIENlcnRpZmljYXRlOiBOYXR1cmFsIFBlcnNvbiBDQU0tUEYt
17
+ U1ctS1BTQzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwmt+Ul58DwnCmPvZ
18
+ NiLJ7nXSIGBfb5hFEph7sP4NRFCVzLDOGpzIYTJ9CR+m0LVaUVTXgeLANjw1DEPC
19
+ kplWfpQejO4/nPVfRalg2GosrmqnaN3Y1lurnpQGdCz7nLOYJdS1ME52mzau8OFZ
20
+ 1fSuM+/jHfLvABuwaLXb0OvWlVMCAwEAAaOCA/QwggPwMAwGA1UdEwEB/wQCMAAw
21
+ DgYDVR0PAQH/BAQDAgO4MB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAR
22
+ BglghkgBhvhCAQEEBAMCBaAwQgYJYIZIAYb4QgEDBDUWM1VSSTpodHRwOi8vY3Js
23
+ LmNhbWVyZmlybWEuY29tL2FjX2NhbWVyZmlybWFfY2MuY2dpPzBGBglghkgBhvhC
24
+ AQgEORY3VVJJOmh0dHA6Ly9jcHMuY2FtZXJmaXJtYS5jb20vY3BzL2FjX2NhbWVy
25
+ ZmlybWFfY2MuaHRtbDA5BglghkgBhvhCAQ0ELBYqQ2VydGlmaWNhZG8gZGUgcHJ1
26
+ ZWJhcyBzaW4gcmVzcG9uc2FiaWxpZGFkMB0GA1UdDgQWBBS0rINdIfvWilZ+sklt
27
+ abvkb9harDB4BggrBgEFBQcBAQRsMGowQAYIKwYBBQUHMAKGNGh0dHA6Ly93d3cu
28
+ Y2FtZXJmaXJtYS5jb20vY2VydHMvYWNfY2FtZXJmaXJtYV9jYy5jcnQwJgYIKwYB
29
+ BQUHMAGGGmh0dHA6Ly9vY3NwLmNhbWVyZmlybWEuY29tMIGrBgNVHSMEgaMwgaCA
30
+ FLYfTp0caJEuN3Jg4UaPWqUqMTG5oYGEpIGBMH8xCzAJBgNVBAYTAkVVMScwJQYD
31
+ VQQKEx5BQyBDYW1lcmZpcm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0
32
+ dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3JnMSIwIAYDVQQDExlDaGFtYmVycyBvZiBD
33
+ b21tZXJjZSBSb290ggEFMHYGA1UdHwRvMG0wNKAyoDCGLmh0dHA6Ly9jcmwuY2Ft
34
+ ZXJmaXJtYS5jb20vYWNfY2FtZXJmaXJtYV9jYy5jcmwwNaAzoDGGL2h0dHA6Ly9j
35
+ cmwxLmNhbWVyZmlybWEuY29tL2FjX2NhbWVyZmlybWFfY2MuY3JsMB4GA1UdEQQX
36
+ MBWBE2luZm9AY2FtZXJmaXJtYS5jb20wKgYDVR0SBCMwIYEfYWNfY2FtZXJmaXJt
37
+ YV9jY0BjYW1lcmZpcm1hLmNvbTCBmgYDVR0gBIGSMIGPMIGMBg0rBgEEAYGHLgoJ
38
+ AgEBMHswPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2FtZXJmaXJtYS5jb20vY3Bz
39
+ L2FjX2NhbWVyZmlybWFfY2MuaHRtbDA4BggrBgEFBQcCAjAsGipDZXJ0aWZpY2Fk
40
+ byBkZSBwcnVlYmFzIHNpbiByZXNwb25zYWJpbGlkYWQwLwYIKwYBBQUHAQMEIzAh
41
+ MAgGBgQAjkYBATAVBgYEAI5GAQIwCxMDRVVSAgEAAgEBMA0GCSqGSIb3DQEBBQUA
42
+ A4IBAQBBfXUkreSi+Zr696+HxCpZmwhko/JmF25C3rECXvZ7L2OXEBELxiygOBpm
43
+ hs3EgRRTVA6tdWliPbI9m0Vp61qOYD566ilQspBS7MeGvNQoyyuk43EQakSCNZcl
44
+ dE6mqjXl3OT4At57vvJOnlzeidqmrPM2ULfFMBD2K6oce3PelRdOvM8stYEwqpCu
45
+ 7/jC/F+Y8ZKJTroqOYv5saHozKSooq4QP9Xd1YOFrZlh5oP7B5lpfUmphQwi/+M5
46
+ dUJywr3f+s5aaHlhkoPhNEmuhDK834PT6OekkSFCt3P/MBs71ERvSWgf1GcG+Vcm
47
+ f9cJTANAF/i6XDLRAJPsvFkNpMfc
48
+ -----END CERTIFICATE-----
@@ -0,0 +1,29 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIE4zCCA8ugAwIBAgIDBbhlMA0GCSqGSIb3DQEBBQUAMIGXMQswCQYDVQQGEwJB
3
+ VDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBp
4
+ bSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMR4wHAYDVQQLDBVhLXNpZ24tUHJl
5
+ bWl1bS1FbmMtMDIxHjAcBgNVBAMMFWEtc2lnbi1QcmVtaXVtLUVuYy0wMjAeFw0w
6
+ OTA2MjYwOTExMzZaFw0xNDA2MjYwOTExMzZaMGAxCzAJBgNVBAYTAkFUMRcwFQYD
7
+ VQQDDA5NYXggTXVzdGVybWFubjETMBEGA1UEBAwKTXVzdGVybWFubjEMMAoGA1UE
8
+ KgwDTWF4MRUwEwYDVQQFEww3NTkzNjIxNTE2MTYwgd8wDQYJKoZIhvcNAQEBBQAD
9
+ gc0AMIHJAoHBAO+1eEcrMoYJ2S2iybcqUEzIxKQ9yJJL0XRNQSrKo/bDOBibfQ3H
10
+ E/TExiivgdXG2p0UjuPO1NEFgxhT5gtdaLthV2Kuokb+vbp3mWoUGz+uHIILT2zJ
11
+ TG6Yz6sooi/ppNIagFx3qAdFes8QMAereZQp0zzphK/a21FTLk0GVHpw+DWn7NRn
12
+ ynDVY0XgFkHXS4uHSfZDhzMGXVef3+SJLQzsV8R1ThMYQeoizA7tj6hT3YeBID2E
13
+ lh86V1Z8XuznUQIDAQABo4IBsDCCAawwEwYDVR0jBAwwCoAIRyFHjpdh4x4wewYI
14
+ KwYBBQUHAQEEbzBtMEIGCCsGAQUFBzAChjZodHRwOi8vd3d3LmEtdHJ1c3QuYXQv
15
+ Y2VydHMvYS1zaWduLVByZW1pdW0tRW5jLTAyYS5jcnQwJwYIKwYBBQUHMAGGG2h0
16
+ dHA6Ly9vY3NwLmEtdHJ1c3QuYXQvb2NzcDBNBgNVHSAERjBEMEIGBiooABEBDDA4
17
+ MDYGCCsGAQUFBwIBFipodHRwOi8vd3d3LmEtdHJ1c3QuYXQvZG9jcy9jcC9hLXNp
18
+ Z24tdG9rZW4wgZoGA1UdHwSBkjCBjzCBjKCBiaCBhoaBg2xkYXA6Ly9sZGFwLmEt
19
+ dHJ1c3QuYXQvb3U9YS1zaWduLVByZW1pdW0tRW5jLTAyLG89QS1UcnVzdCxjPUFU
20
+ P2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3Q/YmFzZT9vYmplY3RjbGFzcz1laWRD
21
+ ZXJ0aWZpY2F0aW9uQXV0aG9yaXR5MBEGA1UdDgQKBAhMueHceqw1zzAOBgNVHQ8B
22
+ Af8EBAMCBLAwCQYDVR0TBAIwADANBgkqhkiG9w0BAQUFAAOCAQEASLyAbafKFN5h
23
+ 0Mkk0QQoUl4Uvl+yy2ECe/QWNmDQpd7UCw1UAKrMvR8p6OcBiTnvbvg1HnbWI3Hy
24
+ BaEhGAhb1tziWkbV93z1NQCIt8hmdqE7GEp58ptYSuzwev6rgO/RZIxI9FCQn9kJ
25
+ ruGTM8hOIkh3QEy7Mq6utquMOEO0hQSUOvZkJdaSqHAoh2I3SzsxGr3juAa61x+0
26
+ K8kW1ZgIsc0jhhb3NOyso48AqDK6oqwfiC6fp/HzSB5gycLllWrgUnMeae6Axbag
27
+ dImyOtaoxhIwZCr1tjTaQmaNK49kpvDGlIuDIQHf8uZgAoyduQfAvwiQ0llu5Ns2
28
+ AOs41se+Gg==
29
+ -----END CERTIFICATE-----
@@ -0,0 +1,24 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIEADCCAuigAwIBAgIBATANBgkqhkiG9w0BAQUFADBMMQswCQYDVQQGEwJKUDEa
3
+ MBgGA1UECgwRd3d3LnJ1YnktbGFuZy5vcmcxFDASBgNVBAsMC2RldmVsb3BtZW50
4
+ MQswCQYDVQQDDAJDQTAeFw0wOTExMTkxMDI5MjBaFw0yOTExMTQxMDI5MjBaMEwx
5
+ CzAJBgNVBAYTAkpQMRowGAYDVQQKDBF3d3cucnVieS1sYW5nLm9yZzEUMBIGA1UE
6
+ CwwLZGV2ZWxvcG1lbnQxCzAJBgNVBAMMAkNBMIIBIjANBgkqhkiG9w0BAQEFAAOC
7
+ AQ8AMIIBCgKCAQEA2nXhXZxXUs1Sfxqi8sReyzPHRcAHQM9RqDAGG9Nt1zYrLXwg
8
+ MmUhOr4yBeW2KAxJGxdRQSzI38jyT6mrDRBpTl/OeU9zBG4p6AtFGkoMnRvUonB3
9
+ CvgYJXhmrFjnHn34JNaRSORjaZDBmI9/fMGvaYndEM3wJ2b3jEOeizDIG60kZxA6
10
+ XQ+X7ral+aABsjomubvjEQ9dlcDhQlssKjbjaN3NZ/kL/i/75jc6rzT05XYYkj+Z
11
+ 9rPRfT+HH3c5EYLtxcRTEHVWXMC8/of7oOFgZwwI3Cx9/v1s2Z6gdJ8J0kIkEoUL
12
+ ziYsLIOmVB2tx0rKkmeivJB4PTM5QyHb7d1xUwIDAQABo4HsMIHpMA8GA1UdEwEB
13
+ /wQFMAMBAf8wMQYJYIZIAYb4QgENBCQWIlJ1YnkvT3BlblNTTCBHZW5lcmF0ZWQg
14
+ Q2VydGlmaWNhdGUwHQYDVR0OBBYEFBOZGvHkAfn+0Ct33rQ6tW2UmF5TMA4GA1Ud
15
+ DwEB/wQEAwIBBjB0BgNVHSMEbTBrgBQTmRrx5AH5/tArd960OrVtlJheU6FQpE4w
16
+ TDELMAkGA1UEBhMCSlAxGjAYBgNVBAoMEXd3dy5ydWJ5LWxhbmcub3JnMRQwEgYD
17
+ VQQLDAtkZXZlbG9wbWVudDELMAkGA1UEAwwCQ0GCAQEwDQYJKoZIhvcNAQEFBQAD
18
+ ggEBACfgSl3pA+e3JyjgS/zscaJHHNDwXIIoH0KY6pcrZnl7Zh8CW+Gdba621Lek
19
+ aAy0YhAAM9bF87QZG1+sL7B2H1oSTt7F67SwQfq079oNWjhEdV5dxBKk6XaU0R31
20
+ KXSsmLR4pMxcFdPzGM0FTiSj9FNKk2pydVySsa5jJeG0qvXVFMqsRUUwklQHl9Kx
21
+ 9GZiknt4PEGj/ThUwarhRbRjV5z7ZxXKexkangBlRWPX7TjvlpZPgLzAODG4fiRW
22
+ ZUo8Ng7QolTJuPAhlVxhdi9n5hItm6mt21RTpQcP49KoGe8x+T4EzPO0PPdCMliD
23
+ fH3udDO+bq2F8H4ts6ZJAYWFo8U=
24
+ -----END CERTIFICATE-----