blob: ac13f856af5fa18a832778b91168922422c07a68 [file] [log] [blame]
/*
* 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.
*/
#include "TlsHelper.h"
#include "MixAll.h"
#include "OpenSSLCompatible.h"
#include <memory>
#include <openssl/hmac.h>
ROCKETMQ_NAMESPACE_BEGIN
std::string TlsHelper::sign(const std::string& access_secret, const std::string& content) {
HMAC_CTX* ctx = HMAC_CTX_new();
HMAC_Init_ex(ctx, access_secret.c_str(), access_secret.length(), EVP_sha1(), nullptr);
HMAC_Update(ctx, reinterpret_cast<const unsigned char*>(content.c_str()), content.length());
auto result = new unsigned char[EVP_MD_size(EVP_sha1())];
unsigned int len;
HMAC_Final(ctx, result, &len);
HMAC_CTX_free(ctx);
std::string hex_str = MixAll::hex(result, len);
delete[] result;
return hex_str;
}
const char* TlsHelper::CA = R"(
-----BEGIN CERTIFICATE-----
MIIGCDCCA/CgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZwxCzAJBgNVBAYTAkNO
MRIwEAYDVQQIDAlaaGUgSmlhbmcxEjAQBgNVBAcMCUhhbmcgWmhvdTEPMA0GA1UE
CgwGQXBhY2hlMREwDwYDVQQLDAhSb2NrZXRNUTEcMBoGA1UEAwwTcm9ja2V0bXEu
YXBhY2hlLm9yZzEjMCEGCSqGSIb3DQEJARYUbGl6aGFuaHVpQGFwYWNoZS5vcmcw
HhcNMjEwNDI1MDkwMjE5WhcNMzEwNDIzMDkwMjE5WjCBiDELMAkGA1UEBhMCQ04x
EjAQBgNVBAgMCVpoZSBKaWFuZzEPMA0GA1UECgwGQXBhY2hlMREwDwYDVQQLDAhS
b2NrZXRNUTEcMBoGA1UEAwwTcm9ja2V0bXEuYXBhY2hlLm9yZzEjMCEGCSqGSIb3
DQEJARYUbGl6aGFuaHVpQGFwYWNoZS5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDLL1rQ3A6YnWwdAT3rcf7wXK2DN6AwkWfGexp5o8y+dPj49D5b
PhEVIDEjidtWASFfCunJq9Ku48K/U8tha58JPL2CJ3773Mw7CU3LwD46Ft32+kGM
3+rXuXi44Fs714U/jJkxA6AsJdl4VtgjfXGWhbTq7ZT//l3tECH7Q096cp4xXATx
0RuvlaE33k8SpOPB+oHyjdFTwSW9HuZx71dLNCoZ0b52teJDVJFMACz6R5t3ZglF
MUosUzEUKdCXqBDvjOzMI2GHr7NYKAWHnOPNcYbf8jKzQ5msW+1MOfacVX+YUmKr
4Tf8NZHTSA4MuSNZ46gVFK7tYau2FDAkBWSb4hnuqqoGn58QtwrRBWtCmnLc4133
6sgEGoJJR5M7WF0usl7KAgqgwy6xdU1joHO4SzvpysQ9kHWr1hcTqpeLD/svxLpZ
3x0WrhIAQoyd4uIHv/501LgD2KE5YnBa4S10LYrZeQpoJO5YV56HJdyvqNgVh2fn
tIRJAKq/1Wvw6izK/zOC6ZC+ug3n9vPqCgpBI0NFm3aR4AcSx70FsmlfrjUAsluL
kIzQwuu3Ip7hUS9kBVUxmvaD2yy2HPc+UPiYm4Y2YxqTx2j11APbN32M8rj1mroE
d9JFUV3WjbY+1QEAQ9upWTJLnOzS4a8yNsXIdMoKeU68Lyi/F3wA9ciK9wIDAQAB
o2YwZDAdBgNVHQ4EFgQUebBfwZjpYrRBUX9XL89qA0LzaXEwHwYDVR0jBBgwFoAU
3NYFR3h8OuGYCHVl1gk2yFoM8LIwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8B
Af8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAJdwY+mAgtdAkVB8gRwcql7YdmWM
vlc3OYr14DHQT8eN5ItGou8MvTUR3wxCz72788/GHG1dLl54cnxzWjLgZZdapfQL
hsl1Iz6JSzyMTrNZ0HiuRw9J5XnRUIhWAO9fpRV4f/ce9J4o9YMFt//GW9WJrL59
860gNL+L1IaWDWdnPlTYnQc3ndhnStelURANtsDp808t5RO8w94/Tp/6+KgqXwSj
uAxeHNVoMcNcr/Cff/fkLXQjSlSnpX7+Yf4y9pPSq7z6QHdsfSVq9FL51cXUdK5W
XRzkWK2QKp82CRz2jbrXd9Q7rjrWtDq8vgpKsZg+myLd55wPjiscM/vZmf4LjjFC
ubfKrclMh9CFtSsk38p21l3MBl4hyULsqVHAvz4jMrTaNB+1vYQ4OhgiqxB1KJff
hw2sHZfthHLm8W+mOma/LwA+u4QFE3ihq6bjgAZxte56HUuQwa7y4FifFcZi05ih
CnXNRo8Q8napmPTwtG9XKk9HQwLSMH+wTMnrV9R8Nt4ZkPlsJV8uY/zKOfOGHsY/
+nR5vQ046Y8MT9z26dZe5MUsGUf9706+yAQAQAwzZiYJ+HiWijAIVynITMAZuEh9
JfwS66kGVNOlwqMkbAEO61tuGFmy5iRBnXOoUM2mbaGVvnbS5iBCkH6M69oq5vip
42zKYBLmpEvL4PdS
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGIDCCBAigAwIBAgIJAN/jxbRuUfSjMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYD
VQQGEwJDTjESMBAGA1UECAwJWmhlIEppYW5nMRIwEAYDVQQHDAlIYW5nIFpob3Ux
DzANBgNVBAoMBkFwYWNoZTERMA8GA1UECwwIUm9ja2V0TVExHDAaBgNVBAMME3Jv
Y2tldG1xLmFwYWNoZS5vcmcxIzAhBgkqhkiG9w0BCQEWFGxpemhhbmh1aUBhcGFj
aGUub3JnMB4XDTIxMDQyNTA4NTMyMVoXDTQxMDQyMDA4NTMyMVowgZwxCzAJBgNV
BAYTAkNOMRIwEAYDVQQIDAlaaGUgSmlhbmcxEjAQBgNVBAcMCUhhbmcgWmhvdTEP
MA0GA1UECgwGQXBhY2hlMREwDwYDVQQLDAhSb2NrZXRNUTEcMBoGA1UEAwwTcm9j
a2V0bXEuYXBhY2hlLm9yZzEjMCEGCSqGSIb3DQEJARYUbGl6aGFuaHVpQGFwYWNo
ZS5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDWKlLdC6uqiPA9
egWqBxAmKCB47ALsh7gO0nxa/0Mkr/QsRfvUtRHMoTqxLJ/IiFXmy5ZHtXq6VppL
CWE3cjN6nbYhxAyP5zmXYLQVf3BAwRqGl/ZVfZLEUvgLACMTpLTNbsqtF90UVF1K
txdsfpfKgyYp5Sff0rll94enuOfoAk18oI6ukxw5rMR3vqk7XYWdvqbEfPKr3Hiw
6r7B/JxFLv+FJIdmmHb4dgQ26Jcs9B6e2MKLXm1LRtNBI9ko6eE6UZmYkK22D/YZ
T65o8j+ZxMQPHEI/evNZp+5PfV+/061d+dtC+qgqmUTdYREmotfYtdFDNNYhZuou
GuvIG4yb02I8bYkz9ZjcWrSlLkjsODQGlF3iAy7k8HX7e952D7W/ZtXcU/1iQNVn
o0Q27QAyuTlWlBcsmSsWBiJWo6FXUDz4ODtPEXnNLNHVcRTq4EIxmMada+0nSSOu
S39XKVGiPpC/4nzxtL3kD/DAw1loTEyJxz5QNOKm34IacCbmDlJ0eqi9vPMy7Fl7
VZ5hc/yfFh1FEUlkuc4oQJftbZbUnd6osZjX9AJVX3yW+NgYtezInMhma2sGy4wn
ie2x0C8TxXF5dRrgzCk/cka3rp/InFkWx7OlJ3QLkYI6YIzbSQuF9xzJK5zFoMGP
rBCylmS1f+Xf2EbXfpek/ZZLBnzmHwIDAQABo2MwYTAdBgNVHQ4EFgQU3NYFR3h8
OuGYCHVl1gk2yFoM8LIwHwYDVR0jBBgwFoAU3NYFR3h8OuGYCHVl1gk2yFoM8LIw
DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQAD
ggIBAAUCkPkzYeXNluXxrJnQowDsi9z8klpD1XkgB3e8j4eOMiqby1TfPIQVRZS9
d18iENpMFszF8fwEp0mMYhH4amHvL12qjdiepeYV57HmYUWeJIxvp/6xaJjcYJLE
jJILlNdDvZdKDwJZ2iCvV95KCZ0sp3kFgI1ZHnbLPuGw79lNAwVIfp2+/2QEq6Fu
TYEeWAbTaIQaUpQr2DpJShKkri4crdTN780dsfeTV0behD9MFmJPtpxL678KbF8a
j/A6lFWuts7/uwNXV+SR4wJMJGcxU1cRCsB99NGc0KIEZR92OiOg7U9cDdw5s448
yhm6+9zk2FKobXkBp25IaCyiwmHo8JP0Ht8sCKIORKGnXWKmwhQmZDIty+d+Jwi+
EuLnYEmgepgm4PYfehLvPo6krJrsyqfytJRcEyvlnWWobYv2S7jvpEcii/7huFqc
tBaxBXqLiIYxCWnygImeViquYBTu8jv87QfA8zCLSYVWWMitNnZE/Cw6RiCdlXdf
SIxY0S364T4z3zoO4i2Tl3dtgMb8qf6plvVe2mgbZxkXvkeSzGUJlvpovV2gW8jD
+agCIhmMjuYuBTsfWyj5cAfibcZSKb0xzehRUTtzX+Uc7GCiX8P5u2tgDBnxQUzM
dpafYF4v5HJmOyUNoNWdX6DhysaUK/sq4so8fW9vjgTQ5o2r
-----END CERTIFICATE-----)";
const char* TlsHelper::client_certificate_chain = R"(
-----BEGIN CERTIFICATE-----
MIIGDjCCA/agAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAkNO
MRIwEAYDVQQIDAlaaGUgSmlhbmcxDzANBgNVBAoMBkFwYWNoZTERMA8GA1UECwwI
Um9ja2V0TVExHDAaBgNVBAMME3JvY2tldG1xLmFwYWNoZS5vcmcxIzAhBgkqhkiG
9w0BCQEWFGxpemhhbmh1aUBhcGFjaGUub3JnMB4XDTIxMDQyNTEyMjIxOVoXDTMx
MDQyMzEyMjIxOVowgZ4xCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAlaaGUgSmlhbmcx
EjAQBgNVBAcMCUhhbmcgWmhvdTEPMA0GA1UECgwGQWxpeXVuMQswCQYDVQQLDAJN
UTEdMBsGA1UEAwwUY2xpZW50Lm1xLmFsaXl1bi5jb20xKjAoBgkqhkiG9w0BCQEW
G3NodXRpYW4ubHpoQGFsaWJhYmEtaW5jLmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBALNtRLFYGNpCzIPKC3wHMxxtPOWFl5Wl5wj9TZLYntyQ+h5C
x6OaZzdqCIconAqM+F+glShoe9y4MQn4tS4cg5UpwfJjAD2XJiri56S8L2tB5t45
5mTUF3iMoncq07NQZdWwVJcrkdxawwNLmBJjdfnALrCLrK8gejtsa/eClLArR3Ep
WlgSchxTvCWduYmb8bJFfHP5dZ1aT4rXJkUA+lDvm73N2B06f5HDazvNSxXqQ8AY
DnqKXPkUkA53gOgNXRwmY6TFfQLp3qzxD13ueUuUC/zonn4EifTdcp6xsYLjv+Fd
Fd0feGTHfeGi1Pp9nvogYbGzPeC7CaSrLphuCl0CAwEAAaOCAWgwggFkMAkGA1Ud
EwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZAMDMGCWCGSAGG+EIBDQQmFiRPcGVuU1NM
IEdlbmVyYXRlZCBTZXJ2ZXIgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFO40rO1cUjC4
CvSeLx+79vnzlXVFMIHKBgNVHSMEgcIwgb+AFHmwX8GY6WK0QVF/Vy/PagNC82lx
oYGipIGfMIGcMQswCQYDVQQGEwJDTjESMBAGA1UECAwJWmhlIEppYW5nMRIwEAYD
VQQHDAlIYW5nIFpob3UxDzANBgNVBAoMBkFwYWNoZTERMA8GA1UECwwIUm9ja2V0
TVExHDAaBgNVBAMME3JvY2tldG1xLmFwYWNoZS5vcmcxIzAhBgkqhkiG9w0BCQEW
FGxpemhhbmh1aUBhcGFjaGUub3JnggIQADAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l
BAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggIBAJtAPRUp3pLU+u860tZR
315Kxv2UHf/Mz+hqAa5N7xuojVq61VkcK+Q5SkV88B1Male3aadQcRjddGdDPTMX
c/mw6mZ43xuu2uPB47PRkCEbmwIpAiaY9nAKo0fQeHaM1roYtf20A864C0u76YsK
Gl+j8Gry0kYFMLEoVLjbdr4XtqkJOZCaHErsVjf83YSFPiyQaq6GpuHpGEyMoj+h
MM7Pcb5aqpehs9cRgYoU2IS2VXQZ6W71z5IHzw9xJngI8oZ94hwWzWyRBWl/u3jb
eNfVdh5baC9JjjJBUFedj5J8ayPl7Fh9e7YQDPhe2og42D9fWr+SmgM06QnU6fAG
s+n1ocKjpT+Rm+0Q9+BkKKebISrgP92cyiVpb2m7kCH2m52pnvEQ4GGXt5gVAHgA
UTRu0hDrkJtouu8lh5wpiu1oskgUgsYTKEpQkVB00Ich1pVxNVROWmLRHAJHVskl
MYcNAYihk4RVmyGwIEX37SWyMRKIjHY3loKJIwRJoMPduGXPk6E5NmhTRYSwKigo
pHjfDLXeAlTSYIEHUZMpTHNjigkNq5wSYYWs9BYoFaMg4k+n5m88cCsbkb9m+0b0
BBtZdWGVKbQK0YkyS+p9UULVhYg82JaF/IHLm/yR0LcmrCUp7qK6iLlXxSSD3OVP
79fXjr+aaE5Mskph9yNKFAKi
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGCDCCA/CgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZwxCzAJBgNVBAYTAkNO
MRIwEAYDVQQIDAlaaGUgSmlhbmcxEjAQBgNVBAcMCUhhbmcgWmhvdTEPMA0GA1UE
CgwGQXBhY2hlMREwDwYDVQQLDAhSb2NrZXRNUTEcMBoGA1UEAwwTcm9ja2V0bXEu
YXBhY2hlLm9yZzEjMCEGCSqGSIb3DQEJARYUbGl6aGFuaHVpQGFwYWNoZS5vcmcw
HhcNMjEwNDI1MDkwMjE5WhcNMzEwNDIzMDkwMjE5WjCBiDELMAkGA1UEBhMCQ04x
EjAQBgNVBAgMCVpoZSBKaWFuZzEPMA0GA1UECgwGQXBhY2hlMREwDwYDVQQLDAhS
b2NrZXRNUTEcMBoGA1UEAwwTcm9ja2V0bXEuYXBhY2hlLm9yZzEjMCEGCSqGSIb3
DQEJARYUbGl6aGFuaHVpQGFwYWNoZS5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDLL1rQ3A6YnWwdAT3rcf7wXK2DN6AwkWfGexp5o8y+dPj49D5b
PhEVIDEjidtWASFfCunJq9Ku48K/U8tha58JPL2CJ3773Mw7CU3LwD46Ft32+kGM
3+rXuXi44Fs714U/jJkxA6AsJdl4VtgjfXGWhbTq7ZT//l3tECH7Q096cp4xXATx
0RuvlaE33k8SpOPB+oHyjdFTwSW9HuZx71dLNCoZ0b52teJDVJFMACz6R5t3ZglF
MUosUzEUKdCXqBDvjOzMI2GHr7NYKAWHnOPNcYbf8jKzQ5msW+1MOfacVX+YUmKr
4Tf8NZHTSA4MuSNZ46gVFK7tYau2FDAkBWSb4hnuqqoGn58QtwrRBWtCmnLc4133
6sgEGoJJR5M7WF0usl7KAgqgwy6xdU1joHO4SzvpysQ9kHWr1hcTqpeLD/svxLpZ
3x0WrhIAQoyd4uIHv/501LgD2KE5YnBa4S10LYrZeQpoJO5YV56HJdyvqNgVh2fn
tIRJAKq/1Wvw6izK/zOC6ZC+ug3n9vPqCgpBI0NFm3aR4AcSx70FsmlfrjUAsluL
kIzQwuu3Ip7hUS9kBVUxmvaD2yy2HPc+UPiYm4Y2YxqTx2j11APbN32M8rj1mroE
d9JFUV3WjbY+1QEAQ9upWTJLnOzS4a8yNsXIdMoKeU68Lyi/F3wA9ciK9wIDAQAB
o2YwZDAdBgNVHQ4EFgQUebBfwZjpYrRBUX9XL89qA0LzaXEwHwYDVR0jBBgwFoAU
3NYFR3h8OuGYCHVl1gk2yFoM8LIwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8B
Af8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAJdwY+mAgtdAkVB8gRwcql7YdmWM
vlc3OYr14DHQT8eN5ItGou8MvTUR3wxCz72788/GHG1dLl54cnxzWjLgZZdapfQL
hsl1Iz6JSzyMTrNZ0HiuRw9J5XnRUIhWAO9fpRV4f/ce9J4o9YMFt//GW9WJrL59
860gNL+L1IaWDWdnPlTYnQc3ndhnStelURANtsDp808t5RO8w94/Tp/6+KgqXwSj
uAxeHNVoMcNcr/Cff/fkLXQjSlSnpX7+Yf4y9pPSq7z6QHdsfSVq9FL51cXUdK5W
XRzkWK2QKp82CRz2jbrXd9Q7rjrWtDq8vgpKsZg+myLd55wPjiscM/vZmf4LjjFC
ubfKrclMh9CFtSsk38p21l3MBl4hyULsqVHAvz4jMrTaNB+1vYQ4OhgiqxB1KJff
hw2sHZfthHLm8W+mOma/LwA+u4QFE3ihq6bjgAZxte56HUuQwa7y4FifFcZi05ih
CnXNRo8Q8napmPTwtG9XKk9HQwLSMH+wTMnrV9R8Nt4ZkPlsJV8uY/zKOfOGHsY/
+nR5vQ046Y8MT9z26dZe5MUsGUf9706+yAQAQAwzZiYJ+HiWijAIVynITMAZuEh9
JfwS66kGVNOlwqMkbAEO61tuGFmy5iRBnXOoUM2mbaGVvnbS5iBCkH6M69oq5vip
42zKYBLmpEvL4PdS
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGIDCCBAigAwIBAgIJAN/jxbRuUfSjMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYD
VQQGEwJDTjESMBAGA1UECAwJWmhlIEppYW5nMRIwEAYDVQQHDAlIYW5nIFpob3Ux
DzANBgNVBAoMBkFwYWNoZTERMA8GA1UECwwIUm9ja2V0TVExHDAaBgNVBAMME3Jv
Y2tldG1xLmFwYWNoZS5vcmcxIzAhBgkqhkiG9w0BCQEWFGxpemhhbmh1aUBhcGFj
aGUub3JnMB4XDTIxMDQyNTA4NTMyMVoXDTQxMDQyMDA4NTMyMVowgZwxCzAJBgNV
BAYTAkNOMRIwEAYDVQQIDAlaaGUgSmlhbmcxEjAQBgNVBAcMCUhhbmcgWmhvdTEP
MA0GA1UECgwGQXBhY2hlMREwDwYDVQQLDAhSb2NrZXRNUTEcMBoGA1UEAwwTcm9j
a2V0bXEuYXBhY2hlLm9yZzEjMCEGCSqGSIb3DQEJARYUbGl6aGFuaHVpQGFwYWNo
ZS5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDWKlLdC6uqiPA9
egWqBxAmKCB47ALsh7gO0nxa/0Mkr/QsRfvUtRHMoTqxLJ/IiFXmy5ZHtXq6VppL
CWE3cjN6nbYhxAyP5zmXYLQVf3BAwRqGl/ZVfZLEUvgLACMTpLTNbsqtF90UVF1K
txdsfpfKgyYp5Sff0rll94enuOfoAk18oI6ukxw5rMR3vqk7XYWdvqbEfPKr3Hiw
6r7B/JxFLv+FJIdmmHb4dgQ26Jcs9B6e2MKLXm1LRtNBI9ko6eE6UZmYkK22D/YZ
T65o8j+ZxMQPHEI/evNZp+5PfV+/061d+dtC+qgqmUTdYREmotfYtdFDNNYhZuou
GuvIG4yb02I8bYkz9ZjcWrSlLkjsODQGlF3iAy7k8HX7e952D7W/ZtXcU/1iQNVn
o0Q27QAyuTlWlBcsmSsWBiJWo6FXUDz4ODtPEXnNLNHVcRTq4EIxmMada+0nSSOu
S39XKVGiPpC/4nzxtL3kD/DAw1loTEyJxz5QNOKm34IacCbmDlJ0eqi9vPMy7Fl7
VZ5hc/yfFh1FEUlkuc4oQJftbZbUnd6osZjX9AJVX3yW+NgYtezInMhma2sGy4wn
ie2x0C8TxXF5dRrgzCk/cka3rp/InFkWx7OlJ3QLkYI6YIzbSQuF9xzJK5zFoMGP
rBCylmS1f+Xf2EbXfpek/ZZLBnzmHwIDAQABo2MwYTAdBgNVHQ4EFgQU3NYFR3h8
OuGYCHVl1gk2yFoM8LIwHwYDVR0jBBgwFoAU3NYFR3h8OuGYCHVl1gk2yFoM8LIw
DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQAD
ggIBAAUCkPkzYeXNluXxrJnQowDsi9z8klpD1XkgB3e8j4eOMiqby1TfPIQVRZS9
d18iENpMFszF8fwEp0mMYhH4amHvL12qjdiepeYV57HmYUWeJIxvp/6xaJjcYJLE
jJILlNdDvZdKDwJZ2iCvV95KCZ0sp3kFgI1ZHnbLPuGw79lNAwVIfp2+/2QEq6Fu
TYEeWAbTaIQaUpQr2DpJShKkri4crdTN780dsfeTV0behD9MFmJPtpxL678KbF8a
j/A6lFWuts7/uwNXV+SR4wJMJGcxU1cRCsB99NGc0KIEZR92OiOg7U9cDdw5s448
yhm6+9zk2FKobXkBp25IaCyiwmHo8JP0Ht8sCKIORKGnXWKmwhQmZDIty+d+Jwi+
EuLnYEmgepgm4PYfehLvPo6krJrsyqfytJRcEyvlnWWobYv2S7jvpEcii/7huFqc
tBaxBXqLiIYxCWnygImeViquYBTu8jv87QfA8zCLSYVWWMitNnZE/Cw6RiCdlXdf
SIxY0S364T4z3zoO4i2Tl3dtgMb8qf6plvVe2mgbZxkXvkeSzGUJlvpovV2gW8jD
+agCIhmMjuYuBTsfWyj5cAfibcZSKb0xzehRUTtzX+Uc7GCiX8P5u2tgDBnxQUzM
dpafYF4v5HJmOyUNoNWdX6DhysaUK/sq4so8fW9vjgTQ5o2r
-----END CERTIFICATE-----
)";
const char* TlsHelper::client_private_key = R"(
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAs21EsVgY2kLMg8oLfAczHG085YWXlaXnCP1Nktie3JD6HkLH
o5pnN2oIhyicCoz4X6CVKGh73LgxCfi1LhyDlSnB8mMAPZcmKuLnpLwva0Hm3jnm
ZNQXeIyidyrTs1Bl1bBUlyuR3FrDA0uYEmN1+cAusIusryB6O2xr94KUsCtHcSla
WBJyHFO8JZ25iZvxskV8c/l1nVpPitcmRQD6UO+bvc3YHTp/kcNrO81LFepDwBgO
eopc+RSQDneA6A1dHCZjpMV9AunerPEPXe55S5QL/OiefgSJ9N1ynrGxguO/4V0V
3R94ZMd94aLU+n2e+iBhsbM94LsJpKsumG4KXQIDAQABAoIBAQCQigN+QZOzr4AE
4mwh+8LGsZEO7HFSUhUtfrBRDUPcNsXmPrGIL8faMgawqpwZO7qRflDp/lFZWt/W
Qo3hmYK+VKcyVWJKO0q53ZPxds9UPgB3IHli3CAUMmZmTQ/BMZD3dVaPeL/FnS/f
pbPZjFnrWU/DVKFFaopM+Gh5OK4Cw2Be704vGdqoLLSAixEpAPh+U7UFyDO2Er6r
ZewpqKz6fgwzn/FIXIe+OSlIg+5IyDNBYJkXDtAAd4tCxAflnLbbcIoHjeASiAZy
qg9ax5s2+rm1yRM2Eds/jMX6vKqCTWeOq7T8Sz5FpgS9F6hL70LnBy6dxwK2MYKr
lGjNc4wZAoGBAOX51pit7YuMk1vPO5wV8TUzX7jVz9N1zuuIybpDuhZ0y7gdM8L4
LP+gaQpsdoeFnKCYC7oGjqLLrfXVxARqq1FLIaMTpd4C3uHAyWQmoZjBpFiw5a9f
FhZ67uDMEYTWoegAkDKV4O/AnfLkoDSJexh4eZ7LnChoEtGth2C4uuTPAoGBAMe7
E1hXctDszEDQCbfzkvz4zSJZ32CzauYFCVxLz+4xQVRDKQccMwVnbDSjA0nq1RmN
c7COrEGQ4EkTgy/KGfo+KeEGoDWq3UG/EO+6lBSTaWD1M0E1nqidasPx3CuhZ81d
dAaqo4Hgm+QZOFPx7bCdNAZw8u/RS+ELxanEwcETAoGBAK/DiqeWBn8pKVZ5w+0/
N+KZKQdzIitTVpndKZAaQxb2nNxSNUVFt96HEsDMtKpPC64RhqTebhUt5f6FKhLW
E6lF6qdgVNyhBQc0+LZ6b/b3yEugp2qpGZCE1B0q2hjUkVlnVM3Ujt2uMQl6gpak
nFfPe+RJaUfYgsmN/nGFvhExAoGAA/4LTvLAisiQ9KKz7wdhYskeYJdnTamIc3ya
SUwCpgI6ChMlmMzJgEwm745qnGmjRNV9AIR5kP3yXcOUFbp2dngTojndrfTyY0QM
dJ5II3km3BdKpP0LZNdwsOX+vqiFSKebkB6NEiWJODAA3jyxwZwC1DYhxQVr/N2d
X91c+h0CgYEA4PnAEmTILyJ9OPwV2A1cQ/RPi4smxZ0IIXZt/pmiEV4MYR5ULT7g
XzK3CHvV0wghQdBIxfAs8H31Ayux6N0wnva0w3tHesw15ByiDeNeJKO+tjpc01Zq
3xU6hUkWYGclvlezeWPQFkJKWYCLX4uw8lWOLCGd8VY2OZXJkS6W608=
-----END RSA PRIVATE KEY-----)";
ROCKETMQ_NAMESPACE_END