You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by ap...@apache.org on 2020/03/31 13:31:28 UTC

[arrow-testing] 03/38: ARROW-5397: [FlightRPC] Add TLS certificates for testing Flight

This is an automated email from the ASF dual-hosted git repository.

apitrou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow-testing.git

commit 12f9dbd2a37eea6fa370e108a1d797ee1167724a
Author: lihalite <42...@users.noreply.github.com>
AuthorDate: Mon Jun 10 11:59:10 2019 -0400

    ARROW-5397: [FlightRPC] Add TLS certificates for testing Flight
---
 data/flight/README.md    |  4 ++++
 data/flight/cert0.key    | 51 ++++++++++++++++++++++++++++++++++++++++++++++++
 data/flight/cert0.pem    | 29 +++++++++++++++++++++++++++
 data/flight/cert1.key    | 51 ++++++++++++++++++++++++++++++++++++++++++++++++
 data/flight/cert1.pem    | 29 +++++++++++++++++++++++++++
 data/flight/gen-certs.sh | 22 +++++++++++++++++++++
 data/flight/root-ca.key  | 51 ++++++++++++++++++++++++++++++++++++++++++++++++
 data/flight/root-ca.pem  | 33 +++++++++++++++++++++++++++++++
 8 files changed, 270 insertions(+)

diff --git a/data/flight/README.md b/data/flight/README.md
new file mode 100644
index 0000000..92e7627
--- /dev/null
+++ b/data/flight/README.md
@@ -0,0 +1,4 @@
+These are static resources for unit tests.
+
+The TLS certificates can be regenerated using `gen-certs.sh`. The
+script assumes OpenSSL is installed.
diff --git a/data/flight/cert0.key b/data/flight/cert0.key
new file mode 100644
index 0000000..b507ec8
--- /dev/null
+++ b/data/flight/cert0.key
@@ -0,0 +1,51 @@
+-----BEGIN RSA PRIVATE KEY-----
+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
+-----END RSA PRIVATE KEY-----
diff --git a/data/flight/cert0.pem b/data/flight/cert0.pem
new file mode 100644
index 0000000..da3de8e
--- /dev/null
+++ b/data/flight/cert0.pem
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIE/zCCAucCCQDvhCrYgPsL+DANBgkqhkiG9w0BAQsFADA/MQswCQYDVQQGEwJV
+UzELMAkGA1UECBMCQ0ExFDASBgNVBAoTC015T3JnLCBJbmMuMQ0wCwYDVQQDEwR0
+ZXN0MB4XDTE5MDYwNzIxMDQzNFoXDTQ2MTAyMzIxMDQzNFowRDELMAkGA1UEBhMC
+VVMxCzAJBgNVBAgTAkNBMRQwEgYDVQQKEwtNeU9yZywgSW5jLjESMBAGA1UEAxMJ
+bG9jYWxob3N0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1yFkMz4t
+8bQOTekQE4Dlc1AIaUCsVZFMFD3iU/CuLB25jFMbS3Qy5NUXNDcRt7eASNF3AEMa
+1lA784YLBDaUOozW2OB7Sbajn0ABoGtgGjM8jZ3QLK3dE8Ljxr21NQvfS1MteBbj
+5KH6RRsiYQPU4hz2d0z18XrKq6+bM2w9tM9XTrenFtddU3Ew/ruG3HyilzwYRvc7
+V4x4vMgfp9Uu8hD83qGhXxbSQL1hPyQ75Mc9gf8UbyRC0Sbs/eRU0Fd6lsSQXqXH
+7+CbQqJzipL4KGGV4cRc4G+9FjbsgEsljj8atF74rHg21lq9JHNmWVbMsQOuGB+B
+ZjtBo7UIKkXbLxYGPabU6wLawPtBZoa5Bpe6rO/ujJjTN61Y925sMdnXgGvv/Aww
+OSpsC4rRScqdbEvn1V6YtRiYiE8Gyf+kzCu0TXXPN0g1E2JnSqmjIPBlTM3+R2dM
++OHwnah8nihc1QWv8BF7YDVkxvt7crudbnyKImSr4WVA2vgRFa/Kn3yrrkybCLGp
+4BoZJzlN/ZhztWcmIUX8hQ04qPFZEJePctY96jliQix6GCxKzqJRCD3xUv1ri9Hu
+IcKzL4WHUY9OO8YwLtVo7Io62UR3Vd5VyFPq1wXtf6lRY9QIKqm9+wmyYb2Ju5X4
+wsINsEc8x0yGsmaR7uCJMiVMfNS6EdvUdH0CAwEAATANBgkqhkiG9w0BAQsFAAOC
+AgEALLq3ofS4SXKYn8al/yAL5i6tJnJsZK+IZYyH1hj4CTFzE/5v+BEevZe5P4JZ
+RJGx5i1oBkyeU5n67GRSe51HdwjBoukls2XdMgQGJ3C1nqrqXjyOmKgo+iFaXcJt
+3nt3ULqD1O1Y7t22+koD9F19kH3lic//7TZf2P4/vDPz+581fJiTJvqfW1zTt3b4
+c8rjw57yXe3T2wIPt0FJ7Jh9pmceTwICNJfoLEocynlQMEGJZRy6sP9sgfNtkWFA
+8L1aMHQsJlQiyjXQ5TJcA2C604ysVZssgGxJnTnAJGOixi3DneTjl7alIO0YlDxC
+2FcsqcXtN1kffPq5RIS+ut+0wyxgkeCSvdE+it4CE/8yVw0YkEvGTKtJzDAXU1ZL
++q+9QBi6UKLGgighdCiLXmowaUdcZJFFjDIJwVUJWVhOf4B3SqMorlGki5U+az5s
+YYKc7WjJpHRQE/rU4U7aJWr2zlV7cSvy8PiyhMBy+kBXakDbxxpWAa4aDUD//pKE
+bXOTKJ+n1w+ULhff9on4u0tGTIgKbP/UvwVcL409GSFqclR4AOb+YnneuY4e9QE7
+VpXa3ONsVlExRWo0uy0hTK3dgHTDqmVdvMbAjDECxp2uzVXhhFWt0UDMIJYGBJLN
+YPO4LddwCwr3mlO33PeNLZIUkdUx3x9OqO0HQj3C5foYFw4=
+-----END CERTIFICATE-----
diff --git a/data/flight/cert1.key b/data/flight/cert1.key
new file mode 100644
index 0000000..e3472f9
--- /dev/null
+++ b/data/flight/cert1.key
@@ -0,0 +1,51 @@
+-----BEGIN RSA PRIVATE KEY-----
+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
+-----END RSA PRIVATE KEY-----
diff --git a/data/flight/cert1.pem b/data/flight/cert1.pem
new file mode 100644
index 0000000..0c978c0
--- /dev/null
+++ b/data/flight/cert1.pem
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIE/zCCAucCCQDvhCrYgPsL+TANBgkqhkiG9w0BAQsFADA/MQswCQYDVQQGEwJV
+UzELMAkGA1UECBMCQ0ExFDASBgNVBAoTC015T3JnLCBJbmMuMQ0wCwYDVQQDEwR0
+ZXN0MB4XDTE5MDYwNzIxMDQzNFoXDTQ2MTAyMzIxMDQzNFowRDELMAkGA1UEBhMC
+VVMxCzAJBgNVBAgTAkNBMRQwEgYDVQQKEwtNeU9yZywgSW5jLjESMBAGA1UEAxMJ
+bG9jYWxob3N0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAttpnE5Tm
+DtgEFvA6gjtgyFCbBPIv+IbkWhAHdt/CN+nj72LAvpRh0r5uiLKqELh7ELmDT0Jj
+FOOMpZTNEHtOz2h56jMUygLzs4fPw1srYhPuVwDhbIt21psIYGiUL1MbEdGR55ng
+BcipPJyTQP0SDXMHfQri025yvqgkdqrxxoBFQX0sjLgNL06kyRXZIwUaj6xIeY/K
+xhtSmQLeQCvaD5xX1BcQQR39uKGVy6JFp4/5DIWwGMR7KL00gdtdCgHyDawmNFr3
+jB0Qz01tBNyypKsYagoQbEHk2CulvkSxDBrtsvTRYt5HVpO5lGf3hsXxjCV/wHcD
+Cir6NRGsVVoapClSs1sh7nJ/7oPROSbqNSKrPeqWddfKQKi5xdTsuRvrAg3PZEv+
+notddwodV9C25JX8wjrjg5MeeQqXR+JZ8myirGzF6eRhghwrPo34sBUgLzDwZ8H5
+WIQZQwEqO5y70yPhkNJYhUdxpSAT/8lrh5cbBvslEgfn9bt+LJZ7kauLTn+8SEaa
+xjC/+8Oxq3roMWV1mgUGCYSg2FfpkP/JdDPAzcK4gVIjRJ8Hrzpee4luHcKhKMdV
+VSylibyUK8jyuNF/8V3bW5oYzOpbyAYk1cVyyuBWM9KRhFumMUwzeRcww+TjEasY
+9NFAyNXb2n38fCwFTPcwBxRsNBU1/FEEHQECAwEAATANBgkqhkiG9w0BAQsFAAOC
+AgEA30ozbl3GkLaEmHo95dgoe+uCt9/284hlXPbN8UAbHXmKYgmrX5LY2KxoRDPE
+lkD9lMDajFVvIJDIsMd3AqkX4OmURe5hRpIgc/VSCWmI0PPycAila+qKRoQ2aBy8
+c5L3K7Iq3z8VWcekgEJnrlPgrylLZUBHmiBiOX6f+FiFJ1oziKouBW+5XMm5EGOQ
+zQP6LxjRH9Z85OyQdAB6tlhjPh2K/wzayTfUXGftpGtsrZKytrvl67IbV1R444ll
+Vcl58hj/8ouaRbEuDvyvV9ZFLwb6/HRtrkkk67zsvW1MQ0PoegkOVLW5NFQYggdM
+echAMItz7Ss6MrVsvzfjYg3TZkrB11BYDnPJPfZOcVctN6g64lhR8M+NeRvbjn2d
+fK8SPyVVuzytxV2n9PdNWG44HpTVxu7QpwYZyjpF2B8wcSxZoOfQh92dC6GnLLZQ
+/HiWGv0mdclmjgGbkDACc9OMUhbZA2P08kyRHG4hPv3nsQCsNVdYUnBUMnVo3tIG
+fA2tzF0a90XGch/GwASqhwCMw7DhhuMzIPT4Mn53RK312G9HLQs1sdvikK6D0ANE
+Y2Ugrgudkymhju5eq7MMRKa/atkfToDFqvMDwNPP7sPRm6PP1r3ulgTZcETZOkMz
+026SN+aB1UaWdf1nCVKxLTIfC6TANDQFP137mnzbToULW2s=
+-----END CERTIFICATE-----
diff --git a/data/flight/gen-certs.sh b/data/flight/gen-certs.sh
new file mode 100755
index 0000000..ebc4d61
--- /dev/null
+++ b/data/flight/gen-certs.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+set -eux
+
+openssl genrsa -out root-ca.key 4096
+openssl req -x509 -new -nodes \
+        -subj "/C=US/ST=CA/O=MyOrg, Inc./CN=test" \
+        -key root-ca.key -sha256 -days 10000 -out root-ca.pem
+
+openssl genrsa -out cert0.key 4096
+openssl req -new -sha256 -key cert0.key \
+        -subj "/C=US/ST=CA/O=MyOrg, Inc./CN=localhost" \
+        -out cert0.csr
+openssl x509 -req -in cert0.csr -CA root-ca.pem -CAkey root-ca.key -CAcreateserial \
+        -out cert0.pem -days 10000 -sha256
+
+openssl genrsa -out cert1.key 4096
+openssl req -new -sha256 -key cert1.key \
+        -subj "/C=US/ST=CA/O=MyOrg, Inc./CN=localhost" \
+        -out cert1.csr
+openssl x509 -req -in cert1.csr -CA root-ca.pem -CAkey root-ca.key -CAcreateserial \
+        -out cert1.pem -days 10000 -sha256
diff --git a/data/flight/root-ca.key b/data/flight/root-ca.key
new file mode 100644
index 0000000..24fef18
--- /dev/null
+++ b/data/flight/root-ca.key
@@ -0,0 +1,51 @@
+-----BEGIN RSA PRIVATE KEY-----
+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
+-----END RSA PRIVATE KEY-----
diff --git a/data/flight/root-ca.pem b/data/flight/root-ca.pem
new file mode 100644
index 0000000..79da8a7
--- /dev/null
+++ b/data/flight/root-ca.pem
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFozCCA4ugAwIBAgIJAMSzdN6Qn0GBMA0GCSqGSIb3DQEBCwUAMD8xCzAJBgNV
+BAYTAlVTMQswCQYDVQQIEwJDQTEUMBIGA1UEChMLTXlPcmcsIEluYy4xDTALBgNV
+BAMTBHRlc3QwHhcNMTkwNjA3MjEwNDMxWhcNNDYxMDIzMjEwNDMxWjA/MQswCQYD
+VQQGEwJVUzELMAkGA1UECBMCQ0ExFDASBgNVBAoTC015T3JnLCBJbmMuMQ0wCwYD
+VQQDEwR0ZXN0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA7Hjd+xdm
+JTNFSkae/h7oMRPHhVtPCNjFIIr6zwfDA9ipE+8hdXPsJF6zHo9DyYRjKzgGv3al
+xlPDEUEyV9/2nRz1r7T0HyoCbm1U56QpH3F8TkyUtk23R1J8D7FoCTB2xzTaIKzy
+rMAoZ2M1NMRwlYFUQ4cL3LylvLLTPTepsoI42BcZ1JnWcK9g9NkI4jrIH3y6N9f9
+G1uQf0Ab0rLRtdpXQiNF1lTBvtNCMH38/R5+x0nuBB4jNq3nFYd7/77V7qu8/E8b
+mg40aIouCb4v2EW/9ZtaWVjydnVm/mf8LYFZvJ3ilsTv10SdZpFVSrvS+ksChTKo
+yLGnXawp7e0oo+U+zskL68g1pjr6b0R/pnrTAT1OWP7bOjBCDii9EkNbzweXmg3X
+fxRtwZ+sTTpQR/+TOyCEohQDKw0WQW7JRT5Nqf54kKS2iXtBVUZqxYIJtVLCrooM
+2ZV7P7gcOc6bueiQJOClUPmYzs6dgeO2/6EyERJ9Rkus8Mw1/3E4eA5hIQRHWke+
++0NFVKnbk5zm91HH1HB+2tmDTtzQGrylp9fCGmkPpEitdMUlluAGPBqwkiaADeqP
+uxKfzo1o2m/BomE7WCjrVsw0+MbnoqWpq57cldEqW42LtU9whVWUVNa6VCYSz8Hq
+7rQ67PGyZkucDxmXUmdj843KNnbwzn3cI3ECAwEAAaOBoTCBnjAdBgNVHQ4EFgQU
+9RSyqmsVrXetss0gqBPoQOxYuHYwbwYDVR0jBGgwZoAU9RSyqmsVrXetss0gqBPo
+QOxYuHahQ6RBMD8xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEUMBIGA1UEChML
+TXlPcmcsIEluYy4xDTALBgNVBAMTBHRlc3SCCQDEs3TekJ9BgTAMBgNVHRMEBTAD
+AQH/MA0GCSqGSIb3DQEBCwUAA4ICAQC9Sg/+ReVdRjgQKf3JoAZbedczE/O4n3cx
+rSFgdtwxr9MvZEuMMDzHlLB55uZRO1AqQ5Xzm+zJLHYxLbQwnVIoLJKscsSKH+Yw
+xScrSHfVhIsNhLqGh2xQIL7oy92ltzMVK0/S7E9t8ssK37q5cANpfguyRmvVSINB
+472mHvXVYCaUyTAaSXF0BAUBzbG40STbpa8npjrN3dRku0wZp/GOXTiYgniRcsqL
+deFMYs+rjhMbN3cE6RmKwWj74qHTg6D+L/4fl0kQEwTZDMz6c2pSSenBQsxX0I/f
+PVHaUkXMltfcUNU3jncRBDnpcHWSjcto67srXF1p/CmGqU+v21gb0nDchB/wmQEB
+mVjzjJBeZmG15/RlIyvbJKpiuSUadl2mgmZh3K95/fc7BfyV8FaMu2USQdVLtEY8
+7hUMdd8gQIqcZOdPzwYikZMI7oXWvLSEriXBiSkP1JUi+IPlQQmH0dLr3v1CdODU
+iOx5z3ckEdDb2KxFSvWW7w2J17SG1e48kkFP2ERtFqR1lDzce1MNnVJ2bnV71Iep
+1kJT17x+89Z07fO5muHAXRnXaZ0SUFQNuwbiy/sc0obk7nNamcfug66Qm1ad8v2W
+uJfxnVBRjOOI3h111Uc4gAvrV2I+JkIY57ZuzTLw4O3yM5zpCs+tslW2NH64CGVf
+hEh9ToaNag==
+-----END CERTIFICATE-----