blob: c4d1afe72203cf66b958f98cb027d3ab2aeae4cd [file]
/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#ifndef TEST_SSL_CERTIFICATES_HPP
#define TEST_SSL_CERTIFICATES_HPP
#include "test_utils.hpp"
#include <fstream>
namespace test {
// Note: These certificates, keystore, and truststore were auto generated using bin2c
/**
* Commands used to generate valid embedded files
*
* keytool -genkeypair -noprompt -keyalg RSA -validity 36500 \
* -alias node \
* -keystore ssl/keystore.jks \
* -storepass cassandra \
* -keypass cassandra \
* -ext SAN="IP:127.0.0.1" \
* -dname "CN=127.0.0.1, OU=Drivers and Tools, O=DataStax Inc., L=Santa Clara,
* ST=California, C=US"
*
* keytool -exportcert -noprompt \
* -alias node \
* -keystore ssl/keystore.jks \
* -storepass cassandra \
* -file ssl/cassandra.crt
*
* keytool -exportcert -rfc -noprompt \
* -alias node \
* -keystore ssl/keystore.jks \
* -storepass cassandra \
* -file ssl/cassandra.pem
*
* keytool -genkeypair -noprompt -keyalg RSA -validity 36500 \
* -alias driver \
* -keystore ssl/keystore-driver.jks \
* -storepass cassandra \
* -keypass cassandra \
* -ext SAN="IP:127.0.0.1" \
* -dname "CN=127.0.0.1, OU=Drivers and Tools, O=DataStax Inc., L=Santa Clara,
* ST=California, C=US"
*
* keytool -exportcert -noprompt \
* -alias driver \
* -keystore ssl/keystore-driver.jks \
* -storepass cassandra \
* -file ssl/cassandra-driver.crt
*
* keytool -exportcert -rfc -noprompt \
* -alias driver \
* -keystore ssl/keystore-driver.jks \
* -storepass cassandra \
* -file ssl/driver.pem
*
* keytool -importkeystore -noprompt -srcalias certificatekey -deststoretype PKCS12 \
* -srcalias driver \
* -srckeystore ssl/keystore-driver.jks \
* -srcstorepass cassandra \
* -storepass cassandra \
* -destkeystore ssl/keystore-driver.p12
*
* #Tail is required to remove additional header information from PEM
* openssl pkcs12 -nomacver -nocerts -nodes \
* -in ssl/keystore-driver.p12 \
* -password pass:cassandra | \
* tail -n +4 > ssl/driver-private.pem
*
* #Encrypt the private key with a password
* chmod 600 ssl/driver-private.pem
* ssh-keygen -p \
* -N driver \
* -f ssl/driver-private.pem
*
* keytool -import -noprompt \
* -alias truststore \
* -keystore ssl/truststore.jks \
* -storepass cassandra \
* -file ssl/cassandra-driver.crt
*
*
* Commands used to generate invalid embedded files
*
* #Cassandra (Peer)
* keytool -genkeypair -noprompt -keyalg RSA -validity 36500 \
* -alias invalid \
* -keystore ssl/invalid/keystore-invalid.jks \
* -storepass invalid \
* -keypass invalid \
* -ext SAN="DNS:INVALID" \
* -dname "CN=INVALID, OU=INVALID, O=INVALID, L=INVALID, ST=INVALID, C=INVALID"
* keytool -exportcert -rfc -noprompt \
* -alias invalid \
* -keystore ssl/invalid/keystore-invalid.jks \
* -storepass invalid \
* -file ssl/invalid/cassandra-invalid.pem
*
* #Driver (Client)
* keytool -genkeypair -noprompt -keyalg RSA -validity 36500 \
* -alias driver-invalid \
* -keystore ssl/invalid/keystore-driver-invalid.jks \
* -storepass invalid \
* -keypass invalid \
* -ext SAN="DNS:DRIVER-INVALID" \
* -dname "CN=DRIVER-INVALID, OU=DRIVER-INVALID, O=DRIVER-INVALID, L=DRIVER-INVALID,
* ST=DRIVER-INVALID, C=DRIVER-INVALID"
* keytool -exportcert -rfc -noprompt \
* -alias driver-invalid \
* -keystore ssl/invalid/keystore-driver-invalid.jks \
* -storepass invalid \
* -file ssl/invalid/driver-invalid.pem
* keytool -importkeystore -noprompt -srcalias certificatekey -deststoretype PKCS12 \
* -srcalias driver-invalid \
* -srckeystore ssl/invalid/keystore-driver-invalid.jks \
* -srcstorepass invalid \
* -storepass invalid \
* -destkeystore ssl/invalid/keystore-driver-invalid.p12
* openssl pkcs12 -nomacver -nocerts -nodes \
* -in ssl/invalid/keystore-driver-invalid.p12 \
* -password pass:invalid | \
* tail -n +4 > ssl/invalid/driver-private-invalid.pem
* chmod 600 ssl/invalid/driver-private-invalid.pem
* ssh-keygen -p \
* -N invalid \
* -f ssl/invalid/driver-private-invalid.pem
*/
static const unsigned char cassandra_crt[953] = {
'0', 0202, 03, 0264, '0', 0202, 02, 0234, 0240, 03, 02, 01, 02, 02, 04, 034,
0223, 0212, 'W', '0', 015, 06, 011, '*', 0206, 'H', 0206, 0367, 015, 01, 01, 013,
05, 0, '0', 0201, 0200, '1', 013, '0', 011, 06, 03, 'U', 04, 06, 023, 02,
'U', 'S', '1', 023, '0', 021, 06, 03, 'U', 04, 010, 023, 012, 'C', 'a', 'l',
'i', 'f', 'o', 'r', 'n', 'i', 'a', '1', 024, '0', 022, 06, 03, 'U', 04, 07,
023, 013, 'S', 'a', 'n', 't', 'a', ' ', 'C', 'l', 'a', 'r', 'a', '1', 026, '0',
024, 06, 03, 'U', 04, 012, 023, 015, 'D', 'a', 't', 'a', 'S', 't', 'a', 'x',
' ', 'I', 'n', 'c', '.', '1', 032, '0', 030, 06, 03, 'U', 04, 013, 023, 021,
'D', 'r', 'i', 'v', 'e', 'r', 's', ' ', 'a', 'n', 'd', ' ', 'T', 'o', 'o', 'l',
's', '1', 022, '0', 020, 06, 03, 'U', 04, 03, 023, 011, '1', '2', '7', '.',
'0', '.', '0', '.', '1', '0', ' ', 027, 015, '1', '4', '1', '1', '0', '6', '2',
'1', '0', '7', '2', '5', 'Z', 030, 017, '2', '1', '1', '4', '1', '0', '1', '3',
'2', '1', '0', '7', '2', '5', 'Z', '0', 0201, 0200, '1', 013, '0', 011, 06, 03,
'U', 04, 06, 023, 02, 'U', 'S', '1', 023, '0', 021, 06, 03, 'U', 04, 010,
023, 012, 'C', 'a', 'l', 'i', 'f', 'o', 'r', 'n', 'i', 'a', '1', 024, '0', 022,
06, 03, 'U', 04, 07, 023, 013, 'S', 'a', 'n', 't', 'a', ' ', 'C', 'l', 'a',
'r', 'a', '1', 026, '0', 024, 06, 03, 'U', 04, 012, 023, 015, 'D', 'a', 't',
'a', 'S', 't', 'a', 'x', ' ', 'I', 'n', 'c', '.', '1', 032, '0', 030, 06, 03,
'U', 04, 013, 023, 021, 'D', 'r', 'i', 'v', 'e', 'r', 's', ' ', 'a', 'n', 'd',
' ', 'T', 'o', 'o', 'l', 's', '1', 022, '0', 020, 06, 03, 'U', 04, 03, 023,
011, '1', '2', '7', '.', '0', '.', '0', '.', '1', '0', 0202, 01, '"', '0', 015,
06, 011, '*', 0206, 'H', 0206, 0367, 015, 01, 01, 01, 05, 0, 03, 0202, 01,
017, 0, '0', 0202, 01, 012, 02, 0202, 01, 01, 0, 0327, 0272, 0354, 0, 01,
0367, 'c', 0211, 0325, 't', '6', 024, '~', 0344, 0214, ')', 0354, 's', 0270, 0342, ';',
'g', '(', 0370, 'G', 0307, 0371, 'C', '%', '0', ';', ' ', 0264, 0355, '}', 's', 0245,
'R', 0247, '(', 'z', 0323, 0335, 0245, 0244, 0326, 0324, 'e', 'k', 0224, 0250, 0270, 0263,
0270, 'Z', 024, 0246, 0240, 'w', 'Q', '/', 'S', 010, 0217, 027, 0364, 0275, 0372, 'k',
0134, 0216, '2', 0222, 0245, ')', 0304, 0265, 'V', '/', 'R', 015, '%', 0237, '-', 'i',
0134, 'E', 0377, 027, 'j', '5', 'L', 0202, '8', '=', 0311, 0321, 0237, '+', 0267, 0212,
0214, 0203, 'Q', 'I', 0344, 0256, 0214, 'z', 0326, 'l', 0343, 0353, 'D', '8', 'C', 'L',
0325, 04, 01, 0322, 0237, 0211, 'O', '{', 0221, 0350, 0341, 0245, 0257, 0236, '$', 0304,
0361, 0334, 0341, 0323, '/', 0340, 0354, 'L', 'T', 'a', 0320, 0267, 0324, 's', 0367, 'b',
0355, 0262, 0356, 0326, '^', '_', 0255, 0245, 'T', 'w', '3', 0210, 0302, 0341, 0350, 'v',
'W', 'i', 0223, '[', 0134, 0323, 0333, 0210, 0355, 'o', 0320, 0255, ')', 0313, 0245, 0231,
015, 0345, 0233, 'u', 034, '(', 0367, 0230, 'g', 'y', 0331, 0276, 'C', 0333, 'V', 0262,
0363, 0235, 0265, 'n', 0372, 0214, ' ', 0377, 01, 0305, 037, 0275, 'a', 0356, 0250, '5',
0250, 0251, 0327, 0350, 0370, '7', 'k', 020, 'E', 0335, '!', 0351, '>', 's', 0276, 0354,
0221, ']', '<', 0270, 0213, 0214, 'u', 016, 0361, '8', '/', 'z', 0217, 0333, '~', 0236,
't', '3', 0207, 07, 'L', 013, 0, 034, 0205, 024, 'k', 02, 03, 01, 0, 01,
0243, '2', '0', '0', '0', 017, 06, 03, 'U', 035, 021, 04, 010, '0', 06, 0207,
04, 0177, 0, 0, 01, '0', 035, 06, 03, 'U', 035, 016, 04, 026, 04, 024,
0230, 0201, 'I', 0271, 0273, 0316, 'e', 'T', 0252, '[', 0245, 0307, 0304, 0134, '$', 0241,
0304, 0223, 0222, 'E', '0', 015, 06, 011, '*', 0206, 'H', 0206, 0367, 015, 01, 01,
013, 05, 0, 03, 0202, 01, 01, 0, 0306, 0223, 0303, 0234, 037, ';', 0223, 'v',
047, 0201, 0305, 0307, 0226, 013, 0356, 0212, 01, '+', 07, 'u', 'm', 'M', '_', 'Q',
'=', 0320, 0220, 06, ',', 0226, '_', 0340, 0355, 'b', 'G', 'J', 'K', 0267, 0225, 0310,
0315, '%', 0134, 0334, 'j', '^', 0253, 0245, 02, 011, 'Y', ',', '&', ':', 0310, 0246,
0243, '!', 'A', '~', '.', 0365, 0242, 0204, 0323, 0221, 'X', 0343, 'V', 0200, 011, 'h',
0344, 'E', 0230, 'O', 0353, 's', 'K', 0347, 'J', 0262, 0342, '!', 0246, 01, 014, 0367,
0311, 0213, 0325, 0270, '3', 0250, 034, 015, 'i', 'S', 0207, 0225, 0255, 0264, 06, '6',
'S', 'V', 0261, '+', 0203, 'e', '^', 0354, 'F', '2', 'B', 0314, 04, 0374, '5', 'Z',
0326, '+', 0347, 0204, 0205, 0214, 0333, 0233, 0364, 0330, '7', 023, 0362, 0177, 0237, 'Q',
0336, 'E', 0376, 0232, 'k', '/', 047, 'F', 0216, '-', 04, 0226, 's', 'C', '4', 07,
0201, ',', '~', 0340, 0323, 0267, 0330, 0272, 0237, 0270, 0236, 0357, '#', 011, 0206, 'J',
'k', 0270, 0220, 020, 0362, 011, 0222, 0273, 0211, 0311, 0203, 'k', '~', 'H', 0333, 0231,
'q', 0244, '#', 0246, 0241, '7', 023, 0265, '4', 0357, 0224, 0361, 01, 0271, 0246, 0374,
0323, 036, 0255, ':', '!', 'O', 'i', 'S', 0315, 04, 015, 0244, 0304, 0261, 'F', ' ',
'l', 'z', '2', 0237, 0263, 0301, 'D', 0241, 0263, 0336, 017, 0217, 0317, 'l', 'v', 0257,
'z', 0336, 'd', 0257, 01, '-', 0333, 0357, 0234, 0302, 0367, 'W', 0367, 'N', 0372, 0326,
'x', 0231, 0215, 0302, 'J', '_', '+', 'U', 012,
};
static const unsigned char keystore_jks[2304] = {
0376, 0355, 0376, 0355, 0, 0, 0, 02, 0, 0, 0, 01, 0, 0, 0, 01,
0, 04, 'n', 'o', 'd', 'e', 0, 0, 01, 'I', 0206, 0356, 0354, 030, 0, 0,
05, 02, '0', 0202, 04, 0376, '0', 016, 06, 012, '+', 06, 01, 04, 01, '*',
02, 021, 01, 01, 05, 0, 04, 0202, 04, 0352, 0340, 't', '9', 0301, '8', 0261,
034, 'h', 0240, 0360, 0341, 0301, 0345, 0325, 'h', 0214, 'G', 0316, ';', 't', '"', 05,
'8', 0376, 032, 0217, 031, 032, 0204, 'q', 020, 'T', 0271, ']', 0263, ')', 0265, 0330,
'h', 0300, 0261, 0306, 0257, 0211, 035, 0271, 0205, '$', 023, 0223, '4', 02, 'G', 'q',
0265, 'u', 0205, 0251, 0214, 0237, 0373, 'I', 0237, 0233, 0225, '>', 0254, '(', 'X', '3',
'W', '{', '*', 0202, '@', 0271, 0361, 016, 037, 'j', '.', 0231, ',', 'H', 0277, '"',
0324, 0277, 0222, ':', 0313, '2', 'J', 'o', 0324, 'w', 023, 0221, 0206, 030, '}', 0206,
0352, 023, 0360, '9', 'K', ']', 0212, 'g', 'V', '|', 'V', 'g', 'M', 0255, 0372, 020,
025, '2', '`', 0217, '1', 0371, 0216, ' ', 0276, '^', '-', 047, 0347, 013, '^', '%',
0237, 'y', 0362, 'i', 0177, 'o', 'Y', 'G', '+', 0335, 'M', 025, 'C', 0336, 037, 014,
'Y', 'M', 020, '$', 035, 'g', 0361, 'o', 026, 0345, 'H', 0375, '?', 0363, 'w', 012,
'+', 0323, 'c', 0343, 'i', 034, 0361, '0', 024, 0267, 'U', 0242, 0255, 027, 'b', 0263,
037, 011, 0225, 0231, 0341, '-', ')', 0212, 0260, 'm', 02, 025, 0314, 'I', 'm', 0262,
0373, 0323, 0264, 0345, 0134, 0376, 0337, 0324, 030, 'n', 'a', 017, ',', '}', 0203, 0263,
'w', '?', 0234, 'v', 0232, 'B', 0222, 0356, 0317, 0356, 0231, '(', 0355, 015, 'a', 02,
'=', 0216, 0271, ',', 'o', 0270, 0276, 0303, 'G', 'F', 010, 'N', '=', 026, 0214, 0263,
',', 'U', '$', 0306, 0322, '[', 0266, 026, 0177, 'I', 0310, 0305, 0254, 0305, '4', ')',
0372, 0262, 025, 0331, 'D', 0345, 'R', 05, 0305, 0367, 0256, '`', '}', 0201, 'e', 0237,
'b', 0261, 'z', 'O', 0276, '|', 0315, 0365, '7', 0206, '?', '5', 0, 'M', 'u', 0276,
'*', 0304, 0211, 0343, 026, 'X', 0266, 0227, 026, 0301, 0333, '&', 'K', '*', 0306, 0134,
0205, '#', 037, 0267, 'S', '|', 0275, 05, 0216, '1', 02, 0241, 'v', 0250, 'W', 0320,
0225, 0247, 'b', 0332, '^', 0370, 015, 'G', 'R', 015, 0343, 024, 0327, 0210, 'I', 0367,
'0', 'H', 0377, 0245, '2', 0326, '~', 0226, 'q', 0230, 'j', 0317, 'L', 0251, 'd', 03,
0262, '{', 0246, 0273, 0243, 0374, 0256, 's', '4', 0322, 0313, 0226, 0203, 0246, 0304, 0203,
0267, 0341, 'i', 't', 0300, 'x', '9', 03, 0333, '`', 0276, 0253, 'z', 'K', 0344, '6',
037, 0212, 'U', 0253, 0214, 0231, 0347, 034, '-', 0353, 'Q', 0346, 'X', 0277, 0200, 0222,
0222, 0215, 0261, 0307, 0345, 0276, 'd', 'o', ']', 'J', 027, 'A', 'b', 'i', 0210, 's',
06, 0220, 0313, 0205, ',', 0337, 04, 'M', 0352, 0236, 0304, 030, 'G', 0315, 0274, 0247,
0354, 'p', 0355, 025, 0335, 'R', '>', 0224, 0353, 'O', 0254, '-', 'R', 'Z', '(', 0260,
'=', ':', 0206, 0334, '}', '^', 'k', '1', 0352, 0357, 0241, 0214, 0233, 0245, '|', 'Y',
0302, '9', 01, 0201, 0374, 'V', 010, 0177, 'F', 0346, 0361, 0300, 0315, ')', 021, 0315,
'K', 0332, 'l', 0311, 0352, 0223, 'U', 'm', '"', '.', 0307, 0202, 07, '~', 0345, 0375,
'D', 0326, 0251, 0256, 0244, 0213, 0306, 0250, 0244, 010, 012, 010, '9', 'u', 0275, '%',
047, ']', 0303, 'N', '6', 'I', 0336, 026, 'y', 0337, 0247, 'k', 0240, '`', 0244, 'x',
'p', 0370, 0202, 0301, 0351, '%', 035, '8', 't', 0271, 0322, 0275, 'c', 0236, 'i', 0355,
0370, 0212, 0311, 0325, '+', '5', 0202, 0266, ',', 0360, 0327, 0305, 031, 0233, 0246, 0242,
032, 'y', 0232, 0241, 0271, 0212, 0346, 0360, 0306, '_', 027, 0303, 'F', 0311, 'D', 036,
0220, 026, '"', 't', 'u', 032, 'V', 0317, 0205, 0250, 'F', '~', 'N', 03, 0320, 0244,
0362, 0220, 0270, 'J', '&', 0273, ',', 0347, 0221, 04, 0327, 'g', 'h', 0223, 0275, 0334,
'M', 'Z', 't', 022, 'Z', 033, 'H', 0222, '}', 03, 011, 0266, '0', 'A', 0237, '-',
0320, 'b', 0331, ';', '[', 0214, 0225, ';', 0342, 0316, 0242, 0224, 'o', 'o', 0341, 'b',
023, '8', 'O', 0244, 0316, 0207, '!', 0335, 'U', 0341, 020, 0321, 010, 0333, 0230, 0200,
'W', 0340, 0134, 0251, 0212, 013, 'p', ':', 015, 'd', 015, 024, 0214, '.', 'i', '&',
0350, 0341, 0302, 0231, 'V', 0202, 0202, 'z', 'P', 0342, 'f', 0210, 0243, 'Q', 0325, 0257,
'C', 'r', ' ', 0331, 0364, 025, 0267, 0356, 0244, 'T', 0316, 035, 0235, 023, 0312, 0212,
'#', 0375, 'e', 0364, 0301, 04, '7', 0374, 0372, '#', 012, '-', 0235, 04, '(', 0341,
023, 0302, 012, 0225, ':', 0134, 'S', '%', 032, 0361, 0213, 'e', ',', 'q', 0337, 0324,
0205, 'Y', 0303, 034, 0263, 0220, '6', 0241, 0363, 0236, 0366, '/', 0206, 0276, 'a', 0310,
0376, 0233, 0376, 'z', 0240, 'y', 0344, 0220, 030, '}', '6', '-', 0271, 0347, 0325, '#',
'e', 0363, 's', 'F', 0227, 021, 030, '}', '=', 0350, '!', 0300, ',', 0202, 0224, '>',
0250, 'E', 0303, 0300, 0306, 'L', 0332, 0313, 'z', 0241, 'v', 036, 0244, 'k', 'V', 0203,
011, 0343, 0367, 'L', 0227, 0261, '~', 0254, 027, '8', 0304, 'K', 0354, 0363, 0325, 0317,
'r', 0266, 0375, 025, 02, 0344, '0', 05, 'f', ':', 0276, 'N', 0212, 'e', 0207, 0204,
'^', 0213, 'b', 0265, '@', '%', 024, 'v', '{', '1', 0246, 017, 0215, 014, 0255, 0250,
'8', 0314, '4', 0301, 0376, 0366, 011, 0326, 0332, 0213, 036, '+', 0335, 0212, 0277, 0221,
0263, '4', 0276, 'G', 'O', 010, 024, 0371, 0351, '^', 0250, 0364, 'z', 0247, 0177, 0177,
0220, 016, 0217, 0303, 0254, 'T', 'Y', 010, '<', 0235, 030, 0266, 0305, 0356, ',', 0217,
'O', 0334, 0325, 02, 0247, 'f', 'a', 0222, '/', 0203, ']', '~', 0233, 0314, 0363, 0276,
'+', 0374, 047, 0373, '7', '}', '/', 'N', 0270, 0257, 0360, 0241, '1', 0323, 0264, 0254,
0241, 'u', '*', 0371, 014, 021, 0333, 'd', 'N', 'l', 0232, 0223, '2', 0302, '%', 0241,
'0', 0357, 0277, '{', '.', 0375, 0333, 0351, '!', 023, 0247, 's', 0371, 0322, 0313, 0336,
0245, 04, 'O', 0320, '[', 0222, 'N', 0342, 0363, 015, 0323, 02, 0304, 0270, 0215, 0322,
0350, 0303, ':', 'l', 0314, 021, 0305, 0211, 0275, 'T', 'i', 0256, 0276, 013, 020, 0351,
0226, 012, ' ', 0264, 0, '{', 0304, 0134, 'Y', 0214, 0223, '=', 0271, 0355, 026, 'E',
014, 'D', ' ', 024, 0300, 'f', 0344, 's', 0253, 0322, 'u', ']', 0341, '*', 031, 0257,
0262, 0374, 0376, 0235, 0315, 012, ')', 'c', 0326, '/', 0327, 0344, 0223, 0224, 'n', 037,
'c', 0324, 0206, 0325, 0273, 0254, 0222, 0302, 'G', 0230, ')', 027, 'i', 034, 0237, '*',
'S', '-', 0215, 0277, 0277, 0370, 014, 015, 0232, '3', 'z', ',', 'j', 0347, 'M', 06,
'H', 0222, '5', 0205, 0247, 0267, '%', '-', 0205, 'L', 0272, 0331, 0335, 017, 0207, 0266,
'E', 0204, 0206, 0200, 0314, 0342, 0345, '1', 0234, 0263, 0222, 'M', 0313, 0240, '}', 0234,
'V', 0210, 0311, 032, 'u', '6', 0231, '(', 024, 0254, 0207, 012, '>', 027, 0204, ':',
'R', 0373, 0213, '{', ',', 0313, 024, 012, '?', 034, 0333, 0357, 0304, 0274, '2', 0340,
'N', '~', '~', 0316, 0254, 0344, 01, '1', 0134, ':', 'A', ';', 0252, 0256, '7', 'L',
0263, 0330, 0357, 0302, 024, 0376, 'g', '!', 0344, 0324, 'Q', '7', 'b', '|', 013, 03,
0303, 0216, 0330, 0370, 's', 'l', 0247, 0350, 0330, 0366, 'f', 0310, ',', 0240, 'p', 0224,
0302, 0325, 'Y', 0357, ',', 0356, 0335, 0365, 'c', 0205, 0265, 0247, 'H', 0220, 0227, 0240,
0236, 07, 0354, 0377, ':', 02, 0245, 0317, 0351, 'S', 0305, 0252, 0352, 0344, '}', 'f',
0363, '4', 0254, 'l', 0210, '$', 'z', '6', 0334, '6', '.', 0300, 032, '^', 0225, ' ',
'{', 0307, ':', 'W', 0243, 0313, 0335, 'P', 0250, 0236, 0350, 0306, 026, 0344, 0217, 0375,
047, '6', '>', 0237, 0, 0, 0, 01, 0, 05, 'X', '.', '5', '0', '9', 0,
0, 03, 0270, '0', 0202, 03, 0264, '0', 0202, 02, 0234, 0240, 03, 02, 01, 02,
02, 04, 034, 0223, 0212, 'W', '0', 015, 06, 011, '*', 0206, 'H', 0206, 0367, 015,
01, 01, 013, 05, 0, '0', 0201, 0200, '1', 013, '0', 011, 06, 03, 'U', 04,
06, 023, 02, 'U', 'S', '1', 023, '0', 021, 06, 03, 'U', 04, 010, 023, 012,
'C', 'a', 'l', 'i', 'f', 'o', 'r', 'n', 'i', 'a', '1', 024, '0', 022, 06, 03,
'U', 04, 07, 023, 013, 'S', 'a', 'n', 't', 'a', ' ', 'C', 'l', 'a', 'r', 'a',
'1', 026, '0', 024, 06, 03, 'U', 04, 012, 023, 015, 'D', 'a', 't', 'a', 'S',
't', 'a', 'x', ' ', 'I', 'n', 'c', '.', '1', 032, '0', 030, 06, 03, 'U', 04,
013, 023, 021, 'D', 'r', 'i', 'v', 'e', 'r', 's', ' ', 'a', 'n', 'd', ' ', 'T',
'o', 'o', 'l', 's', '1', 022, '0', 020, 06, 03, 'U', 04, 03, 023, 011, '1',
'2', '7', '.', '0', '.', '0', '.', '1', '0', ' ', 027, 015, '1', '4', '1', '1',
'0', '6', '2', '1', '0', '7', '2', '5', 'Z', 030, 017, '2', '1', '1', '4', '1',
'0', '1', '3', '2', '1', '0', '7', '2', '5', 'Z', '0', 0201, 0200, '1', 013, '0',
011, 06, 03, 'U', 04, 06, 023, 02, 'U', 'S', '1', 023, '0', 021, 06, 03,
'U', 04, 010, 023, 012, 'C', 'a', 'l', 'i', 'f', 'o', 'r', 'n', 'i', 'a', '1',
024, '0', 022, 06, 03, 'U', 04, 07, 023, 013, 'S', 'a', 'n', 't', 'a', ' ',
'C', 'l', 'a', 'r', 'a', '1', 026, '0', 024, 06, 03, 'U', 04, 012, 023, 015,
'D', 'a', 't', 'a', 'S', 't', 'a', 'x', ' ', 'I', 'n', 'c', '.', '1', 032, '0',
030, 06, 03, 'U', 04, 013, 023, 021, 'D', 'r', 'i', 'v', 'e', 'r', 's', ' ',
'a', 'n', 'd', ' ', 'T', 'o', 'o', 'l', 's', '1', 022, '0', 020, 06, 03, 'U',
04, 03, 023, 011, '1', '2', '7', '.', '0', '.', '0', '.', '1', '0', 0202, 01,
'"', '0', 015, 06, 011, '*', 0206, 'H', 0206, 0367, 015, 01, 01, 01, 05, 0,
03, 0202, 01, 017, 0, '0', 0202, 01, 012, 02, 0202, 01, 01, 0, 0327, 0272,
0354, 0, 01, 0367, 'c', 0211, 0325, 't', '6', 024, '~', 0344, 0214, ')', 0354, 's',
0270, 0342, ';', 'g', '(', 0370, 'G', 0307, 0371, 'C', '%', '0', ';', ' ', 0264, 0355,
'}', 's', 0245, 'R', 0247, '(', 'z', 0323, 0335, 0245, 0244, 0326, 0324, 'e', 'k', 0224,
0250, 0270, 0263, 0270, 'Z', 024, 0246, 0240, 'w', 'Q', '/', 'S', 010, 0217, 027, 0364,
0275, 0372, 'k', 0134, 0216, '2', 0222, 0245, ')', 0304, 0265, 'V', '/', 'R', 015, '%',
0237, '-', 'i', 0134, 'E', 0377, 027, 'j', '5', 'L', 0202, '8', '=', 0311, 0321, 0237,
'+', 0267, 0212, 0214, 0203, 'Q', 'I', 0344, 0256, 0214, 'z', 0326, 'l', 0343, 0353, 'D',
'8', 'C', 'L', 0325, 04, 01, 0322, 0237, 0211, 'O', '{', 0221, 0350, 0341, 0245, 0257,
0236, '$', 0304, 0361, 0334, 0341, 0323, '/', 0340, 0354, 'L', 'T', 'a', 0320, 0267, 0324,
's', 0367, 'b', 0355, 0262, 0356, 0326, '^', '_', 0255, 0245, 'T', 'w', '3', 0210, 0302,
0341, 0350, 'v', 'W', 'i', 0223, '[', 0134, 0323, 0333, 0210, 0355, 'o', 0320, 0255, ')',
0313, 0245, 0231, 015, 0345, 0233, 'u', 034, '(', 0367, 0230, 'g', 'y', 0331, 0276, 'C',
0333, 'V', 0262, 0363, 0235, 0265, 'n', 0372, 0214, ' ', 0377, 01, 0305, 037, 0275, 'a',
0356, 0250, '5', 0250, 0251, 0327, 0350, 0370, '7', 'k', 020, 'E', 0335, '!', 0351, '>',
's', 0276, 0354, 0221, ']', '<', 0270, 0213, 0214, 'u', 016, 0361, '8', '/', 'z', 0217,
0333, '~', 0236, 't', '3', 0207, 07, 'L', 013, 0, 034, 0205, 024, 'k', 02, 03,
01, 0, 01, 0243, '2', '0', '0', '0', 017, 06, 03, 'U', 035, 021, 04, 010,
'0', 06, 0207, 04, 0177, 0, 0, 01, '0', 035, 06, 03, 'U', 035, 016, 04,
026, 04, 024, 0230, 0201, 'I', 0271, 0273, 0316, 'e', 'T', 0252, '[', 0245, 0307, 0304,
0134, '$', 0241, 0304, 0223, 0222, 'E', '0', 015, 06, 011, '*', 0206, 'H', 0206, 0367,
015, 01, 01, 013, 05, 0, 03, 0202, 01, 01, 0, 0306, 0223, 0303, 0234, 037,
';', 0223, 'v', 047, 0201, 0305, 0307, 0226, 013, 0356, 0212, 01, '+', 07, 'u', 'm',
'M', '_', 'Q', '=', 0320, 0220, 06, ',', 0226, '_', 0340, 0355, 'b', 'G', 'J', 'K',
0267, 0225, 0310, 0315, '%', 0134, 0334, 'j', '^', 0253, 0245, 02, 011, 'Y', ',', '&',
':', 0310, 0246, 0243, '!', 'A', '~', '.', 0365, 0242, 0204, 0323, 0221, 'X', 0343, 'V',
0200, 011, 'h', 0344, 'E', 0230, 'O', 0353, 's', 'K', 0347, 'J', 0262, 0342, '!', 0246,
01, 014, 0367, 0311, 0213, 0325, 0270, '3', 0250, 034, 015, 'i', 'S', 0207, 0225, 0255,
0264, 06, '6', 'S', 'V', 0261, '+', 0203, 'e', '^', 0354, 'F', '2', 'B', 0314, 04,
0374, '5', 'Z', 0326, '+', 0347, 0204, 0205, 0214, 0333, 0233, 0364, 0330, '7', 023, 0362,
0177, 0237, 'Q', 0336, 'E', 0376, 0232, 'k', '/', 047, 'F', 0216, '-', 04, 0226, 's',
'C', '4', 07, 0201, ',', '~', 0340, 0323, 0267, 0330, 0272, 0237, 0270, 0236, 0357, '#',
011, 0206, 'J', 'k', 0270, 0220, 020, 0362, 011, 0222, 0273, 0211, 0311, 0203, 'k', '~',
'H', 0333, 0231, 'q', 0244, '#', 0246, 0241, '7', 023, 0265, '4', 0357, 0224, 0361, 01,
0271, 0246, 0374, 0323, 036, 0255, ':', '!', 'O', 'i', 'S', 0315, 04, 015, 0244, 0304,
0261, 'F', ' ', 'l', 'z', '2', 0237, 0263, 0301, 'D', 0241, 0263, 0336, 017, 0217, 0317,
'l', 'v', 0257, 'z', 0336, 'd', 0257, 01, '-', 0333, 0357, 0234, 0302, 0367, 'W', 0367,
'N', 0372, 0326, 'x', 0231, 0215, 0302, 'J', '_', '+', 'U', '+', 0355, '}', 'p', 'u',
'8', 0223, 06, '~', 0364, 0327, 'J', '_', 'n', 'W', 0331, 0323, 0347, 03, 'v', 012,
};
static const unsigned char truststore_jks[1020] = {
0376, 0355, 0376, 0355, 0, 0, 0, 02, 0, 0, 0, 01, 0, 0, 0, 02,
0, 012, 't', 'r', 'u', 's', 't', 's', 't', 'o', 'r', 'e', 0, 0, 01, 'I',
0206, 0356, 0375, '9', 0, 05, 'X', '.', '5', '0', '9', 0, 0, 03, 0270, '0',
0202, 03, 0264, '0', 0202, 02, 0234, 0240, 03, 02, 01, 02, 02, 04, 031, 0273,
0237, 0223, '0', 015, 06, 011, '*', 0206, 'H', 0206, 0367, 015, 01, 01, 013, 05,
0, '0', 0201, 0200, '1', 013, '0', 011, 06, 03, 'U', 04, 06, 023, 02, 'U',
'S', '1', 023, '0', 021, 06, 03, 'U', 04, 010, 023, 012, 'C', 'a', 'l', 'i',
'f', 'o', 'r', 'n', 'i', 'a', '1', 024, '0', 022, 06, 03, 'U', 04, 07, 023,
013, 'S', 'a', 'n', 't', 'a', ' ', 'C', 'l', 'a', 'r', 'a', '1', 026, '0', 024,
06, 03, 'U', 04, 012, 023, 015, 'D', 'a', 't', 'a', 'S', 't', 'a', 'x', ' ',
'I', 'n', 'c', '.', '1', 032, '0', 030, 06, 03, 'U', 04, 013, 023, 021, 'D',
'r', 'i', 'v', 'e', 'r', 's', ' ', 'a', 'n', 'd', ' ', 'T', 'o', 'o', 'l', 's',
'1', 022, '0', 020, 06, 03, 'U', 04, 03, 023, 011, '1', '2', '7', '.', '0',
'.', '0', '.', '1', '0', ' ', 027, 015, '1', '4', '1', '1', '0', '6', '2', '1',
'0', '7', '2', '6', 'Z', 030, 017, '2', '1', '1', '4', '1', '0', '1', '3', '2',
'1', '0', '7', '2', '6', 'Z', '0', 0201, 0200, '1', 013, '0', 011, 06, 03, 'U',
04, 06, 023, 02, 'U', 'S', '1', 023, '0', 021, 06, 03, 'U', 04, 010, 023,
012, 'C', 'a', 'l', 'i', 'f', 'o', 'r', 'n', 'i', 'a', '1', 024, '0', 022, 06,
03, 'U', 04, 07, 023, 013, 'S', 'a', 'n', 't', 'a', ' ', 'C', 'l', 'a', 'r',
'a', '1', 026, '0', 024, 06, 03, 'U', 04, 012, 023, 015, 'D', 'a', 't', 'a',
'S', 't', 'a', 'x', ' ', 'I', 'n', 'c', '.', '1', 032, '0', 030, 06, 03, 'U',
04, 013, 023, 021, 'D', 'r', 'i', 'v', 'e', 'r', 's', ' ', 'a', 'n', 'd', ' ',
'T', 'o', 'o', 'l', 's', '1', 022, '0', 020, 06, 03, 'U', 04, 03, 023, 011,
'1', '2', '7', '.', '0', '.', '0', '.', '1', '0', 0202, 01, '"', '0', 015, 06,
011, '*', 0206, 'H', 0206, 0367, 015, 01, 01, 01, 05, 0, 03, 0202, 01, 017,
0, '0', 0202, 01, 012, 02, 0202, 01, 01, 0, 0277, 0317, 'w', 0216, ',', 0303,
020, 0323, 'V', 0267, 0375, '[', 'T', '#', 0206, 07, 0233, 0254, '|', 'H', 'I', 't',
0235, 0367, '|', 0322, 'C', 0, 'w', 037, 'Q', '$', 'q', 06, 0347, 0222, 020, 0301,
'p', 0362, 'V', 'j', '"', 0320, 024, 0236, 0251, 0331, 0350, 0243, 0354, 0207, 0320, 037,
05, '"', 0376, 0267, '?', 'i', 0352, '`', 0361, 025, 'a', 'W', '$', '/', '[', 0,
0203, 0351, '^', 'E', 0303, 0301, 0265, 0251, 0313, 0344, 0320, 021, 'r', 'F', 026, '|',
0252, 0266, 0333, 'O', 0366, 0356, 03, '?', 'i', 0217, ' ', 'X', 0271, 0210, 0306, 0232,
0213, 'J', 0225, 05, 0371, 0303, 03, 0365, 'n', 0366, 'd', '8', 0247, 0243, 03, 0347,
0261, 023, 0177, 0371, 0227, 0260, 'q', 'U', 0323, 0342, 0377, 'v', 'C', 'y', '{', 0342,
'l', 0303, '^', '$', 0235, '%', 0257, 'I', 0335, 0374, 0323, 0374, 'x', 016, '[', 037,
0254, 014, 0363, 025, 'j', 0337, 0365, '.', 0222, 0347, 0346, 0260, 0273, 010, 0210, '|',
0377, '1', 0313, 0235, 'U', 'Z', 0341, 0310, 0220, 024, 037, 0231, 'd', 'S', 0256, 'V',
'0', 0253, 'F', 'M', 016, 021, 0223, 014, '(', 036, 0222, 't', '?', '3', 0364, 0243,
'3', 010, ';', 030, 0256, '7', 014, 'g', 'n', '"', '@', 0370, '|', 'p', 'H', 0324,
'y', 0253, 0237, 'R', 's', 0317, 0255, 0332, 0324, 0357, 0373, 'a', 0243, 0204, 's', 0263,
0221, 010, 015, '&', 0240, 0206, 'i', 0211, 0234, 0217, 010, 'D', 0357, 0231, '{', 0350,
0342, 0212, 0242, 0327, 0322, '6', 0212, 0352, ' ', 017, 02, 03, 01, 0, 01, 0243,
'2', '0', '0', '0', 017, 06, 03, 'U', 035, 021, 04, 010, '0', 06, 0207, 04,
0177, 0, 0, 01, '0', 035, 06, 03, 'U', 035, 016, 04, 026, 04, 024, '0',
'z', 0213, 'C', 'E', 0262, 0351, 'J', '5', 0355, 0340, 0267, 024, 033, 0263, 0241, 0346,
037, 0273, 026, '0', 015, 06, 011, '*', 0206, 'H', 0206, 0367, 015, 01, 01, 013,
05, 0, 03, 0202, 01, 01, 0, 'Z', 'X', 'l', 0364, '%', 0376, 025, 'H', 0343,
'z', 'q', 0275, 'l', 030, 0337, 'H', 'w', 0274, 0317, 0227, 0322, 'j', 0367, 'p', 'u',
0344, 0345, 'm', 0321, 0342, 0222, ':', 016, 0206, 'R', 027, 0220, 'p', 0330, 'A', 0247,
0265, 017, 'i', 0361, 06, 0326, '4', 0357, 'A', 'G', 'v', 'b', '`', 0361, 0300, 0352,
'U', '-', '$', '<', 0271, 0344, '?', 'W', 0221, 'N', 01, 037, 013, 0201, 0233, 0207,
'q', 0251, '!', 'k', 0240, 03, 0246, 0305, 0326, 013, 'g', 0355, 0214, 0272, '%', 'S',
0304, 0307, 0326, '[', 'N', 'd', 0214, 030, 0250, 0134, 037, 'A', 'u', 0256, 0243, 0330,
0360, 0226, 0307, '8', 0251, 0376, '_', 0206, 0364, '~', 'I', 'O', 0205, 030, '^', 035,
0302, 0, '/', 'u', 011, 0134, 'x', 't', 011, ' ', 020, 0234, 012, 0325, ' ', 0203,
0375, 013, 'P', 'b', 0214, 0301, 'X', 0232, 0317, 036, 0367, 'y', '/', 0340, 0315, 013,
032, 't', 0263, 0215, 0262, 0326, 0253, 0223, '#', 034, 0351, 0232, 0361, 0352, 0224, 0240,
'/', 0250, 033, 0226, 0255, 0325, 0363, 0262, 'N', 0205, '*', '4', '#', 0306, 0351, 0353,
0264, 0264, 0211, 0335, '!', 0254, 0351, '6', 033, 0225, '=', 037, 021, 0205, 'F', '~',
0202, 'T', '~', 0367, 0246, 0236, 022, 0314, '`', 'n', 's', 0365, 0271, 0366, 0223, 0223,
0316, 0373, 0315, '2', 06, 0224, '5', 0357, 011, 'i', 010, 0234, 0272, 020, 0374, 'H',
'h', 031, 0316, 0227, 0364, '<', '5', 'p', 0264, 0232, 0134, 0204, 0217, 'e', 'V', 01,
0205, 0337, 0361, 0217, 'X', 0275, 0371, 0213, 0255, 01, 0230, 0371, 0245, 0312, 'M', 0256,
0363, 0274, 0356, '|', '$', '*', 0316, 0242, 0276, 0311, 0217, 012,
};
class SslCertificates {
public:
static const char* cassandra_pem() {
return "-----BEGIN CERTIFICATE-----\12"
"MIIDtDCCApygAwIBAgIEHJOKVzANBgkqhkiG9w0BAQsFADCBgDELMAkGA1UEBhMCVVMxEzARBgNV\12"
"BAgTCkNhbGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMRYwFAYDVQQKEw1EYXRhU3RheCBJ\12"
"bmMuMRowGAYDVQQLExFEcml2ZXJzIGFuZCBUb29sczESMBAGA1UEAxMJMTI3LjAuMC4xMCAXDTE0\12"
"MTEwNjIxMDcyNVoYDzIxMTQxMDEzMjEwNzI1WjCBgDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh\12"
"bGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMRYwFAYDVQQKEw1EYXRhU3RheCBJbmMuMRow\12"
"GAYDVQQLExFEcml2ZXJzIGFuZCBUb29sczESMBAGA1UEAxMJMTI3LjAuMC4xMIIBIjANBgkqhkiG\12"
"9w0BAQEFAAOCAQ8AMIIBCgKCAQEA17rsAAH3Y4nVdDYUfuSMKexzuOI7Zyj4R8f5QyUwOyC07X1z\12"
"pVKnKHrT3aWk1tRla5SouLO4WhSmoHdRL1MIjxf0vfprXI4ykqUpxLVWL1INJZ8taVxF/xdqNUyC\12"
"OD3J0Z8rt4qMg1FJ5K6MetZs4+tEOENM1QQB0p+JT3uR6OGlr54kxPHc4dMv4OxMVGHQt9Rz92Lt\12"
"su7WXl+tpVR3M4jC4eh2V2mTW1zT24jtb9CtKculmQ3lm3UcKPeYZ3nZvkPbVrLznbVu+owg/wHF\12"
"H71h7qg1qKnX6Pg3axBF3SHpPnO+7JFdPLiLjHUO8Tgveo/bfp50M4cHTAsAHIUUawIDAQABozIw\12"
"MDAPBgNVHREECDAGhwR/AAABMB0GA1UdDgQWBBSYgUm5u85lVKpbpcfEXCShxJOSRTANBgkqhkiG\12"
"9w0BAQsFAAOCAQEAxpPDnB87k3YngcXHlgvuigErB3VtTV9RPdCQBiyWX+DtYkdKS7eVyM0lXNxq\12"
"XqulAglZLCY6yKajIUF+LvWihNORWONWgAlo5EWYT+tzS+dKsuIhpgEM98mL1bgzqBwNaVOHla20\12"
"BjZTVrErg2Ve7EYyQswE/DVa1ivnhIWM25v02DcT8n+fUd5F/pprLydGji0ElnNDNAeBLH7g07fY\12"
"up+4nu8jCYZKa7iQEPIJkruJyYNrfkjbmXGkI6ahNxO1NO+U8QG5pvzTHq06IU9pU80EDaTEsUYg\12"
"bHoyn7PBRKGz3g+Pz2x2r3reZK8BLdvvnML3V/dO+tZ4mY3CSl8rVQ==\12"
"-----END CERTIFICATE-----\12";
}
static const char* driver_pem() {
return "-----BEGIN CERTIFICATE-----\12"
"MIIDtDCCApygAwIBAgIEGbufkzANBgkqhkiG9w0BAQsFADCBgDELMAkGA1UEBhMCVVMxEzARBgNV\12"
"BAgTCkNhbGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMRYwFAYDVQQKEw1EYXRhU3RheCBJ\12"
"bmMuMRowGAYDVQQLExFEcml2ZXJzIGFuZCBUb29sczESMBAGA1UEAxMJMTI3LjAuMC4xMCAXDTE0\12"
"MTEwNjIxMDcyNloYDzIxMTQxMDEzMjEwNzI2WjCBgDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh\12"
"bGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMRYwFAYDVQQKEw1EYXRhU3RheCBJbmMuMRow\12"
"GAYDVQQLExFEcml2ZXJzIGFuZCBUb29sczESMBAGA1UEAxMJMTI3LjAuMC4xMIIBIjANBgkqhkiG\12"
"9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv893jizDENNWt/1bVCOGB5usfEhJdJ33fNJDAHcfUSRxBueS\12"
"EMFw8lZqItAUnqnZ6KPsh9AfBSL+tz9p6mDxFWFXJC9bAIPpXkXDwbWpy+TQEXJGFnyqtttP9u4D\12"
"P2mPIFi5iMaai0qVBfnDA/Vu9mQ4p6MD57ETf/mXsHFV0+L/dkN5e+Jsw14knSWvSd380/x4Dlsf\12"
"rAzzFWrf9S6S5+awuwiIfP8xy51VWuHIkBQfmWRTrlYwq0ZNDhGTDCgeknQ/M/SjMwg7GK43DGdu\12"
"IkD4fHBI1Hmrn1Jzz63a1O/7YaOEc7ORCA0moIZpiZyPCETvmXvo4oqi19I2iuogDwIDAQABozIw\12"
"MDAPBgNVHREECDAGhwR/AAABMB0GA1UdDgQWBBQweotDRbLpSjXt4LcUG7Oh5h+7FjANBgkqhkiG\12"
"9w0BAQsFAAOCAQEAWlhs9CX+FUjjenG9bBjfSHe8z5fSavdwdeTlbdHikjoOhlIXkHDYQae1D2nx\12"
"BtY070FHdmJg8cDqVS0kPLnkP1eRTgEfC4Gbh3GpIWugA6bF1gtn7Yy6JVPEx9ZbTmSMGKhcH0F1\12"
"rqPY8JbHOKn+X4b0fklPhRheHcIAL3UJXHh0CSAQnArVIIP9C1BijMFYms8e93kv4M0LGnSzjbLW\12"
"q5MjHOma8eqUoC+oG5at1fOyToUqNCPG6eu0tIndIazpNhuVPR8RhUZ+glR+96aeEsxgbnP1ufaT\12"
"k877zTIGlDXvCWkInLoQ/EhoGc6X9Dw1cLSaXISPZVYBhd/xj1i9+Q==\12"
"-----END CERTIFICATE-----\12";
}
static const char* driver_private_pem() {
return "-----BEGIN RSA PRIVATE KEY-----\12"
"Proc-Type: 4,ENCRYPTED\12"
"DEK-Info: AES-128-CBC,07B2EF76F08F6003153F7CE9CB7189AD\12"
"\12"
"ryRg2/wWRw26pTYtuV9OZwsePj7O3bDXgElpyeByTc/XEWz4Pq3hc5zl2ioe2JeL\12"
"ImOsnqRpBaasybSeD5pfat6On7EXYpw72jixklQk8TTiBUSaGzXVkm3QPkFm8prC\12"
"52X9XDWqj0EzkI1gdK/BWLIU2spiIlrWlLq5r5QDFi2uvK1w2bxlKs/g8BZsOUMg\12"
"vNk55hd9RonUu0egyUaynSm5LhaK6h0l8+afiaJEKyMvR8fHea/qdleDu8kKjad2\12"
"81zy5rv5CXRogZbrAu7LWFmYOXzD8G/SGH0jtLVcEzZxy/krEFbrm4tDrcWbTPZI\12"
"fqXwtbx7zBzcVL5V9bH6sMbaEVdkHMLrHwBsGJt38qZcYal/MtRh4ovnfNTGhiNh\12"
"oX9ceBsD8J3Wgd6GUa78y1gGziO9u1PUOqnH/4mv8jtdeoH1fGXW91jBy/2czWi2\12"
"ACOOW4GhljKPIGyPdC4b2EkVYpmLSIJC3173zBAukzFDTf/ik3NMv+fWilcIDl+L\12"
"VvoUKa+xwH9bBAlaSBax93EeMCI2LrNKkgrpAXnPeaPSliXGFj+3dbNFZ8ievSiq\12"
"fpZ2tqaBa66lwRllty7SbW5jdMUKzQX3zcezwyVOyc+FkPO6j/MwKevAuTl/iSKx\12"
"LpYrOQ3USi+e0gDY7HGVBazwK/aakkK+Nbl91gC+iufo5G+/EpesFs2qGTSUWynt\12"
"UG+BeJo6miVbMMOvl9/rMPCHOu88ecXr5QSmQI5vceb4RyORRd/ogB8/M+0KQu38\12"
"3IVS7kuuQKoR4s2Q4TFF0t8MHQ9XA7m2BzUVm1C958ET+rOYfsKUPZTJwVCmllTV\12"
"fuC53gr1SH1rHgD8w/Rv8Th59NI/TJYIzUpofoRhJP9A9ryhJY9zvX0X2EoDI1OJ\12"
"J2rB8ZTLbA6/nWDmCANC+Wa9LP3ArKo+bi0Vdzjrt/1jyhThd9wG85y0WdO108mr\12"
"7LYhPhKAPuvvfY6X54GRZOI3vU3UkR8A8KFfjbQAPvRSnhThLbEJLqb+bq0azSnz\12"
"qol1K6FDhHCPOY+emoQyAYXINOK2RqzSjFc3mL4nVI/9L4tn7O67OFtEt4eZl3kK\12"
"EqWRH48FPlBdyRoR572Z5u0cKqcpDCWdxIP7Yo99+AgoCHtzHGolBJzxEmJXUfEJ\12"
"T4RQ3ufXZicOhIn7JF3+Q1ZxHueazYeYAcI179fyZ1liDyY+rfLcwO/8/xtO1Rde\12"
"nNLbCpMyflJGoiayDbpXUaqJ02Ag5MG0dsocYjK8g1IlRpYx12MqdRHK2bGIOoNR\12"
"PedHkYYoOCKzM8YGD9JeadAl2ljcrChoL4anacbm5j4IQ+goL3k5BwITXwFR7jnD\12"
"LS3dvoUAgtbs+hiLEsQ/o2jLhG0MzF/TAwJH2Lk7vMKpxrTwtmFjJMr04rq6hmIX\12"
"o/pDyWSlKCrf9SSJM9trJ1pWQZZLjBRCSRwMU5Z6+yIntAuIyQyQ+s5Ny0mZqd5v\12"
"yS+9SG411TWou2l+Kl+O1Uk+HiIvMF6konjqLWGkdBh6xGUo1ZtUvT8T0NZ+bCnR\12"
"HKYjq/buZugYcAxbYGAxuQSTpJouOEiW8hQGG37cWgjBGmuQq5PNbWO68X8CPG6h\12"
"-----END RSA PRIVATE KEY-----\12";
}
static const char* cassandra_invalid_pem() {
return "-----BEGIN CERTIFICATE-----\12"
"MIIDjTCCAnWgAwIBAgIEaDbI+DANBgkqhkiG9w0BAQsFADBsMRAwDgYDVQQGEwdJTlZBTElEMRAw\12"
"DgYDVQQIEwdJTlZBTElEMRAwDgYDVQQHEwdJTlZBTElEMRAwDgYDVQQKEwdJTlZBTElEMRAwDgYD\12"
"VQQLEwdJTlZBTElEMRAwDgYDVQQDEwdJTlZBTElEMCAXDTE0MTEwNjIxMTA0MFoYDzIxMTQxMDEz\12"
"MjExMDQwWjBsMRAwDgYDVQQGEwdJTlZBTElEMRAwDgYDVQQIEwdJTlZBTElEMRAwDgYDVQQHEwdJ\12"
"TlZBTElEMRAwDgYDVQQKEwdJTlZBTElEMRAwDgYDVQQLEwdJTlZBTElEMRAwDgYDVQQDEwdJTlZB\12"
"TElEMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhJ1PIFcIQ5ae8vKmR9C259JSJLR1\12"
"uzHA7vVnMxI01t/D9oyGT4uZTQdulB+CAdiRDoiYVHtAyiWKlTPHJYOhFEv+eUWtpEkrP/CVG1sz\12"
"tyT4Gu7fyI2EuGkn7UExkudUs4bhJ3hXGqNzK8mohlXphOu6pGucRJD/EhGfUb8g4dLpnRYSz4ej\12"
"v0X05HGRJT9iQDjahw2OPfp7kcuA1+qjW0hQLC/9IbhvS2Ht/FolC1eHiVf+6w7/l+JzKyv2iAjV\12"
"fx4r7zawUcoShuCdChaVRRGg7MOn6gcnFhl7j3EeOZy99WCTZRR6Vu69UKL5muIAGfSbd1kgeZSt\12"
"5R3tyHu+xQIDAQABozUwMzASBgNVHREECzAJggdJTlZBTElEMB0GA1UdDgQWBBQXzNgc4d/tmfCG\12"
"oQwcntCTgAyQqjANBgkqhkiG9w0BAQsFAAOCAQEAPoImWo5R8i1R3UXOnHu8ZczgBKsGmEbzxk2l\12"
"3xe8a37uUtRyWt/rQlpTdT4Q8J7/W4yBQqdKkkjh6YCiTHysN/RrwwXLw7qRqew+vmALIjI916Z5\12"
"Bzi35rZ4lTZ1Dx+Dnw/kaXzRyesKt2kb9gYD2GRvxLFoJ64I6MioqUhk3rKkNtRep4uXIkB+uz0K\12"
"A9UxF3Hd0GeWw3lYkX46jhbK5EnVYc6CCtXyjUA0VBjjCTTfCP1nSc+/VWGFW1LMcw8bsjWX7xyW\12"
"DCqT/N2ui77Ea4uCAaDkRwhTXxYQlSQLnT//43SEoOLoqI7x8hWht1E/0Dfhz68J+HU98tAY6Mk7\12"
"sQ==\12-----END CERTIFICATE-----\12";
}
static const char* driver_invalid_pem() {
return "-----BEGIN CERTIFICATE-----\12"
"MIID6jCCAtKgAwIBAgIEBshxwjANBgkqhkiG9w0BAQsFADCBljEXMBUGA1UEBhMORFJJVkVSLUlO\12"
"VkFMSUQxFzAVBgNVBAgTDkRSSVZFUi1JTlZBTElEMRcwFQYDVQQHEw5EUklWRVItSU5WQUxJRDEX\12"
"MBUGA1UEChMORFJJVkVSLUlOVkFMSUQxFzAVBgNVBAsTDkRSSVZFUi1JTlZBTElEMRcwFQYDVQQD\12"
"Ew5EUklWRVItSU5WQUxJRDAgFw0xNDExMDYyMTEwNDFaGA8yMTE0MTAxMzIxMTA0MVowgZYxFzAV\12"
"BgNVBAYTDkRSSVZFUi1JTlZBTElEMRcwFQYDVQQIEw5EUklWRVItSU5WQUxJRDEXMBUGA1UEBxMO\12"
"RFJJVkVSLUlOVkFMSUQxFzAVBgNVBAoTDkRSSVZFUi1JTlZBTElEMRcwFQYDVQQLEw5EUklWRVIt\12"
"SU5WQUxJRDEXMBUGA1UEAxMORFJJVkVSLUlOVkFMSUQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw\12"
"ggEKAoIBAQCp8z0FEEFDNJUbT5L4TIUGGWzqaMz8iQVP7p4vjPsUmQX6OGjnnZlOoKfhr+S8/pZm\12"
"7B70z9pExZyeKaOzsmYMV3042/jVb+AL1nPki4lhmei6SHjAYvr1VNInPwbA/mx3K0ZCuJrJVhxJ\12"
"zGoWO+RzoWg3IG6cfNOxMXUzTEJ8z7nJWoHbmFu3aXNuPjRygSV6vPgFCSLjN4wLUq5jdxcP1dXl\12"
"FDk0JQIG1Z1WVKrmg19CDMD53QscHiXCuFiPcBKZgaTJujZsvk9NtWYZzVIb4+itIR9mol1+IKzp\12"
"JtPyqyV8VJPcmB1VVS/EJIzaJSnv0lE39tlEXTzgs1Ym9O17AgMBAAGjPDA6MBkGA1UdEQQSMBCC\12"
"DkRSSVZFUi1JTlZBTElEMB0GA1UdDgQWBBRat7P/qYqIRx1QMGfRUSD0IEQXYTANBgkqhkiG9w0B\12"
"AQsFAAOCAQEAPGXXJlmszaLvtdtwb63tniyO1/44dMVkRlSkZbcn0evjmxN1Jrf7l7C41jTfLlU4\12"
"dQ+USKxd+Sx2pNWmQi9NmH8vK/ozhF+M0qWTF/IiZHKShEcsYoSDUN+q9fqUVK1ABtzE9qKb9nn4\12"
"Ts0ZUKvFXEUKzsFmf8tZYRFn7NFntXuFxDMVxrYkyRAlwJE31pZ5slZvwTSgik6OYnEd38BfuAHb\12"
"OVRCz+y7NMcfwKD+DsKDwAgw6cJ8uprSHf1LkJ0KcXVlcapSynuEJVdwXKQqR+e5/CXUi/6+QY0M\12"
"cAHazCFHOKxSQ/G7n+8xDx3r6jHxyE956u5jf5FRqUbaVIBMdg==\12"
"-----END CERTIFICATE-----\12";
}
static const char* driver_private_invalid_pem() {
return "-----BEGIN CERTIFICATE-----\12"
"MIID6jCCAtKgAwIBAgIEBshxwjANBgkqhkiG9w0BAQsFADCBljEXMBUGA1UEBhMORFJJVkVSLUlO\12"
"VkFMSUQxFzAVBgNVBAgTDkRSSVZFUi1JTlZBTElEMRcwFQYDVQQHEw5EUklWRVItSU5WQUxJRDEX\12"
"MBUGA1UEChMORFJJVkVSLUlOVkFMSUQxFzAVBgNVBAsTDkRSSVZFUi1JTlZBTElEMRcwFQYDVQQD\12"
"Ew5EUklWRVItSU5WQUxJRDAgFw0xNDExMDYyMTEwNDFaGA8yMTE0MTAxMzIxMTA0MVowgZYxFzAV\12"
"BgNVBAYTDkRSSVZFUi1JTlZBTElEMRcwFQYDVQQIEw5EUklWRVItSU5WQUxJRDEXMBUGA1UEBxMO\12"
"RFJJVkVSLUlOVkFMSUQxFzAVBgNVBAoTDkRSSVZFUi1JTlZBTElEMRcwFQYDVQQLEw5EUklWRVIt\12"
"SU5WQUxJRDEXMBUGA1UEAxMORFJJVkVSLUlOVkFMSUQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw\12"
"ggEKAoIBAQCp8z0FEEFDNJUbT5L4TIUGGWzqaMz8iQVP7p4vjPsUmQX6OGjnnZlOoKfhr+S8/pZm\12"
"7B70z9pExZyeKaOzsmYMV3042/jVb+AL1nPki4lhmei6SHjAYvr1VNInPwbA/mx3K0ZCuJrJVhxJ\12"
"zGoWO+RzoWg3IG6cfNOxMXUzTEJ8z7nJWoHbmFu3aXNuPjRygSV6vPgFCSLjN4wLUq5jdxcP1dXl\12"
"FDk0JQIG1Z1WVKrmg19CDMD53QscHiXCuFiPcBKZgaTJujZsvk9NtWYZzVIb4+itIR9mol1+IKzp\12"
"JtPyqyV8VJPcmB1VVS/EJIzaJSnv0lE39tlEXTzgs1Ym9O17AgMBAAGjPDA6MBkGA1UdEQQSMBCC\12"
"DkRSSVZFUi1JTlZBTElEMB0GA1UdDgQWBBRat7P/qYqIRx1QMGfRUSD0IEQXYTANBgkqhkiG9w0B\12"
"AQsFAAOCAQEAPGXXJlmszaLvtdtwb63tniyO1/44dMVkRlSkZbcn0evjmxN1Jrf7l7C41jTfLlU4\12"
"dQ+USKxd+Sx2pNWmQi9NmH8vK/ozhF+M0qWTF/IiZHKShEcsYoSDUN+q9fqUVK1ABtzE9qKb9nn4\12"
"Ts0ZUKvFXEUKzsFmf8tZYRFn7NFntXuFxDMVxrYkyRAlwJE31pZ5slZvwTSgik6OYnEd38BfuAHb\12"
"OVRCz+y7NMcfwKD+DsKDwAgw6cJ8uprSHf1LkJ0KcXVlcapSynuEJVdwXKQqR+e5/CXUi/6+QY0M\12"
"cAHazCFHOKxSQ/G7n+8xDx3r6jHxyE956u5jf5FRqUbaVIBMdg==\12"
"-----END CERTIFICATE-----\12";
}
static const char* multi_cert_pem() {
std::string combo = driver_invalid_pem();
combo.append("\n");
combo.append(cassandra_pem());
return combo.c_str();
}
static const char* driver_private_pem_password() { return "driver"; }
static void write_ccm_server_files() {
std::string ssl_path = Utils::temp_directory() + Utils::PATH_SEPARATOR + "ssl";
Utils::mkdir(ssl_path);
{
std::string file = ssl_path + Utils::PATH_SEPARATOR + "cassandra.crt";
std::ofstream out(file.c_str(), std::ios::binary | std::ios::trunc);
out.write(reinterpret_cast<char const*>(cassandra_crt), sizeof(cassandra_crt));
}
{
std::string file = ssl_path + Utils::PATH_SEPARATOR + "keystore.jks";
std::ofstream out(file.c_str(), std::ios::binary | std::ios::trunc);
out.write(reinterpret_cast<char const*>(keystore_jks), sizeof(keystore_jks));
}
{
std::string file = ssl_path + Utils::PATH_SEPARATOR + "truststore.jks";
std::ofstream out(file.c_str(), std::ios::binary | std::ios::trunc);
out.write(reinterpret_cast<char const*>(truststore_jks), sizeof(truststore_jks));
}
}
};
} // namespace test
#endif