diff --git a/test/rubygems/ca_cert.pem b/test/rubygems/ca_cert.pem index b3977e26adf3..67a2580fc090 100644 --- a/test/rubygems/ca_cert.pem +++ b/test/rubygems/ca_cert.pem @@ -1,77 +1,21 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 0 (0x0) - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=JP, ST=Tokyo, O=RubyGemsTest, CN=CA - Validity - Not Before: Jan 1 00:00:00 2009 GMT - Not After : Dec 31 23:59:59 2049 GMT - Subject: C=JP, ST=Tokyo, O=RubyGemsTest, CN=CA - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:c8:19:2c:5a:1d:4d:2a:65:1d:9a:0b:d6:3a:5c: - 5f:54:90:ac:17:6f:58:18:8f:e6:0f:33:36:ca:a0: - 92:02:b8:49:85:96:e9:74:16:14:40:67:98:4a:1f: - 4d:1c:d8:0b:c4:4e:f8:78:0a:68:70:39:d8:66:64: - c6:d5:ca:49:e9:02:c7:1a:1c:03:ba:a1:85:68:0a: - 03:05:27:b5:7f:97:21:94:20:f3:fe:ea:2e:f5:2e: - 99:34:6b:e0:e7:96:ca:51:4e:4d:40:48:09:d6:5f: - 64:7b:e5:df:eb:3d:44:bf:42:25:f7:84:c7:2d:22: - e0:7f:00:37:c6:c3:16:75:75:37:6a:e5:56:da:1c: - 77:37:3c:00:d3:1f:f4:9d:3b:27:08:ff:cd:cf:1e: - 60:74:65:90:c2:59:b4:12:3e:a0:7f:22:47:87:ff: - 52:f3:47:39:d1:91:02:1c:bb:8c:c9:20:1f:00:db: - d1:3a:b0:e0:ba:ee:55:05:8f:1a:f8:1e:dd:6d:83: - 1c:1d:18:01:44:92:27:22:f1:2a:07:fe:43:83:08: - 82:d3:2b:f1:ec:b1:68:b3:f8:94:1b:81:29:54:01: - 56:12:54:66:ba:60:e7:5c:27:04:4d:a3:61:e3:f9: - 8f:86:53:0b:83:eb:1f:1d:89:0c:83:66:88:c8:50: - 8d:c5 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Subject Key Identifier: - D6:DB:87:AD:D3:45:FC:D4:8D:6B:2B:97:F4:CF:95:08:B6:FA:62:A4 - X509v3 Authority Key Identifier: - keyid:D6:DB:87:AD:D3:45:FC:D4:8D:6B:2B:97:F4:CF:95:08:B6:FA:62:A4 - - X509v3 Basic Constraints: critical - CA:TRUE - Signature Algorithm: sha256WithRSAEncryption - 06:92:f7:9a:0f:40:da:1a:7f:9f:0c:9e:04:37:4d:be:a4:1e: - 86:65:b3:4a:be:87:13:a1:e4:6b:3b:d6:58:9d:ca:f8:ba:6d: - e4:dd:de:c5:e3:a2:ec:ef:32:2d:c0:06:01:3a:d5:81:5a:e1: - e4:f7:5f:68:67:ea:cd:28:90:b1:9c:82:d3:4e:00:51:b6:eb: - d5:8d:ec:ab:c3:18:b2:8b:8d:5b:63:6d:f8:f5:40:c6:c6:7e: - 72:7b:ed:98:c5:5e:24:b9:ad:4f:5b:8f:1d:53:a3:d7:6a:4f: - 07:2e:6a:b6:63:5c:dc:05:22:ac:77:af:b0:72:9d:39:6f:77: - 9c:45:8b:ad:de:e8:bf:6a:b5:87:0b:58:47:af:11:1a:9e:84: - 25:21:68:48:2a:b3:3c:5a:97:54:20:03:bd:87:34:dd:db:24: - a6:c7:50:e9:6c:87:55:f2:e5:33:9c:83:8f:8c:9e:f3:3a:38: - a0:92:a1:a7:c4:89:31:bd:33:83:11:dd:ad:bb:e0:47:19:bb: - 62:6c:49:58:b3:13:12:c3:d0:dd:02:5f:6f:4f:13:07:6d:aa: - 7b:2c:46:5a:74:52:6d:13:10:9c:f7:3d:5d:84:5b:b8:5b:a9: - c5:ae:56:4b:9a:8c:e2:fd:7f:55:80:cb:b0:2d:56:d7:a4:3c: - cf:3c:b2:ff -----BEGIN CERTIFICATE----- -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 +skZK/wY4Xw== -----END CERTIFICATE----- diff --git a/test/rubygems/client.pem b/test/rubygems/client.pem index 9824d9cd4a0e..b3b04c5818c2 100644 --- a/test/rubygems/client.pem +++ b/test/rubygems/client.pem @@ -1,107 +1,48 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 2 (0x2) - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=JP, ST=Tokyo, O=RubyGemsTest, CN=CA - Validity - Not Before: Jan 1 00:00:00 2009 GMT - Not After : Dec 31 23:59:59 2049 GMT - Subject: C=JP, ST=Tokyo, O=RubyGemsTest, CN=client - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:c7:87:4a:f4:77:32:54:0e:56:0a:80:04:ac:b5: - 71:b6:29:9f:c6:aa:f5:9b:3b:75:0a:c2:55:2c:cf: - 34:c8:78:b7:38:ed:af:48:7d:7e:6c:4c:39:d8:0f: - cf:fc:ba:f5:e0:50:47:a0:76:72:cf:c7:de:91:a6: - 1a:99:8b:5f:6f:0c:06:fc:f1:78:6b:0f:c5:bc:91: - cc:91:f0:85:05:5d:66:d3:cb:ac:54:a1:bc:9b:6c: - e8:17:f2:17:20:b8:b0:b2:03:cc:9d:a6:8e:c0:33: - 6c:8b:5f:ef:1a:f6:38:6d:80:3f:4d:b5:e3:a5:a4: - f1:86:15:76:62:8b:6c:9d:fa:24:59:32:8f:60:b0: - 80:f4:22:a2:68:57:13:aa:60:e4:cd:01:34:87:76: - 2a:15:ca:86:9b:b7:aa:b5:66:fd:72:d8:35:86:7e: - c8:1d:a1:71:71:85:ac:65:64:c2:ea:19:52:7b:34: - 1e:12:c4:87:8f:75:d7:65:35:85:dd:5a:33:5d:2c: - 31:f8:2f:b4:84:a7:b6:56:56:2b:e1:9c:c9:c8:f9: - 41:18:40:19:d9:bb:d4:3c:0d:c4:93:dc:b8:d1:99: - 44:d0:3d:a2:de:de:29:7f:d6:0c:a8:07:df:bc:ed: - 66:5b:aa:cc:64:44:b8:79:49:ed:48:77:88:e2:d1: - 94:b9 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: - CA:FALSE - Netscape Comment: - OpenSSL Generated Certificate - X509v3 Subject Key Identifier: - EF:5A:B6:46:3A:44:5F:0F:E4:F9:E0:6B:B2:C8:45:8D:07:0D:70:15 - X509v3 Authority Key Identifier: - keyid:D6:DB:87:AD:D3:45:FC:D4:8D:6B:2B:97:F4:CF:95:08:B6:FA:62:A4 - - Signature Algorithm: sha256WithRSAEncryption - 55:b5:5a:51:cd:0b:2a:81:10:e6:d1:d9:d6:6c:78:99:9b:01: - 18:e7:91:32:89:6c:fd:3b:eb:c0:03:82:f8:5c:e2:19:c1:04: - 5d:37:10:5b:97:0b:be:76:8b:98:71:d4:63:68:8c:0e:61:c9: - ec:3d:cf:ed:01:57:9f:9b:53:07:27:1a:7e:20:f3:8a:13:8c: - 4f:30:bd:e6:a0:eb:d7:2c:a1:95:35:3f:a6:53:c9:00:11:f9: - f6:b3:9d:53:e4:b5:71:33:f1:dc:86:47:94:6f:a9:64:01:d4: - c5:1b:7c:95:0a:02:0e:6f:d1:70:94:5a:5f:7b:ac:77:f7:56: - 35:6b:ad:a2:e2:fc:74:91:1e:c3:46:fc:32:01:19:a1:a5:27: - f3:31:14:79:86:7c:4d:9a:83:7c:28:03:9f:ac:3c:8c:e4:d9: - c8:b0:4e:a3:fe:75:cd:a9:8e:34:57:3b:6b:14:d6:df:35:42: - 7b:c9:3d:88:0d:ea:5f:1e:c6:5f:80:0e:a5:b9:bf:25:06:ac: - ac:38:7f:cc:f9:a5:9e:68:cc:08:77:1e:de:45:0d:91:e5:38: - d2:b3:62:ea:03:ec:3c:18:9f:16:ec:43:21:30:7a:a7:8b:42: - c6:cb:e4:a8:ac:0b:15:82:a5:9c:93:b2:2c:20:1f:d2:de:e1: - cf:c0:74:bc -----BEGIN CERTIFICATE----- -MIIDfDCCAmSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBBMQswCQYDVQQGEwJKUDEO +MIIDQzCCAiugAwIBAgIBAjANBgkqhkiG9w0BAQsFADBBMQswCQYDVQQGEwJKUDEO MAwGA1UECAwFVG9reW8xFTATBgNVBAoMDFJ1YnlHZW1zVGVzdDELMAkGA1UEAwwC Q0EwHhcNMDkwMTAxMDAwMDAwWhcNNDkxMjMxMjM1OTU5WjBFMQswCQYDVQQGEwJK UDEOMAwGA1UECAwFVG9reW8xFTATBgNVBAoMDFJ1YnlHZW1zVGVzdDEPMA0GA1UE -AwwGY2xpZW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx4dK9Hcy -VA5WCoAErLVxtimfxqr1mzt1CsJVLM80yHi3OO2vSH1+bEw52A/P/Lr14FBHoHZy -z8fekaYamYtfbwwG/PF4aw/FvJHMkfCFBV1m08usVKG8m2zoF/IXILiwsgPMnaaO -wDNsi1/vGvY4bYA/TbXjpaTxhhV2YotsnfokWTKPYLCA9CKiaFcTqmDkzQE0h3Yq -FcqGm7eqtWb9ctg1hn7IHaFxcYWsZWTC6hlSezQeEsSHj3XXZTWF3VozXSwx+C+0 -hKe2VlYr4ZzJyPlBGEAZ2bvUPA3Ek9y40ZlE0D2i3t4pf9YMqAffvO1mW6rMZES4 -eUntSHeI4tGUuQIDAQABo3sweTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1P -cGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU71q2RjpEXw/k -+eBrsshFjQcNcBUwHwYDVR0jBBgwFoAU1tuHrdNF/NSNayuX9M+VCLb6YqQwDQYJ -KoZIhvcNAQELBQADggEBAFW1WlHNCyqBEObR2dZseJmbARjnkTKJbP0768ADgvhc -4hnBBF03EFuXC752i5hx1GNojA5hyew9z+0BV5+bUwcnGn4g84oTjE8wveag69cs -oZU1P6ZTyQAR+faznVPktXEz8dyGR5RvqWQB1MUbfJUKAg5v0XCUWl97rHf3VjVr -raLi/HSRHsNG/DIBGaGlJ/MxFHmGfE2ag3woA5+sPIzk2ciwTqP+dc2pjjRXO2sU -1t81QnvJPYgN6l8exl+ADqW5vyUGrKw4f8z5pZ5ozAh3Ht5FDZHlONKzYuoD7DwY -nxbsQyEweqeLQsbL5KisCxWCpZyTsiwgH9Le4c/AdLw= +AwwGY2xpZW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvvqO1JFy +g8n1NJmkzCN88+HVZ1XRl/A+rLnET9BnA5fw0GLFr6dFN3D6yupSIBf2tv2Wi7Q8 +rWcF1rcRnoKux+kbTfDfAovauMl+nlmXQw8UEhnW7eKvSNL/qea+l9np0rsoQLh1 +mUN3qKT4vhNB6jJRkJpK+Xm4QmftQk4mgPLx29dPgluzW6CQ15TgzMh0JS+9rgNM +m3myzo5A5E7LhfN4KkaqjsrZsC60YwcAVVe5AAzOhEqx3xNJi2egVcQpYIDLoqXv +6lcw9XDgrCWASu5jKJ8/2eVS+1A/truyiiOzqWFHF3oooSCfdQdDYdZAQTgNCpck +Z2uUWhcMR1c9GwIDAQABo0IwQDAdBgNVHQ4EFgQU3Q6xBBeSjXmkZRK0CO/lTzzT +YZIwHwYDVR0jBBgwFoAUS1u7mY0QhStQOlam0XES98oPCXUwDQYJKoZIhvcNAQEL +BQADggEBAIgSn7HxCDA5Mjmftc5Ve+GuLUq6/hxZiifYM5fUFsPqtj3WLfRiPADR +JneKD1Nc9pk33PJmRqBxX/uWArKEccEmLBTAhS7yjxTS7JSDe83813hWs8BpIevF +/ZK1juKHnrxPHgJEPOE+KsBu5eNvfwidj+qK+AZ1yQlzqJHtJsqsQaH+4nnCDDzZ +U8QWqaqRCMSu9ZKm8caL+S8G97Tj3YNSVSgc9jBIM+K5WzdhjgOKIE3Uwon+ech4 +4B60s80Dt08zMMEL2x9e1NgJO7bwx0uMGKXMDxRUZC5/Ae0OS7opCy0shqGhPQ2h +70mJTjXLEHSYXYDhWxxRoNRolC2mhhM= -----END CERTIFICATE----- ------BEGIN RSA PRIVATE KEY----- -MIIEogIBAAKCAQEAx4dK9HcyVA5WCoAErLVxtimfxqr1mzt1CsJVLM80yHi3OO2v -SH1+bEw52A/P/Lr14FBHoHZyz8fekaYamYtfbwwG/PF4aw/FvJHMkfCFBV1m08us -VKG8m2zoF/IXILiwsgPMnaaOwDNsi1/vGvY4bYA/TbXjpaTxhhV2YotsnfokWTKP -YLCA9CKiaFcTqmDkzQE0h3YqFcqGm7eqtWb9ctg1hn7IHaFxcYWsZWTC6hlSezQe -EsSHj3XXZTWF3VozXSwx+C+0hKe2VlYr4ZzJyPlBGEAZ2bvUPA3Ek9y40ZlE0D2i -3t4pf9YMqAffvO1mW6rMZES4eUntSHeI4tGUuQIDAQABAoIBAHbfhuuQ3D4x8Fb/ -IEnZK+8Qa22MSxl52ehYETDKHjNVoCtdiDGS+rAA1fGAsjRrGrPSgGn8R7i85kA2 -CuDxpSDetIccQdbfJbqLzqof9tBUbj++t2QQm/KpdrlVdSv8fOEB3HUMVz3xJTkA -Jc8VZFbwskZVGFSGqZJt1QMu975By8mrNBiQ92dpWUwH6bcJ2rL+GgpW8LkosAtW -+bqAH86je2utErCStHTBMq459JIcef+dZxQ1iNALny+Q54MIsFbh21TbUf+mPsBK -B5Pe+RnlEw9uFmFH0gQybmZBIB/IDnsDj/+L0gRrSp6nYaQBD2Gw2jPJQL0PEu0s -nS1B4tECgYEA+E1z73eA35jBvDg/CI4mcL/f17xRCW9YsaeXTqEDMSi27b5OSgdP -0ETl3xreVgKGeDHygyaaJ6MR7uoPRPJhZR1ifrhWKoyPLuD55rwGIvKIbAWXVj7/ -AvcY+qligVcK2dTJjczh6Tv8/XVYEPrfg4QdDlg9rodAlNJGofaX0WUCgYEAzbbD -8Yw/KbX1bSN6TtHoAAIVd/y2a4TEgHxOOOM5LAQ98fgP4L7njse8CBFUCH9RXYIS -lWyT7aHxykK/32wsd/6CfP1IlNcOSrBe5nA0b1m9piT6K9nZd7NMv1DpznaZ/roO -6jPxXrtQAgAC4jPCehH23t8SqP+abBIWvTlZisUCgYB4Jvqf+UL6b+/nxYvy9t5x -FtgZi/3mw+O2a/OSz+U8h4gleT5nIiykCoL1uAm4sxYg2YKRpj9YSNentclXwrYQ -eOyth0Pi6QtsUt96oKeTh6suInJ+AJPj+nAy835AOj988zPpEyiKdUXR3FOWO9+m -w2pQA7EtYDOHEE2vmCUU5QKBgCSP10OXKaLANF6xb4uSwyk9NZOd1s5FSqeLcFus -Bv1Lw7a94BSR2ZYG6eSFL+pStqNn+uWT5rbVkaPhOTj8gOrS0V5lpgDOODwOHM/Y -IXmo+YwOBmjEz2H2/C0EtIl9iuE7MGtvz/aGVDIGznxltqr7hmUWQLrIsymCDYiU -KNYBAoGAeZd1hDEK3dmzNAzNUWaIVWg2yq+B1RF7k1yzk7XcAc13vGEyZc2gILji -y+0IMS60/uKVZ7zYBvxuaDJImi1woEzAVSM2LUo2vHgFClrhHCF+tGKVEa1hbhhO -ScifJC8f/HoKI+Ddn0hrFF0ndBJ7g4mB9sm7RBHfm+1steGCV3Q= ------END RSA PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC++o7UkXKDyfU0 +maTMI3zz4dVnVdGX8D6sucRP0GcDl/DQYsWvp0U3cPrK6lIgF/a2/ZaLtDytZwXW +txGegq7H6RtN8N8Ci9q4yX6eWZdDDxQSGdbt4q9I0v+p5r6X2enSuyhAuHWZQ3eo +pPi+E0HqMlGQmkr5ebhCZ+1CTiaA8vHb10+CW7NboJDXlODMyHQlL72uA0ybebLO +jkDkTsuF83gqRqqOytmwLrRjBwBVV7kADM6ESrHfE0mLZ6BVxClggMuipe/qVzD1 +cOCsJYBK7mMonz/Z5VL7UD+2u7KKI7OpYUcXeiihIJ91B0Nh1kBBOA0KlyRna5Ra +FwxHVz0bAgMBAAECggEACpzt9w4mKQC+KbAoIlgOh5cTPuzb+u+U7BBewni4YNC+ +xzXV+o73H7+dkE05RyNNyJmLFjRr8s742hfOWNq2T9G6fLhYDFItU3uPF8muyEE8 +Qk1BTnL8frWLE6wJB3NKtTVFZWNa1auUKMESOa3kSdmGAt0wMXD8NmSEIN0q8pt1 +EXhWlW7F9aOeXbDs0LffvPSfG4u5VeyoUdLQznZMA/s8j3xPCUPLmiLQBJ3u3Oec +aV/FIGo0p2wKm61KBTw080KU0LMuc/qJ/ee7vpsqBh8UzneIEA6dsMdnn+jw/2K7 +KsoUkYKaHTTjV6C+RpNCDwgfodqvTqcj1bYKzaN0gQKBgQDlsZUeAUPxMijXNE0Y +HsXtEAgriDoX5dBJc4Z9PEFPs8s5C0nxbnaWBjVqmdbY1b0Fn30vCH2MIPFbnTnQ +Bm4pVw27CbE7OdhlMbwBRc2f3hO3+Ak6SgHGchU2tYGgKn8AqZYT5otGxPuW4Cax +0JysHaEs4rsNe8p8dBwW7te8IQKBgQDU2eMn9fYzuSwXdGA1p+qYvNf/OkCjg1V3 +hUQHm76VYyZhg009carxSaVZkjlUJQk/C+r3VZwmVMmkSQCRStJC/dBn8xG5qzlZ +uJ6vb/rEW+gZcBr5pDm+WDslu1FYOEyn7Uow1H0JhH3Xw2dkxP3tY2ab+ZX/fWGo +E2WfwO6xuwKBgQClbDqnrGOhLu3I56rqRydmrxgjOe4UzfcvHxtp0F59J1CiGaY8 +UcDoFTqdNoRMD8sdZJrEp8m7hPIud9JuJmNqNH74CGfy7psRbjsnc30+uLLc2K7U +ov4aTIlIqHndvx1OfdRPKsd9xVooc/CKOWLMdl5gtD3g3RmcfgbI4WTP4QKBgBno +X37YsFwBWP2N27wMMUDgE4ZsZ7u/W6LNpMcsTNlQFTbfTYKCGGWAKlEpvDKiw2pa +IAJ0+CmuPlDx1dDZg5hF3p0Yd/rafYOPNjlybtqBuVGHVLE4LRMfGCvyjecoCySR +fGtPId0LtGmTzjz0wVeotq+bhIdxknZrzf3Q9PzLAoGBANpXv/iSxlBg+EQ8wO8e +zHdJ9hLO9xe/R3slhSZhGDVxGkuQwHhblDbVc0tI14TjpepSy2ztOlKKQM2jeYww +6A1VKPfYt6ndakcWNGvsz/tnvxOG0XYiGEWm1SyHDOjD9urDhFakD2NHrP9BQfgc +iDFIyfYvXY6zlrJdcBZUOLxg +-----END PRIVATE KEY----- diff --git a/test/rubygems/ssl_cert.pem b/test/rubygems/ssl_cert.pem index b99938e15bbd..fa6ddf9e7ddf 100644 --- a/test/rubygems/ssl_cert.pem +++ b/test/rubygems/ssl_cert.pem @@ -1,80 +1,20 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1 (0x1) - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=JP, ST=Tokyo, O=RubyGemsTest, CN=CA - Validity - Not Before: Jan 1 00:00:00 2009 GMT - Not After : Dec 31 23:59:59 2049 GMT - Subject: C=JP, ST=Tokyo, O=RubyGemsTest, CN=localhost - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:c1:9b:13:e1:65:2a:87:a9:3c:84:2e:c3:21:e1: - 63:a2:8c:7c:6e:63:9a:ac:3e:45:f5:fa:37:08:aa: - c0:a7:6b:ff:42:27:1a:66:13:b9:ad:ca:d0:35:62: - 52:00:56:56:71:cd:dc:74:04:fe:2a:a6:7d:00:61: - e2:b8:9a:0f:d1:2c:56:b7:50:c4:23:f1:52:68:f3: - fd:cf:6c:6b:86:93:91:f0:d8:7a:67:d8:55:fc:0d: - d1:30:f8:aa:a4:79:f2:17:ca:11:b3:8c:e5:01:34: - ad:21:bc:a8:4d:ea:18:bc:13:9c:0a:94:bf:fb:46: - cf:29:d2:52:03:e4:97:4e:92:ae:b7:9d:b0:d9:19: - 49:5f:7a:5b:20:80:87:05:db:f4:73:df:04:69:12: - e8:14:1e:d2:c8:dd:d0:d3:81:72:04:f5:34:d7:9c: - 61:b5:b6:d3:4b:61:ee:a9:04:36:60:79:c8:77:74: - 24:70:89:a8:16:f8:6e:21:51:e9:30:61:fb:21:f6: - b3:6b:c1:b1:09:fa:26:ed:9f:3d:d2:2a:b6:34:d9: - b8:e8:46:d7:08:c3:3c:5d:0e:96:7a:e5:a1:ff:0a: - e2:36:bc:b4:06:3e:32:5a:9e:a5:4b:38:9e:0a:cc: - 08:3a:9f:07:4e:74:d0:16:4b:0f:51:e4:d5:24:f3: - 76:5d - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: - CA:FALSE - Netscape Comment: - OpenSSL Generated Certificate - X509v3 Subject Key Identifier: - 1E:0A:57:4F:0E:BC:B5:26:26:B9:01:80:E8:9A:25:98:4A:C0:D6:05 - X509v3 Authority Key Identifier: - keyid:D6:DB:87:AD:D3:45:FC:D4:8D:6B:2B:97:F4:CF:95:08:B6:FA:62:A4 - - Signature Algorithm: sha256WithRSAEncryption - 85:13:fa:00:1d:65:c4:f3:82:12:94:67:e3:34:a1:ac:0c:7b: - f1:2c:e7:20:db:ea:b8:d1:54:52:3e:34:00:bf:d3:1f:04:be: - df:c3:7d:96:20:b6:e5:cf:d3:67:b4:27:95:57:41:e9:51:9e: - 90:88:a9:0e:97:4f:37:42:35:21:b5:e3:6e:82:c9:4c:66:1c: - 61:df:84:28:00:6a:93:d4:dd:25:96:18:55:89:cc:3d:70:a5: - 50:a4:e0:b9:db:c1:8e:aa:b1:aa:cc:89:dc:c1:1d:2d:c8:49: - ad:5b:96:eb:62:57:2e:0e:c0:5d:de:0a:86:27:b9:3c:92:bd: - 2d:db:0a:3c:ed:ef:1a:cf:0e:33:c9:61:a2:44:c1:ad:53:e6: - ca:28:ee:4c:19:6f:dd:75:a2:cc:d8:9a:36:e7:8c:64:35:da: - 1b:cb:9b:31:53:ca:a0:7b:d8:ac:ff:ee:a3:e8:9b:32:8f:5d: - 0d:ce:0c:eb:b5:ed:82:d6:70:0e:c3:ca:9e:8b:e4:c1:fc:c0: - 1e:ed:81:7e:5a:0a:a7:34:26:f7:0e:28:a0:7b:ba:21:42:14: - 84:48:12:df:e8:9e:21:91:fc:c8:c0:f5:f8:6a:9f:c7:27:d4: - 73:c5:9d:1a:5c:c8:62:24:71:d5:ae:4c:f2:c4:ad:14:c3:6d: - db:d6:56:bb -----BEGIN CERTIFICATE----- -MIIDfzCCAmegAwIBAgIBATANBgkqhkiG9w0BAQsFADBBMQswCQYDVQQGEwJKUDEO +MIIDRjCCAi6gAwIBAgIBATANBgkqhkiG9w0BAQsFADBBMQswCQYDVQQGEwJKUDEO MAwGA1UECAwFVG9reW8xFTATBgNVBAoMDFJ1YnlHZW1zVGVzdDELMAkGA1UEAwwC Q0EwHhcNMDkwMTAxMDAwMDAwWhcNNDkxMjMxMjM1OTU5WjBIMQswCQYDVQQGEwJK UDEOMAwGA1UECAwFVG9reW8xFTATBgNVBAoMDFJ1YnlHZW1zVGVzdDESMBAGA1UE -AwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZsT -4WUqh6k8hC7DIeFjoox8bmOarD5F9fo3CKrAp2v/QicaZhO5rcrQNWJSAFZWcc3c -dAT+KqZ9AGHiuJoP0SxWt1DEI/FSaPP9z2xrhpOR8Nh6Z9hV/A3RMPiqpHnyF8oR -s4zlATStIbyoTeoYvBOcCpS/+0bPKdJSA+SXTpKut52w2RlJX3pbIICHBdv0c98E -aRLoFB7SyN3Q04FyBPU015xhtbbTS2HuqQQ2YHnId3QkcImoFvhuIVHpMGH7Ifaz -a8GxCfom7Z890iq2NNm46EbXCMM8XQ6WeuWh/wriNry0Bj4yWp6lSzieCswIOp8H -TnTQFksPUeTVJPN2XQIDAQABo3sweTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQf -Fh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUHgpXTw68 -tSYmuQGA6JolmErA1gUwHwYDVR0jBBgwFoAU1tuHrdNF/NSNayuX9M+VCLb6YqQw -DQYJKoZIhvcNAQELBQADggEBAIUT+gAdZcTzghKUZ+M0oawMe/Es5yDb6rjRVFI+ -NAC/0x8Evt/DfZYgtuXP02e0J5VXQelRnpCIqQ6XTzdCNSG1426CyUxmHGHfhCgA -apPU3SWWGFWJzD1wpVCk4LnbwY6qsarMidzBHS3ISa1blutiVy4OwF3eCoYnuTyS -vS3bCjzt7xrPDjPJYaJEwa1T5soo7kwZb911oszYmjbnjGQ12hvLmzFTyqB72Kz/ -7qPomzKPXQ3ODOu17YLWcA7Dyp6L5MH8wB7tgX5aCqc0JvcOKKB7uiFCFIRIEt/o -niGR/MjA9fhqn8cn1HPFnRpcyGIkcdWuTPLErRTDbdvWVrs= +AwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsjj8 +n+ZW3AqKKfXN7GSGZbiR2ilC6XWxMGuv6g/XXx2pudFcIV9IsDMVTyTXCyyBqS6s +4fAfDKxNrazECGqnAi35rwDuM7Jwf5TaN8ZowCBjF47PNXVEjzh/q+0Qrm4u0Aa3 +xr3GCmBTnrYbuckhFce4vrdOUOF7gnfGsoKw4+S2lJELRxgLTlfrQ89O2DXBUQHu +pBV+eTXyCmHMqbPev977po0O5UN/PszU9Fa2ZAHdqiFBGTjv/WiuEzDx805ELyDi +Db/x+Qs4wW1eHmqbUAa5E+dVCPY3czb/GoHDirEapfKcl8XO7W99CI6YncY9P+mf +116UlGMv8tU/l/KTWwIDAQABo0IwQDAdBgNVHQ4EFgQUzNhVDt6OHBfNqr9rjAmZ +os3MzWIwHwYDVR0jBBgwFoAUS1u7mY0QhStQOlam0XES98oPCXUwDQYJKoZIhvcN +AQELBQADggEBAJ152xZorAF8yevyQH2hdcwNy5hY3ySF93E9rMlrClXEki55/TG1 +33u9Wb4SiZYORmbl2pDnpn9fuNc+qaqTfvZGg0WQdofNYgawTopDqbfM2ITa2PJE +w1DW94L/9UA/SsgoHBKWhEexLQGjEyekidJH+UXoBO45f0b0nWgKSC4CxzxVm/wE +U1MYcgXRakdZEp7h0jjgbAbY5HEHuZXZBXzACMs/bI4wPB+MarBHKn0LxoG2OSSi +znlf0NyTyHymJSxJHol1Z4XsFMIfs5M+rUT1It1QdNQya2G8INolr5kdftxq6Lf+ +yp+hQQDJq/v/0ASAU/otZ7uQdD6VJxe6Bh0= -----END CERTIFICATE----- diff --git a/test/rubygems/ssl_key.pem b/test/rubygems/ssl_key.pem index 4883043b770a..26908eaacd78 100644 --- a/test/rubygems/ssl_key.pem +++ b/test/rubygems/ssl_key.pem @@ -1,27 +1,28 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEpAIBAAKCAQEAwZsT4WUqh6k8hC7DIeFjoox8bmOarD5F9fo3CKrAp2v/Qica -ZhO5rcrQNWJSAFZWcc3cdAT+KqZ9AGHiuJoP0SxWt1DEI/FSaPP9z2xrhpOR8Nh6 -Z9hV/A3RMPiqpHnyF8oRs4zlATStIbyoTeoYvBOcCpS/+0bPKdJSA+SXTpKut52w -2RlJX3pbIICHBdv0c98EaRLoFB7SyN3Q04FyBPU015xhtbbTS2HuqQQ2YHnId3Qk -cImoFvhuIVHpMGH7Ifaza8GxCfom7Z890iq2NNm46EbXCMM8XQ6WeuWh/wriNry0 -Bj4yWp6lSzieCswIOp8HTnTQFksPUeTVJPN2XQIDAQABAoIBAG0KWZ0VrGlxsKrF -55L6bXJMa3yEzsV54U9TmJFiElV5Ju/sNBsPuwEd/DxE3uhfuBoqlqIleb0tvbNs -bhQIeSYXMdPXQlD4BrEj0mxzpO/Lx2N9mRtJpcvrQEmzk/BE2kv5vBSDIyuVrnkU -1zniwgGTjcwL0UDFtcHZOeYFZg6S5Co7vbwBItIAcZKdZUXTHj7gt5j1uGD9a0FL -fOFYiysrr9Nh8lVJgTv5W/gdYxE4vmyG6nfIUIPSyZwTgzItk4RZU3ygGTA1bP3D -O0U3bW4avXKtJTdLUpy7MHT5edErZ0UX7LKYByfvinGMH9FpsBcp2XAcBKZmZwrG -e00XR+UCgYEA+g3Gj2GUwGz/LUmPUb2fT7vqbuoOJpNQUxsx1csbX6NetH7eJU4y -P/iZKSmAeVbf+RdfySf4/Z1brrwtKz700FMY7CYhfXiHH3vL+TCZgLq/wuU/hJYQ -YHV5P1/71YQg3ArCP4ukkoJH4Zm8ACN5MUx8YbRrwvdVYycf9nwVGWcCgYEAxjWr -b8kTCPhzbZIJiDWq5fDlnt5PwU+bXGDQMK5LnagxfcQg7LLlJm5c7+fxBX1Q0n6U -dtAdswaTiL5VotV9zQhF/Kmehjl7GAMxpcSfMYpwxSQEY5jDswTVCRej4B4GLDQD -7jO6Ih+o6fvxhxh6yP9kO5IMn/ATGqnxipwsI5sCgYB+pIt0As/7xThYD3FuzMLq -9xl8oz4Xe3SrIpLS3NM4VN2aPMb1zezVSWsI1eQjkERPO+9fScdpa1EL5nJZ/MCw -4eU1dPpxOaH16BUeV+bms657XvAUjowszlJiLpK1SP37c9d9p5PqP+F3+QymZVD0 -DvDP6zjIvcuZNC+T/rQQ8QKBgQCUzZwMCye4N1Xo75cqZCgOAqFQeNPla89WNfR2 -Z5OrI6csJP8W1GNGS9qH3VhL572ymYb5/9ocGhbOtR3zZlXQhKKOQgUZ/bNU3qj6 -KzfcaHOq/RQydXCOSFVrQw0rZz75Fn/Q55KYpa4ZI6U65/zeQyXLtyS1OfYNsYH9 -rqtQewKBgQDCXBOUc/wSzc77EFC6A3j4nETS1D4WLpz/sKljTDRES7zsIGqgur7N -P0Lbijz3HiW8RCS4Kt0VPXApsXEa6D8aYordzk2rp3Uk1pdWhcMoOr4FaXyRYgl7 -+XYlxe0kzAFY7ZR6M0p9cXjh9XZ1Is15xJQg3q0/ru/J3QS0BTSrFg== ------END RSA PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCyOPyf5lbcCoop +9c3sZIZluJHaKULpdbEwa6/qD9dfHam50VwhX0iwMxVPJNcLLIGpLqzh8B8MrE2t +rMQIaqcCLfmvAO4zsnB/lNo3xmjAIGMXjs81dUSPOH+r7RCubi7QBrfGvcYKYFOe +thu5ySEVx7i+t05Q4XuCd8aygrDj5LaUkQtHGAtOV+tDz07YNcFRAe6kFX55NfIK +Ycyps96/3vumjQ7lQ38+zNT0VrZkAd2qIUEZOO/9aK4TMPHzTkQvIOINv/H5CzjB +bV4eaptQBrkT51UI9jdzNv8agcOKsRql8pyXxc7tb30Ijpidxj0/6Z/XXpSUYy/y +1T+X8pNbAgMBAAECggEAVyXbjhr1pUJ4Hh2GlM3xFCOFGn8rq3oz6x/1VMhrQaUB +Hg5cdSshIZvREzLJ/rpEKuTaf97JaAqHL2I4N39jbALsQWF8mQXr0c8JR9W62hvc +KKRZ+WN+42O2tmzFR+4z8OAgFEwu31sL+KNG+nl5tqtDUOrUnmMr4HfOTvLuKXkX +yUMpZ31+tyqSSO1oHqMn2PQTkXSqQdQ6w2u3YINB/KqkEgTM4Qpdj/0gk3xmS5i3 +mNLr1YbKlW0Q0q3VoYTD4hBXIYbE4SK3OfQKkwXnxLORm0E4Ib788Ev2plCs5lXw +EDQ7DZeJs0tDyea7svysgxxkUX2vi0NCAbL4G0wO9QKBgQDZtyy8jJVER209wlFr +VVAAXalwieF+wdgd/BrPt6B9km0bOi/3gQyea6DhguZmR4JUd4IfE8DlM9J9OODA +ZHHddI+2TluWCUoGR0BwgiWiHibP3eyBb0mOqrgLvMBMLYzRY6H/Zqp87ij/oHbB +XFLCgarpVpIogyvfqnRM0UjW5wKBgQDRj/kFqFN5/mD6bhgrDAk23MNaZufiQEqp +2ApPUvY63qqRgTPP6qYo4aAKrzeW0Ad6EkbGqZwBR471l8rrt3qPbEqBB10/CAPA +6bUQ7TU98CXAQ4aHSZcBWzABe8YElyy6CbwZi2ccoMjxko4k5adL0jBSh4I81x00 +lE798xz1bQKBgQCPIfwJYatonkTVi4EXvZjBBNK2qA9V1H8PB4Vg9mpO5AtTESgj +4fW32S6F1BdBOtYWThN/9u6kQTOrG8+27NJnM5Cf3FgeBbFi+0kELqwrLwN5OX+Z +gN6tKtOg89DAxFmF96izTn3bcIAHvykT6myGb9U7XqzscYBQpbGcJyNqFQKBgCSx +U8Xk0jDzFGHk8wBejCJ6Bw6GJCXeYfRZKnz3JrvqDu2JNNw71rojv1T/lvkmFZkP +KCtSuUkUEXj5CgO5zZDdQjJTasVFjvqxMQ30qrTcno+Kgzye6vzGzaIE3QgivCca +2z+RxA0kLer2YUMenutMsz9QEMK8W5XAPhCDB9gFAoGAc5slZ1qZD1zjsPyXnj49 +oEKN6eW4zJXOUBFImgRicuOqRZ1dR1cNGC/2WrDZusPRTtHUDRK5FkK1EyWuBCrB +3p+3thxOQgXhebmXhkLZQzZcGUHAP/KE4I2BpmZumMUgAVw2Prl/LL9nWOh2xnX5 +bFqAfr8bycArXFusuEjeSn8= +-----END PRIVATE KEY----- diff --git a/tool/create_certs.sh b/tool/create_certs.sh index e339a3ba9cf9..6d541f6f08da 100644 --- a/tool/create_certs.sh +++ b/tool/create_certs.sh @@ -1,27 +1,71 @@ #!/bin/sh -# cp /etc/ssl/openssl.cnf . # copied from OpenSSL 1.1.1b source - -rm -rf demoCA/ server/ client/ - -mkdir demoCA demoCA/private demoCA/newcerts -touch demoCA/index.txt -echo 00 > demoCA/serial -openssl genrsa -out demoCA/private/cakey.pem 2048 -openssl req -new -key demoCA/private/cakey.pem -out demoCA/careq.pem -subj "/C=JP/ST=Tokyo/O=RubyGemsTest/CN=CA" -openssl ca -batch -config openssl.cnf -extensions v3_ca -out demoCA/cacert.pem -startdate 090101000000Z -enddate 491231235959Z -batch -keyfile demoCA/private/cakey.pem -selfsign -infiles demoCA/careq.pem - -mkdir server -openssl genrsa -out server/server.key 2048 -openssl req -new -key server/server.key -out server/csr.pem -subj "/C=JP/ST=Tokyo/O=RubyGemsTest/CN=localhost" -openssl ca -batch -config openssl.cnf -startdate 090101000000Z -enddate 491231235959Z -in server/csr.pem -keyfile demoCA/private/cakey.pem -cert demoCA/cacert.pem -out server/cert.pem - -mkdir client -openssl genrsa -out client/client.key 2048 -openssl req -config openssl.cnf -new -key client/client.key -out client/csr.pem -subj "/C=JP/ST=Tokyo/O=RubyGemsTest/CN=client" -openssl ca -batch -config openssl.cnf -startdate 090101000000Z -enddate 491231235959Z -in client/csr.pem -keyfile demoCA/private/cakey.pem -cert demoCA/cacert.pem -out client/cert.pem - -cp demoCA/cacert.pem $(git rev-parse --show-toplevel)/test/rubygems/ca_cert.pem -cp server/cert.pem $(git rev-parse --show-toplevel)/test/rubygems/ssl_cert.pem -cp server/server.key $(git rev-parse --show-toplevel)/test/rubygems/ssl_key.pem -cat client/cert.pem client/client.key > $(git rev-parse --show-toplevel)/test/rubygems/client.pem +# This script creates RSA and ML-DSA-65 SSL/TLS test certificates. +# It requires OpenSSL >= 3.5 for ML-DSA-65 support. + +set -eu + +TOP_DIR="$(git rev-parse --show-toplevel)" +TMP_DIR="${TOP_DIR}/tmp/create_certs" + +create_certs() { + genpkey_args="${1}" + prefix="${2}" + + # CA + mkdir -p "${TMP_DIR}/${prefix}ca" + openssl genpkey ${genpkey_args} -out "${TMP_DIR}/${prefix}ca/cakey.pem" + openssl req -x509 \ + -key "${TMP_DIR}/${prefix}ca/cakey.pem" \ + -subj "/C=JP/ST=Tokyo/O=RubyGemsTest/CN=CA" \ + -not_before 090101000000Z -not_after 491231235959Z \ + -out "${TMP_DIR}/${prefix}ca/cacert.pem" + + # Server + mkdir -p "${TMP_DIR}/${prefix}server" + openssl genpkey ${genpkey_args} -out "${TMP_DIR}/${prefix}server/server.key" + openssl req -new \ + -key "${TMP_DIR}/${prefix}server/server.key" \ + -out "${TMP_DIR}/${prefix}server/csr.pem" \ + -subj "/C=JP/ST=Tokyo/O=RubyGemsTest/CN=localhost" + openssl x509 -req \ + -in "${TMP_DIR}/${prefix}server/csr.pem" \ + -CA "${TMP_DIR}/${prefix}ca/cacert.pem" \ + -CAkey "${TMP_DIR}/${prefix}ca/cakey.pem" \ + -set_serial 1 \ + -not_before 090101000000Z -not_after 491231235959Z \ + -out "${TMP_DIR}/${prefix}server/cert.pem" + + # Client + mkdir -p "${TMP_DIR}/${prefix}client" + openssl genpkey ${genpkey_args} -out "${TMP_DIR}/${prefix}client/client.key" + openssl req -new \ + -key "${TMP_DIR}/${prefix}client/client.key" \ + -out "${TMP_DIR}/${prefix}client/csr.pem" \ + -subj "/C=JP/ST=Tokyo/O=RubyGemsTest/CN=client" + openssl x509 -req \ + -in "${TMP_DIR}/${prefix}client/csr.pem" \ + -CA "${TMP_DIR}/${prefix}ca/cacert.pem" \ + -CAkey "${TMP_DIR}/${prefix}ca/cakey.pem" \ + -set_serial 2 \ + -not_before 090101000000Z -not_after 491231235959Z \ + -out "${TMP_DIR}/${prefix}client/cert.pem" + + cp "${TMP_DIR}/${prefix}ca/cacert.pem" \ + "${TOP_DIR}/test/rubygems/${prefix}ca_cert.pem" + cp "${TMP_DIR}/${prefix}server/cert.pem" \ + "${TOP_DIR}/test/rubygems/${prefix}ssl_cert.pem" + cp "${TMP_DIR}/${prefix}server/server.key" \ + "${TOP_DIR}/test/rubygems/${prefix}ssl_key.pem" + cat "${TMP_DIR}/${prefix}client/cert.pem" \ + "${TMP_DIR}/${prefix}client/client.key" > \ + "${TOP_DIR}/test/rubygems/${prefix}client.pem" +} + +rm -rf "${TMP_DIR}" + +# RSA +create_certs "-algorithm rsa -pkeyopt rsa_keygen_bits:2048" "" + +# ML-DSA-65 +create_certs "-algorithm mldsa65" "mldsa65_" diff --git a/tool/create_mldsa65_certs.sh b/tool/create_mldsa65_certs.sh deleted file mode 100644 index 3e25b90104e8..000000000000 --- a/tool/create_mldsa65_certs.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh - -# This script creates ML-DSA-65 (PQC) test certificates. -# It requires OpenSSL >= 3.5 for ML-DSA-65 support. -# Unlike create_certs.sh, this script doesn't use openssl.cnf. - -set -eu - -rm -rf mldsa65_ca/ mldsa65_server/ mldsa65_client/ - -# CA -mkdir mldsa65_ca -openssl genpkey -algorithm mldsa65 -out mldsa65_ca/cakey.pem -openssl req -x509 -key mldsa65_ca/cakey.pem -subj "/C=JP/ST=Tokyo/O=RubyGemsTest/CN=CA" -not_before 090101000000Z -not_after 491231235959Z -out mldsa65_ca/cacert.pem - -# Server -mkdir mldsa65_server -openssl genpkey -algorithm mldsa65 -out mldsa65_server/server.key -openssl req -new -key mldsa65_server/server.key -out mldsa65_server/csr.pem -subj "/C=JP/ST=Tokyo/O=RubyGemsTest/CN=localhost" -openssl x509 -req -in mldsa65_server/csr.pem -CA mldsa65_ca/cacert.pem -CAkey mldsa65_ca/cakey.pem -set_serial 1 -not_before 090101000000Z -not_after 491231235959Z -out mldsa65_server/cert.pem - -# Client -mkdir mldsa65_client -openssl genpkey -algorithm mldsa65 -out mldsa65_client/client.key -openssl req -new -key mldsa65_client/client.key -out mldsa65_client/csr.pem -subj "/C=JP/ST=Tokyo/O=RubyGemsTest/CN=client" -openssl x509 -req -in mldsa65_client/csr.pem -CA mldsa65_ca/cacert.pem -CAkey mldsa65_ca/cakey.pem -set_serial 2 -not_before 090101000000Z -not_after 491231235959Z -out mldsa65_client/cert.pem - -cp mldsa65_ca/cacert.pem $(git rev-parse --show-toplevel)/test/rubygems/mldsa65_ca_cert.pem -cp mldsa65_server/cert.pem $(git rev-parse --show-toplevel)/test/rubygems/mldsa65_ssl_cert.pem -cp mldsa65_server/server.key $(git rev-parse --show-toplevel)/test/rubygems/mldsa65_ssl_key.pem -cat mldsa65_client/cert.pem mldsa65_client/client.key > $(git rev-parse --show-toplevel)/test/rubygems/mldsa65_client.pem