PYTHON-269 Add tests for hostname validation
This commit is contained in:
BIN
tests/integration/long/ssl/.keystore
Normal file
BIN
tests/integration/long/ssl/.keystore
Normal file
Binary file not shown.
BIN
tests/integration/long/ssl/.truststore
Normal file
BIN
tests/integration/long/ssl/.truststore
Normal file
Binary file not shown.
Binary file not shown.
19
tests/integration/long/ssl/cassandra.pem
Normal file
19
tests/integration/long/ssl/cassandra.pem
Normal file
@@ -0,0 +1,19 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDnzCCAoegAwIBAgIEG7jtLDANBgkqhkiG9w0BAQsFADB/MQswCQYDVQQGEwJVUzETMBEGA1UE
|
||||
CBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxMLU2FudGEgQ2xhcmExFjAUBgNVBAoTDURhdGFTdGF4IElu
|
||||
Yy4xGTAXBgNVBAsTEFBIUCBEcml2ZXIgVGVzdHMxEjAQBgNVBAMTCTEyNy4wLjAuMTAgFw0xNjA0
|
||||
MTkxNTIzNDBaGA8yMTE2MDMyNjE1MjM0MFowfzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlm
|
||||
b3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMRYwFAYDVQQKEw1EYXRhU3RheCBJbmMuMRkwFwYD
|
||||
VQQLExBQSFAgRHJpdmVyIFRlc3RzMRIwEAYDVQQDEwkxMjcuMC4wLjEwggEiMA0GCSqGSIb3DQEB
|
||||
AQUAA4IBDwAwggEKAoIBAQCkFMlcxnl+k5KAzt6g1GSQ/kXzHtQXcf0//x6BQTRYdOEeiBnMcI+o
|
||||
HYefiwGpDslr3YxcWwJSfKjgUhGj+2wyl4O8PP0Up47tX5HUQuIlIjjBZd465VhQh6DqaJky3YHX
|
||||
KD+8eHuVMnEyAImsNh9laQkUOHsGT/POpI77IBxS1hVVOu6A5bYz17D0RAzZBel3eZBWLSSgbkSG
|
||||
jUPIDY+078qRJI56xY/6lEM5Zr6DJ96jTdqjRPFv3fHJJZnwCNz0ng0wB/gHYFkm2fdGAM2jrCdD
|
||||
jC+VZK6uyXatRbFanPdlfZ4rWPrH7V0c6wrDssuUMlDIdaMyHC89axZLP5ZZAgMBAAGjITAfMB0G
|
||||
A1UdDgQWBBR/0GR2jGRuP8rsmBept17gwXcRejANBgkqhkiG9w0BAQsFAAOCAQEAe33a2GITd7DP
|
||||
WmDCFfsZqCDIbHdx1QwfcvWRpSnjXpN4Muzrt4TCRJAx6kNQZDnG2aNMdGWGjrQAXUMLkJfSnwJX
|
||||
X1f3LteNfekWB/lN6kVbPy5lSuLT45q3xSLpTUE51S3zG/c+qyi3FZgYA729ieuDW8VTQdF9hClN
|
||||
Ik8Wy5Gg87AdYY71DvG9IQkg9eAGVeZSnfMUDYpAiZaavsYJwFfYqIT/WCz9FNXPYN1tDNoV3u71
|
||||
GTPrywMLZlmmGn3EBvbh1mR25EmPkxAw6LkWyfbbzrskhXmzN+j9TZNN9MiYMNtisWBR9afsVpLq
|
||||
Bw4ukuih6CyqUxwuVBNhns8iFA==
|
||||
-----END CERTIFICATE-----
|
||||
BIN
tests/integration/long/ssl/driver.crt
Normal file
BIN
tests/integration/long/ssl/driver.crt
Normal file
Binary file not shown.
27
tests/integration/long/ssl/driver.key
Normal file
27
tests/integration/long/ssl/driver.key
Normal file
@@ -0,0 +1,27 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEowIBAAKCAQEAohKfXUHM5AQvwgTPIretqenYVJzo78z5IE/xjUe0/e24lJCe
|
||||
qCYaJPHB3kjg05ZQhBWZFsPhxMwh7zvTaLiIfjK9EuDvBP+dhxLbWShXcL8NNu45
|
||||
dfM4BebewR82Kk4rAMHgAaWDPjnyo4XJ+DUMlXMzbMrCT35k0R2ddwuEF/OI6dIn
|
||||
AX/VVDtOaWaiCP6BC4rt9r2y1UjJ5xHAK+bPjev7Y1TrSd8maTQTFzORlVRamwpQ
|
||||
tMXDJfWyan5+rbAfi74Qk6kBuc25ZWKpYKJlKGgHy9b9875G76K63boXe8hDcDE1
|
||||
mJHOEReb/n533OWmtTUH2z9Wz/ZLfE7E784DtQIDAQABAoIBAEjCDXMDMCUI0BvM
|
||||
puSSCs9loG1Tx6qnnQtpeCoRj+oTBzMCvYcFG+WL9pmApBW4vEqfm4tBwp/jeDR6
|
||||
6gxwEy58Pq8z9XmL+z8BMyGSX7bIvfjz9y3BU1wq6cNO7LUPRHThlFuI3yNXRlss
|
||||
m5/myNBq2CI14Adp2X6bSe6AZ/uL6+Ez8ZLpNiMUtGzTDILyH8bkgRHsyDxoDpF+
|
||||
h1r42dZG3ue4JC3oqUE2epvNE5Rzh02OTBSYYbmOmFWkhV2lm6DH46lycFHjkzcm
|
||||
2meU7q9I7nZrf0+ZkkQXhWGQWcGzHd3si+XMhaHT0BnH8gGFZDzpC/qnvZdIn//y
|
||||
zDu2B/0CgYEA43kkgZ1YGqi5Vi4ngek/uk4sJ9dOvYIaAag+u5ybRinLhCFDGhr9
|
||||
MzksqFY7naq9oeZZrLbftw2FsKsCMYAOrrxZIbhvGm538jwWmBefEmD0Ww+k/WKG
|
||||
AAv0z4sSnSOq2/sZBQJlOrk8K6wQ+FcyEddiy16zyj9UCzEPSDQoNj8CgYEAtmXY
|
||||
xYALbGz0peDGfzPq/WjeqCJtjlXIKOB7+vdyi88YE4Tea2vfBmAAWmbTf/el/o8R
|
||||
txDfP6+RKxXs2jCFCY640W83ar3RjXcwtu+oH4Aqa8S21o6Dx2sx3HOgKoJ3DGGB
|
||||
HHmYczuDZmN/zHseBrYUf1UNcIDQIWZCLKImkQsCgYEAuY735bfJyC18yr1pwwLX
|
||||
1o2wXWu4ssSvnEx3qCmvTIQJnaZYi7IafC+Wq1d02EAQ40H6QvcG9ddVCHHnnyOc
|
||||
VpQUjXpbP49/zx2PPNCAFcj7bFENwRkewGkAclE7hO40kbB6j2iN1WKHoASD72GJ
|
||||
2Z3+3HFLbp9MWrjRg4/wgZcCgYAk2IgkxYwJOC1nwPN4SM2kqWWpQ2MsSKnpkAeb
|
||||
mBccpRYxAztHKgBgsk3/9RuukyGGPfKPL6pZnCbQNFqnbPvDBYDSVgw01OmbEUPX
|
||||
AKzOyD5JjPB+gUWfqEjnRrhJPhe8eYnybaHdTV1q9piffxN+uZOEcXMIkgz5YkXl
|
||||
7E+sJwKBgFLA2CS19lbcoi5R8AJbUydZJr/LNAbFknWnliiq3GxISfWydA9cG/dI
|
||||
CxV3297awLhHrCWqziC0zITjEcAhsNkfG/VQlYGJOS3sfvMSrLuW/9bAL8o4VCpC
|
||||
cOs9e+svbJukJB6UQu4vpROMmv+0quXM325VlCZNel7DPAovYwjW
|
||||
-----END RSA PRIVATE KEY-----
|
||||
19
tests/integration/long/ssl/driver.pem
Normal file
19
tests/integration/long/ssl/driver.pem
Normal file
@@ -0,0 +1,19 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDnzCCAoegAwIBAgIEJErKsDANBgkqhkiG9w0BAQsFADB/MQswCQYDVQQGEwJVUzETMBEGA1UE
|
||||
CBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxMLU2FudGEgQ2xhcmExFjAUBgNVBAoTDURhdGFTdGF4IElu
|
||||
Yy4xGTAXBgNVBAsTEFBIUCBEcml2ZXIgVGVzdHMxEjAQBgNVBAMTCTEyNy4wLjAuMTAgFw0xNjA0
|
||||
MTkxNTIzNDVaGA8yMTE2MDMyNjE1MjM0NVowfzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlm
|
||||
b3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMRYwFAYDVQQKEw1EYXRhU3RheCBJbmMuMRkwFwYD
|
||||
VQQLExBQSFAgRHJpdmVyIFRlc3RzMRIwEAYDVQQDEwkxMjcuMC4wLjEwggEiMA0GCSqGSIb3DQEB
|
||||
AQUAA4IBDwAwggEKAoIBAQCiEp9dQczkBC/CBM8it62p6dhUnOjvzPkgT/GNR7T97biUkJ6oJhok
|
||||
8cHeSODTllCEFZkWw+HEzCHvO9NouIh+Mr0S4O8E/52HEttZKFdwvw027jl18zgF5t7BHzYqTisA
|
||||
weABpYM+OfKjhcn4NQyVczNsysJPfmTRHZ13C4QX84jp0icBf9VUO05pZqII/oELiu32vbLVSMnn
|
||||
EcAr5s+N6/tjVOtJ3yZpNBMXM5GVVFqbClC0xcMl9bJqfn6tsB+LvhCTqQG5zbllYqlgomUoaAfL
|
||||
1v3zvkbvorrduhd7yENwMTWYkc4RF5v+fnfc5aa1NQfbP1bP9kt8TsTvzgO1AgMBAAGjITAfMB0G
|
||||
A1UdDgQWBBR8aJLDSgkUMcrs08BbxhRA1wJIIzANBgkqhkiG9w0BAQsFAAOCAQEAoHRggyaMKbeB
|
||||
633sZgzH8DzvngzA/vID+XWAv+lCGdIYNkbu9VJ8IaYsa9JsMvvhp7UFL1mYm32QacjorxqfNTNS
|
||||
To8z4VOXrGLYkuJL1M2qJjkl3ehkX8tzKXyDIgq4pVCvKkFZR0It+QU87MnHUL1/HIOy+zdNW6ZU
|
||||
Q7sRCUMtqstiQ4scbispsVevfEBkGNjHIp6M/5Qe6skntRvdNMWZILz82GLym+NppTgcNcwDf7lq
|
||||
g/syNznM0KAE1VUAJ2y8tArvAZ/XugC2RmZGwY3q/qw1B7kaoTqu7KSdLuWzol5gR0NNVADU5x7U
|
||||
BrwBmgliT/bGpRz+PAGVYj5OXw==
|
||||
-----END CERTIFICATE-----
|
||||
@@ -1,16 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICbjCCAdegAwIBAgIEP/N06DANBgkqhkiG9w0BAQsFADBqMQswCQYDVQQGEwJU
|
||||
RTELMAkGA1UECBMCQ0ExFDASBgNVBAcTC1NhbnRhIENsYXJhMREwDwYDVQQKEwhE
|
||||
YXRhU3RheDELMAkGA1UECxMCVEUxGDAWBgNVBAMTD1BoaWxpcCBUaG9tcHNvbjAe
|
||||
Fw0xNDEwMDMxNTQ2NDdaFw0xNTAxMDExNTQ2NDdaMGoxCzAJBgNVBAYTAlRFMQsw
|
||||
CQYDVQQIEwJDQTEUMBIGA1UEBxMLU2FudGEgQ2xhcmExETAPBgNVBAoTCERhdGFT
|
||||
dGF4MQswCQYDVQQLEwJURTEYMBYGA1UEAxMPUGhpbGlwIFRob21wc29uMIGfMA0G
|
||||
CSqGSIb3DQEBAQUAA4GNADCBiQKBgQChGDwrhpQR0d+NoqilMgsBlR6A2Dd1oMyI
|
||||
Ue42sU4tN63g5N4adasfasdfsWgnAkP332ok3YAuVbxytwEv2K9HrUSiokAiuinl
|
||||
hhHA8CXTHt/1ItzzWj9uJ3Hneb+5lOkXVTZX7Y+q3aSdpx/HnZqn4i27DtLZF0z3
|
||||
LccWPWRinQIDAQABoyEwHzAdBgNVHQ4EFgQU9WJpUhgGTBBH4xZBCV7Y9YISCp4w
|
||||
DQYJKoZIhvcNAQELBQADgYEAF6e8eVAjoZhfyJ+jW5mB0pXa2vr5b7VFQ45voNnc
|
||||
GrB3aNbz/AWT7LCJw88+Y5SJITgwN/8o3ZY6Y3MyiqeQYGo9WxDSWb5AdZWFa03Z
|
||||
+hrVDQuw1r118zIhdS4KYDCQM2JfWY32TwK0MNG/6BO876HfkDpcjCYzq8Gh0gEg
|
||||
uOA=
|
||||
-----END CERTIFICATE-----
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,34 +0,0 @@
|
||||
Bag Attributes
|
||||
friendlyName: python_driver
|
||||
localKeyID: 54 69 6D 65 20 31 34 33 35 33 33 33 34 30 34 33 33 32
|
||||
Key Attributes: <No Attributes>
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
Proc-Type: 4,ENCRYPTED
|
||||
DEK-Info: DES-EDE3-CBC,8A0BC9CFBBB36D47
|
||||
|
||||
J3Rh82LhsNdIdCV4KCp758VIJJnmedwtq/I9oxH5kY4XoUQjfNcvLGlEnbAUD6+N
|
||||
mYnQ5XPDvD7iC19XvlA9gfaoWERq+zroGEP+e4dX1X5RlT6YQBJpJR8IW4DWngDM
|
||||
Nv6CuaGFJWMH8QUvKlJyFOPOHBqbhsCRaxg3pOG3RyUFXpGPDV0ySUyp6poHE9KE
|
||||
pEVif/SdS3AhV2sb4tyBS9sRZdH1eeCN4gY6k9PQWyNViAgUYAG5xWsE4fITa3qY
|
||||
gisyzbOYU8ue2QvmjPJgieiKPQf+st/ZRV5eQUCdUgAfLEnULGJXRZ5kw7kMXL0X
|
||||
gLaKFbGxv4pKQCDCZQq4GXIA/nmTy6cme+VPKwq3usm+GdxfdWQJjgG65+AFaut/
|
||||
XjGm1fvSQzWuzpesfLy57HMK+bBh1/UKjuQa3wAHtgPtJLtUSW+/qBnQRdBbl20C
|
||||
dJtJXyyTlX6H8bQBIfBLc4ntUwS8fVd2jsYJRpCBY6HdtpfsZZ5gQnm1Nux4ksKn
|
||||
rYYx3I/JpChr7AV7Yj/lwc3Zca/VJl16CjyWeRTQEvkl6GK958aIzj73HfXleZc6
|
||||
HGVfOgo2BLmOzY0ZCq/Wa4fnURRgrC3SusrT9mjVbID91oNYw4BjMEU53u0uxPC+
|
||||
rr6SwG2EUVawGTVK4XZw2DINCPP/wsKqf0xqA+sxArcTN/MEdLUBdf8oDntkj2jG
|
||||
Oy0kwpjqhSvWo1DqYKZjV/wKT2SS18OMAW+0qplbHw1/FDGWK+OseD8MXwBo06a5
|
||||
LWRQXhf0kEXUQ+oNj3eahe/npHiNChR6mEiIbCuE3NAXPPXJNkhMuj2f5EqrOPfZ
|
||||
jqbNiLfKKx7L5t6B8LXkdKGPqztcFlnB8rRF9Eqa8F4wiEg8MBLrPyxgd/uT+NIz
|
||||
LdDgvUE+IkCwQoYoCU70ApiEOyQNacuSxwUiVWVyn9CJYXPM4Vlje7GDIDRR5Xp6
|
||||
zNf0ktNP46PsRqDlYG9hZWndj4PRaAqtatlEEm37rmyouVBe3rxcbL1b1zsH/p1I
|
||||
eaGGTyZ8+iEiuEk4gCOmfmYmpE7H/DXlQvtDRblid/bEY64Uietx0HQ5yZwXZYi8
|
||||
hb4itke6xkgRQEIXVyQOdU88PEuA5yofEGoXkfdLgtdu3erPrVDc+nQTYrMWNacR
|
||||
JQljfhAFJdjOw81Yd5PnFHAtxcxzqEkWv0TGQLL1VjJdinhI7q/fIPLJ76FtuGmt
|
||||
zlxo/Jy1aaUgM/e485+7aoNSGi2/t6zGqGuotdUCO5epgrUHX+9fOJnnrYTG9ixp
|
||||
FSHTT69y72khnw3eMP8NnOS3Lu+xLEzQHNbUDfB8uyVEX4pyA3FPVVqwIaeJDiPS
|
||||
2x7Sl5KKwLbqPPKRFRC1qLsN4KcqeXBG+piTLPExdzsLbrU9JZMcaNmSmUabdg20
|
||||
SCwIuU2kHEpO7O7yNGeV9m0CGFUaoCAHVG70oXHxpVjAJbtgyoBkiwSxghCxXkfW
|
||||
Mg+1B2k4Gk1WrLjIyasH6p0MLUJ7qLYN+c+wF7ms00F/w04rM6zUpkgnqsazpw6F
|
||||
weUhpA8qY2vOJN6rsB4byaOUnd33xhAwcY/pIAcjW7UBjNmFMB1DQg==
|
||||
-----END RSA PRIVATE KEY-----
|
||||
@@ -1,19 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDrzCCApegAwIBAgIEFPORBzANBgkqhkiG9w0BAQsFADCBhjELMAkGA1UEBhMCVVMxEzARBgNV
|
||||
BAgTCkNhbGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMRYwFAYDVQQKEw1EYXRhU3RheCBJ
|
||||
bmMuMRwwGgYDVQQLExNQeXRob24gRHJpdmVyIFRlc3RzMRYwFAYDVQQDEw1QeXRob24gRHJpdmVy
|
||||
MCAXDTE1MDYyNTE3MDAxOFoYDzIxMTUwNjAxMTcwMDE4WjCBhjELMAkGA1UEBhMCVVMxEzARBgNV
|
||||
BAgTCkNhbGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMRYwFAYDVQQKEw1EYXRhU3RheCBJ
|
||||
bmMuMRwwGgYDVQQLExNQeXRob24gRHJpdmVyIFRlc3RzMRYwFAYDVQQDEw1QeXRob24gRHJpdmVy
|
||||
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjUi6xfmieLqx9yD7HhkB6sjHfbS51xE7
|
||||
aaRySjTA1p9mPfPMPPMZ0NIsiDsUlT7Fa+LWZU9cGuJBFg8YxjU5Eij7smFd0J4tawk51KudDdUZ
|
||||
crALGFC3WY7sEboMl8UHqV+kESPlNm5/JSNSYkNm1TMi9mHcB/Bg3RDpORRW/keMtBSLRxCVjsu6
|
||||
GvKN8wuEfU/bTmI9aUjbFRCFunBX6QEJeU44BYEJXNAls+X8szBfVmFHwefatSlh++uu7kY6zAQI
|
||||
v74PHMZ8w+mWmbjpxEsmSg+uljGCjQHjKTNSFBY9kWWh2LBiTcZuEsQ9DK0J/+1tUa0s5vq6CjUK
|
||||
XRxwpQIDAQABoyEwHzAdBgNVHQ4EFgQUJwTYG8dcZDt7faalYwCHmG3jp3swDQYJKoZIhvcNAQEL
|
||||
BQADggEBABtg3SLFUkcbISoZO4/UdHY2z4BTJZXt5uep9qIVQu7NospzsafgyGF0YAQJq0fLhBlB
|
||||
DVx6IxIvDZUfzKdIVMYJTQh7ZJ7kdsdhcRIhKZK4Lko3iOwkWS0aXsbQP+hcXrwGViYIV6+Rrmle
|
||||
LuxwexVfJ+wXCJcc4vvbecVsOs2+ms1w98cUXvVS1d9KpHo37LK1mRsnYPik3+CBeYXqa8FzMJc1
|
||||
dlC/dNwrCXYJZ1QMEpyaP4TI3fmkg8OJ3glZkQr6nz1TUMwMmAvudb79IrmQKBuO6k99DZFJC6Er
|
||||
oh6ff8G/F5YY+dWEqsF0KqNhL9uwyrqG3CTX5Eocg2AGkWI=
|
||||
-----END CERTIFICATE-----
|
||||
@@ -1,19 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDrzCCApegAwIBAgIEFPORBzANBgkqhkiG9w0BAQsFADCBhjELMAkGA1UEBhMCVVMxEzARBgNV
|
||||
BAgTCkNhbGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMRYwFAYDVQQKEw1EYXRhU3RheCBJ
|
||||
bmMuMRwwGgYDVQQLExNQeXRob24gRHJpdmVyIFRlc3RzMRYwFAYDVQQDEw1QeXRob24gRHJpdmVy
|
||||
MCAXDTE1MDYyNTE3MDAxOFoYDzIxMTUwNjAxMTcwMDE4WjCBhjELMAkGA1UEBhMCVVMxEzARBgNV
|
||||
BAgTCkNhbGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMRYwFAYDVQQKEw1EYXRhU3RheCBJ
|
||||
bmMuMRwwGgYDVQQLExNQeXRob24gRHJpdmVyIFRlc3RzMRYwFAYDVQQDEw1QeXRob24gRHJpdmVy
|
||||
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjUi6xfmieLqx9yD7HhkB6sjHfbS51xE7
|
||||
aaRySjTA1p9mPfPMPPMZ0NIsiDsUlT7Fa+LWZU9cGuJBFg8YxjU5Eij7smFd0J4tawk51KudDdUZ
|
||||
crALGFC3WY7sEboMl8UHqV+kESPlNm5/JSNSYkNm1TMi9mHcB/Bg3RDpORRW/keMtBSLRxCVjsu6
|
||||
GvKN8wuEfU/bTmI9aUjbFRCFunBX6QEJeU44BYEJXNAls+X8szBfVmFHwefatSlh++uu7kY6zAQI
|
||||
v74PHMZ8w+mWmbjpxEsmSg+uljGCjQHjKTNSFBY9kWWh2LBiTcZuEsQ9DK0J/+1tUa0s5vq6CjUK
|
||||
XRxwpQIDAQABoyE666666gNVHQ4EFgQUJwTYG8dcZDt7faalYwCHmG3jp3swDQYJKoZIhvcNAQEL
|
||||
BQADggEBABtg3SLFUkcbISoZO4/UdHY2z4BTJZXt5uep9qIVQu7NospzsafgyGF0YAQJq0fLhBlB
|
||||
DVx6IxIvDZUfzKdIVMYJTQh7ZJ7kdsdhcRIhKZK4Lko3iOwkWS0aXsbQP+hcXrwGViYIV6+Rrmle
|
||||
LuxwexVfJ+wXCJcc4vvbecVsOs2+ms1w98cUXvVS1d9KpHo37LK1mRsnYPik3+CBeYXqa8FzMJc1
|
||||
dlC/dNwrCXYJZ1QMEpyaP4TI3fmkg8OJ3glZkQr6nz1TUMwMmAvudb79IrmQKBuO6k99DZFJC6Er
|
||||
oh6ff8G/F5YY+dWEqsF0KqNhL9uwyrqG3CTX5Eocg2AGkWI=
|
||||
-----END CERTIFICATE-----
|
||||
@@ -1,27 +0,0 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEowIBAAKCAQEAjUi6xfmieLqx9yD7HhkB6sjHfbS51xE7aaRySjTA1p9mPfPM
|
||||
PPMZ0NIsiDsUlT7Fa+LWZU9cGuJBFg8YxjU5Eij7smFd0J4tawk51KudDdUZcrAL
|
||||
GFC3WY7sEboMl8UHqV+kESPlNm5/JSNSYkNm1TMi9mHcB/Bg3RDpORRW/keMtBSL
|
||||
RxCVjsu6GvKN8wuEfU/bTmI9aUjbFRCFunBX6QEJeU44BYEJXNAls+X8szBfVmFH
|
||||
wefatSlh++uu7kY6zAQIv74PHMZ8w+mWmbjpxEsmSg+uljGCjQHjKTNSFBY9kWWh
|
||||
2LBiTcZuEsQ9DK0J/+1tUa0s5vq6CjUKXRxwpQIDAQABAoIBAC3bpYQM+wdk0c79
|
||||
DYU/aLfkY5wRxSBhn38yuUYMyWrgYjdJoslFvuNg1MODKbMnpLzX6+8GS0cOmUGn
|
||||
tMrhC50xYEEOCX1lWiib3gGBkoCi4pevPGqwCFMxaL54PQ4mDc6UFJTbqdJ5Gxva
|
||||
0yrB5ebdqkN+kASjqU0X6Bt21qXB6BvwAgpIXSX8r+NoH2Z9dumSYD+bOwhXo+/b
|
||||
FQ1wyLL78tDdlJ8KibwnTv9RtLQbALUinMEHyP+4Gp/t/JnxlcAfvEwggYBxFR1K
|
||||
5sN8dMFbMZVNqNREXZyWCMQqPbKLhIHPHlNo5pJP7cUh9iVH4QwYNIbOqUza/aUx
|
||||
z7DIISECgYEAvpAAdDiBExMOELz4+ku5Uk6wmVOMnAK6El4ijOXjJsOB4FB6M0A6
|
||||
THXlzLws0YLcoZ3Pm91z20rqmkv1VG+En27uKC1Dgqqd4DOQzMuPoPxzq/q2ozFH
|
||||
V5U1a0tTmyynr3CFzQUJKLJs1pKKIp6HMiB48JWQc5q6ZaaomEnOiYsCgYEAvczB
|
||||
Bwwf7oaZGhson1HdcYs5kUm9VkL/25dELUt6uq5AB5jjvfOYd7HatngNRCabUCgE
|
||||
gcaNfJSwpbOEZ00AxKVSxGmyIP1YAlkVcSdfAPwGO6C1+V4EPHqYUW0AVHOYo7oB
|
||||
0MCyLT6nSUNiHWyI7qSEwCP03SqyAKA1pDRUVI8CgYBt+bEpYYqsNW0Cn+yYlqcH
|
||||
Jz6n3h3h03kLLKSH6AwlzOLhT9CWT1TV15ydgWPkLb+ize6Ip087mYq3LWsSJaHG
|
||||
WUC8kxLJECo4v8mrRzdG0yr2b6SDnebsVsITf89qWGUVzLyLS4Kzp/VECCIMRK0F
|
||||
ctQZFFffP8ae74WRDddSbQKBgQC7vZ9qEyo6zNUAp8Ck51t+BtNozWIFw7xGP/hm
|
||||
PXUm11nqqecMa7pzG3BWcaXdtbqHrS3YGMi3ZHTfUxUzAU4zNb0LH+ndC/xURj4Z
|
||||
cXJeDO01aiDWi5LxJ+snEAT1hGqF+WX2UcVtT741j/urU0KXnBDb5jU92A++4rps
|
||||
tH5+LQKBgGHtOWD+ffKNw7IrVLhP16GmYoZZ05zh10d1eUa0ifgczjdAsuEH5/Aq
|
||||
zK7MsDyPcQBH/pOwAcifWGEdXmn9hL6w5dn96ABfa8Qh9nXWrCE2OFD81PDU9Osd
|
||||
wnwbTKlYWPBwdF7UCseKC7gXkUD6Ls0ADWJvrCI7AfQJv6jj6nnE
|
||||
-----END RSA PRIVATE KEY-----
|
||||
@@ -1,13 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICbjCCAdegAwIBAgIEP/N06DANBgkqhkiG9w0BAQsFADBqMQswCQYDVQQGEwJURTELMAkGA1UE
|
||||
CBMCQ0ExFDASBgNVBAcTC1NhbnRhIENsYXJhMREwDwYDVQQKEwhEYXRhU3RheDELMAkGA1UECxMC
|
||||
VEUxGDAWBgNVBAMTD1BoaWxpcCBUaG9tcHNvbjAeFw0xNDEwMDMxNTQ2NDdaFw0xNTAxMDExNTQ2
|
||||
NDdaMGoxCzAJBgNVBAYTAlRFMQswCQYDVQQIEwJDQTEUMBIGA1UEBxMLU2FudGEgQ2xhcmExETAP
|
||||
BgNVBAoTCERhdGFTdGF4MQswCQYDVQQLEwJURTEYMBYGA1UEAxMPUGhpbGlwIFRob21wc29uMIGf
|
||||
MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQChGDwrhpQR0d+NoqilMgsBlR6A2Dd1oMyIUe42sU4t
|
||||
N63g5N44Ic4RpTiyaWgnAkP332ok3YAuVbxytwEv2K9HrUSiokAiuinlhhHA8CXTHt/1ItzzWj9u
|
||||
J3Hneb+5lOkXVTZX7Y+q3aSdpx/HnZqn4i27DtLZF0z3LccWPWRinQIDAQABoyEwHzAdBgNVHQ4E
|
||||
FgQU9WJpUhgGTBBH4xZBCV7Y9YISCp4wDQYJKoZIhvcNAQELBQADgYEAF6e8eVAjoZhfyJ+jW5mB
|
||||
0pXa2vr5b7VFQ45voNncGrB3aNbz/AWT7LCJw88+Y5SJITgwN/8o3ZY6Y3MyiqeQYGo9WxDSWb5A
|
||||
dZWFa03Z+hrVDQuw1r118zIhdS4KYDCQM2JfWY32TwK0MNG/6BO876HfkDpcjCYzq8Gh0gEguOA=
|
||||
-----END CERTIFICATE-----
|
||||
Binary file not shown.
Binary file not shown.
@@ -25,16 +25,16 @@ from tests.integration import use_singledc, PROTOCOL_VERSION, get_cluster, remov
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
DEFAULT_PASSWORD = "cassandra"
|
||||
DEFAULT_PASSWORD = "pythondriver"
|
||||
|
||||
# Server keystore trust store locations
|
||||
SERVER_KEYSTORE_PATH = "tests/integration/long/ssl/server_keystore.jks"
|
||||
SERVER_TRUSTSTORE_PATH = "tests/integration/long/ssl/server_trust.jks"
|
||||
SERVER_KEYSTORE_PATH = "tests/integration/long/ssl/.keystore"
|
||||
SERVER_TRUSTSTORE_PATH = "tests/integration/long/ssl/.truststore"
|
||||
|
||||
# Client specific keys/certs
|
||||
CLIENT_CA_CERTS = 'tests/integration/long/ssl/driver_ca_cert.pem'
|
||||
DRIVER_KEYFILE = "tests/integration/long/ssl/python_driver_no_pass.key"
|
||||
DRIVER_CERTFILE = "tests/integration/long/ssl/python_driver.pem"
|
||||
CLIENT_CA_CERTS = 'tests/integration/long/ssl/cassandra.pem'
|
||||
DRIVER_KEYFILE = "tests/integration/long/ssl/driver.key"
|
||||
DRIVER_CERTFILE = "tests/integration/long/ssl/driver.pem"
|
||||
DRIVER_CERTFILE_BAD = "tests/integration/long/ssl/python_driver_bad.pem"
|
||||
|
||||
|
||||
@@ -78,6 +78,38 @@ def teardown_module():
|
||||
remove_cluster()
|
||||
|
||||
|
||||
def validate_ssl_options(ssl_options):
|
||||
# find absolute path to client CA_CERTS
|
||||
tries = 0
|
||||
while True:
|
||||
if tries > 5:
|
||||
raise RuntimeError("Failed to connect to SSL cluster after 5 attempts")
|
||||
try:
|
||||
cluster = Cluster(protocol_version=PROTOCOL_VERSION, ssl_options=ssl_options)
|
||||
session = cluster.connect()
|
||||
break
|
||||
except Exception:
|
||||
ex_type, ex, tb = sys.exc_info()
|
||||
log.warn("{0}: {1} Backtrace: {2}".format(ex_type.__name__, ex, traceback.extract_tb(tb)))
|
||||
del tb
|
||||
tries += 1
|
||||
|
||||
# attempt a few simple commands.
|
||||
insert_keyspace = """CREATE KEYSPACE ssltest
|
||||
WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '3'}
|
||||
"""
|
||||
statement = SimpleStatement(insert_keyspace)
|
||||
statement.consistency_level = 3
|
||||
session.execute(statement)
|
||||
|
||||
drop_keyspace = "DROP KEYSPACE ssltest"
|
||||
statement = SimpleStatement(drop_keyspace)
|
||||
statement.consistency_level = ConsistencyLevel.ANY
|
||||
session.execute(statement)
|
||||
|
||||
cluster.shutdown()
|
||||
|
||||
|
||||
class SSLConnectionTests(unittest.TestCase):
|
||||
|
||||
@classmethod
|
||||
@@ -102,36 +134,32 @@ class SSLConnectionTests(unittest.TestCase):
|
||||
|
||||
# find absolute path to client CA_CERTS
|
||||
abs_path_ca_cert_path = os.path.abspath(CLIENT_CA_CERTS)
|
||||
ssl_options = {'ca_certs': abs_path_ca_cert_path,
|
||||
'ssl_version': ssl.PROTOCOL_TLSv1}
|
||||
validate_ssl_options(ssl_options=ssl_options)
|
||||
|
||||
tries = 0
|
||||
while True:
|
||||
if tries > 5:
|
||||
raise RuntimeError("Failed to connect to SSL cluster after 5 attempts")
|
||||
try:
|
||||
cluster = Cluster(protocol_version=PROTOCOL_VERSION, ssl_options={'ca_certs': abs_path_ca_cert_path,
|
||||
'ssl_version': ssl.PROTOCOL_TLSv1})
|
||||
session = cluster.connect()
|
||||
break
|
||||
except Exception:
|
||||
ex_type, ex, tb = sys.exc_info()
|
||||
log.warn("{0}: {1} Backtrace: {2}".format(ex_type.__name__, ex, traceback.extract_tb(tb)))
|
||||
del tb
|
||||
tries += 1
|
||||
def test_can_connect_with_ssl_ca_host_match(self):
|
||||
"""
|
||||
Test to validate that we are able to connect to a cluster using ssl, and host matching
|
||||
|
||||
# attempt a few simple commands.
|
||||
insert_keyspace = """CREATE KEYSPACE ssltest
|
||||
WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '3'}
|
||||
"""
|
||||
statement = SimpleStatement(insert_keyspace)
|
||||
statement.consistency_level = 3
|
||||
session.execute(statement)
|
||||
test_can_connect_with_ssl_ca_host_match performs a simple sanity check to ensure that we can connect to a cluster with ssl
|
||||
authentication via simple server-side shared certificate authority. It also validates that the host ip matches what is expected
|
||||
|
||||
drop_keyspace = "DROP KEYSPACE ssltest"
|
||||
statement = SimpleStatement(drop_keyspace)
|
||||
statement.consistency_level = ConsistencyLevel.ANY
|
||||
session.execute(statement)
|
||||
@since 3.3
|
||||
@jira_ticket PYTHON-296
|
||||
@expected_result The client can connect via SSL and preform some basic operations, with match_hostname specified
|
||||
|
||||
cluster.shutdown()
|
||||
@test_category connection:ssl
|
||||
"""
|
||||
|
||||
# find absolute path to client CA_CERTS
|
||||
abs_path_ca_cert_path = os.path.abspath(CLIENT_CA_CERTS)
|
||||
ssl_options = {'ca_certs': abs_path_ca_cert_path,
|
||||
'ssl_version': ssl.PROTOCOL_TLSv1,
|
||||
'cert_reqs': ssl.CERT_REQUIRED,
|
||||
'match_hostname': True}
|
||||
|
||||
validate_ssl_options(ssl_options=ssl_options)
|
||||
|
||||
|
||||
class SSLConnectionAuthTests(unittest.TestCase):
|
||||
@@ -158,40 +186,39 @@ class SSLConnectionAuthTests(unittest.TestCase):
|
||||
abs_path_ca_cert_path = os.path.abspath(CLIENT_CA_CERTS)
|
||||
abs_driver_keyfile = os.path.abspath(DRIVER_KEYFILE)
|
||||
abs_driver_certfile = os.path.abspath(DRIVER_CERTFILE)
|
||||
ssl_options = {'ca_certs': abs_path_ca_cert_path,
|
||||
'ssl_version': ssl.PROTOCOL_TLSv1,
|
||||
'keyfile': abs_driver_keyfile,
|
||||
'certfile': abs_driver_certfile}
|
||||
validate_ssl_options(ssl_options)
|
||||
|
||||
tries = 0
|
||||
while True:
|
||||
if tries > 5:
|
||||
raise RuntimeError("Failed to connect to SSL cluster after 5 attempts")
|
||||
try:
|
||||
cluster = Cluster(protocol_version=PROTOCOL_VERSION, ssl_options={'ca_certs': abs_path_ca_cert_path,
|
||||
'ssl_version': ssl.PROTOCOL_TLSv1,
|
||||
'keyfile': abs_driver_keyfile,
|
||||
'certfile': abs_driver_certfile})
|
||||
def test_can_connect_with_ssl_client_auth_host_name(self):
|
||||
"""
|
||||
Test to validate that we can connect to a C* cluster that has client_auth enabled, and hostmatching
|
||||
|
||||
session = cluster.connect()
|
||||
break
|
||||
except Exception:
|
||||
ex_type, ex, tb = sys.exc_info()
|
||||
log.warn("{0}: {1} Backtrace: {2}".format(ex_type.__name__, ex, traceback.extract_tb(tb)))
|
||||
del tb
|
||||
tries += 1
|
||||
This test will setup and use a c* cluster that has client authentication enabled. It will then attempt
|
||||
to connect using valid client keys, and certs (that are in the server's truststore), and attempt to preform some
|
||||
basic operations, with match_hostname specified
|
||||
@jira_ticket PYTHON-296
|
||||
@since 3.3
|
||||
|
||||
# attempt a few simple commands.
|
||||
@expected_result The client can connect via SSL and preform some basic operations
|
||||
|
||||
insert_keyspace = """CREATE KEYSPACE ssltest
|
||||
WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '3'}
|
||||
"""
|
||||
statement = SimpleStatement(insert_keyspace)
|
||||
statement.consistency_level = 3
|
||||
session.execute(statement)
|
||||
@test_category connection:ssl
|
||||
"""
|
||||
|
||||
drop_keyspace = "DROP KEYSPACE ssltest"
|
||||
statement = SimpleStatement(drop_keyspace)
|
||||
statement.consistency_level = ConsistencyLevel.ANY
|
||||
session.execute(statement)
|
||||
# Need to get absolute paths for certs/key
|
||||
abs_path_ca_cert_path = os.path.abspath(CLIENT_CA_CERTS)
|
||||
abs_driver_keyfile = os.path.abspath(DRIVER_KEYFILE)
|
||||
abs_driver_certfile = os.path.abspath(DRIVER_CERTFILE)
|
||||
|
||||
cluster.shutdown()
|
||||
ssl_options = {'ca_certs': abs_path_ca_cert_path,
|
||||
'ssl_version': ssl.PROTOCOL_TLSv1,
|
||||
'keyfile': abs_driver_keyfile,
|
||||
'certfile': abs_driver_certfile,
|
||||
'cert_reqs': ssl.CERT_REQUIRED,
|
||||
'match_hostname': True}
|
||||
validate_ssl_options(ssl_options)
|
||||
|
||||
def test_cannot_connect_without_client_auth(self):
|
||||
"""
|
||||
@@ -213,6 +240,7 @@ class SSLConnectionAuthTests(unittest.TestCase):
|
||||
|
||||
with self.assertRaises(NoHostAvailable) as context:
|
||||
cluster.connect()
|
||||
cluster.shutdown()
|
||||
|
||||
def test_cannot_connect_with_bad_client_auth(self):
|
||||
"""
|
||||
@@ -239,3 +267,4 @@ class SSLConnectionAuthTests(unittest.TestCase):
|
||||
'certfile': abs_driver_certfile})
|
||||
with self.assertRaises(NoHostAvailable) as context:
|
||||
cluster.connect()
|
||||
cluster.shutdown()
|
||||
|
||||
@@ -29,10 +29,9 @@ from cassandra.io.asyncorereactor import AsyncoreConnection
|
||||
from cassandra.protocol import QueryMessage
|
||||
from cassandra.connection import Connection
|
||||
from cassandra.policies import WhiteListRoundRobinPolicy
|
||||
from cassandra.query import SimpleStatement
|
||||
|
||||
from tests import is_monkey_patched
|
||||
from tests.integration import use_singledc, PROTOCOL_VERSION, execute_with_long_wait_retry
|
||||
from tests.integration import use_singledc, PROTOCOL_VERSION
|
||||
|
||||
try:
|
||||
from cassandra.io.libevreactor import LibevConnection
|
||||
@@ -56,7 +55,7 @@ class ConnectionTimeoutTest(unittest.TestCase):
|
||||
Connection.max_in_flight = self.defaultInFlight
|
||||
self.cluster.shutdown()
|
||||
|
||||
def testInFlightTimeout(self):
|
||||
def test_in_flight_timeout(self):
|
||||
"""
|
||||
Test to ensure that connection id fetching will block when max_id is reached/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user