11e934351Sopenharmony_ci/* 21e934351Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 31e934351Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 41e934351Sopenharmony_ci * you may not use this file except in compliance with the License. 51e934351Sopenharmony_ci * You may obtain a copy of the License at 61e934351Sopenharmony_ci * 71e934351Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 81e934351Sopenharmony_ci * 91e934351Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 101e934351Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 111e934351Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 121e934351Sopenharmony_ci * See the License for the specific language governing permissions and 131e934351Sopenharmony_ci * limitations under the License. 141e934351Sopenharmony_ci */ 151e934351Sopenharmony_ci 161e934351Sopenharmony_ci#include <gtest/gtest.h> 171e934351Sopenharmony_ci#include <iostream> 181e934351Sopenharmony_ci 191e934351Sopenharmony_ci#include <openssl/ssl.h> 201e934351Sopenharmony_ci 211e934351Sopenharmony_ci#define private public 221e934351Sopenharmony_ci#include "accesstoken_kit.h" 231e934351Sopenharmony_ci#include "tls_socket.h" 241e934351Sopenharmony_ci#include "socket_remote_info.h" 251e934351Sopenharmony_ci#include "token_setproc.h" 261e934351Sopenharmony_ci#include "tls.h" 271e934351Sopenharmony_ci#include "TlsTest.h" 281e934351Sopenharmony_ci 291e934351Sopenharmony_cinamespace OHOS { 301e934351Sopenharmony_cinamespace NetStack { 311e934351Sopenharmony_cinamespace TlsSocket { 321e934351Sopenharmony_cinamespace { 331e934351Sopenharmony_ciusing namespace testing::ext; 341e934351Sopenharmony_ciusing namespace Security::AccessToken; 351e934351Sopenharmony_ciusing Security::AccessToken::AccessTokenID; 361e934351Sopenharmony_cistatic constexpr const char *KEY_PASS = ""; 371e934351Sopenharmony_cistatic constexpr const char *PROTOCOL12 = "TLSv1.2"; 381e934351Sopenharmony_cistatic constexpr const char *PROTOCOL13 = "TLSv1.3"; 391e934351Sopenharmony_cistatic constexpr const char *IP_ADDRESS = "127.0.0.1"; 401e934351Sopenharmony_cistatic constexpr const char *ALPN_PROTOCOL = "http/1.1"; 411e934351Sopenharmony_cistatic constexpr const char *SIGNATURE_ALGORITHM = "rsa_pss_rsae_sha256:ECDSA+SHA256"; 421e934351Sopenharmony_cistatic constexpr const char *CIPHER_SUITE = "AES256-SHA256"; 431e934351Sopenharmony_cistatic constexpr const char *SEND_DATA = "How do you do"; 441e934351Sopenharmony_cistatic constexpr const char *SEND_DATA_EMPTY = ""; 451e934351Sopenharmony_cistatic constexpr const size_t MAX_BUFFER_SIZE = 8192; 461e934351Sopenharmony_ciconst int PORT = 7838; 471e934351Sopenharmony_ciconst int SOCKET_FD = 5; 481e934351Sopenharmony_ciconst int SSL_ERROR_RETURN = -1; 491e934351Sopenharmony_ci 501e934351Sopenharmony_ciTLSConnectOptions BaseOption() 511e934351Sopenharmony_ci{ 521e934351Sopenharmony_ci TLSSecureOptions secureOption; 531e934351Sopenharmony_ci SecureData structureData(PRI_KEY_FILE); 541e934351Sopenharmony_ci secureOption.SetKey(structureData); 551e934351Sopenharmony_ci std::vector<std::string> caChain; 561e934351Sopenharmony_ci caChain.push_back(CA_CRT_FILE); 571e934351Sopenharmony_ci secureOption.SetCaChain(caChain); 581e934351Sopenharmony_ci secureOption.SetCert(CLIENT_FILE); 591e934351Sopenharmony_ci secureOption.SetCipherSuite(CIPHER_SUITE); 601e934351Sopenharmony_ci secureOption.SetSignatureAlgorithms(SIGNATURE_ALGORITHM); 611e934351Sopenharmony_ci std::vector<std::string> protocol; 621e934351Sopenharmony_ci protocol.push_back(PROTOCOL13); 631e934351Sopenharmony_ci secureOption.SetProtocolChain(protocol); 641e934351Sopenharmony_ci 651e934351Sopenharmony_ci TLSConnectOptions connectOptions; 661e934351Sopenharmony_ci connectOptions.SetTlsSecureOptions(secureOption); 671e934351Sopenharmony_ci Socket::NetAddress netAddress; 681e934351Sopenharmony_ci netAddress.SetAddress(IP_ADDRESS); 691e934351Sopenharmony_ci netAddress.SetPort(0); 701e934351Sopenharmony_ci netAddress.SetFamilyBySaFamily(AF_INET); 711e934351Sopenharmony_ci connectOptions.SetNetAddress(netAddress); 721e934351Sopenharmony_ci std::vector<std::string> alpnProtocols; 731e934351Sopenharmony_ci alpnProtocols.push_back(ALPN_PROTOCOL); 741e934351Sopenharmony_ci connectOptions.SetAlpnProtocols(alpnProtocols); 751e934351Sopenharmony_ci return connectOptions; 761e934351Sopenharmony_ci} 771e934351Sopenharmony_ci 781e934351Sopenharmony_ciHapInfoParams testInfoParms = {.bundleName = "TlsSocketBranchTest", 791e934351Sopenharmony_ci .userID = 1, 801e934351Sopenharmony_ci .instIndex = 0, 811e934351Sopenharmony_ci .appIDDesc = "test", 821e934351Sopenharmony_ci .isSystemApp = true}; 831e934351Sopenharmony_ci 841e934351Sopenharmony_ciPermissionDef testPermDef = { 851e934351Sopenharmony_ci .permissionName = "ohos.permission.INTERNET", 861e934351Sopenharmony_ci .bundleName = "TlsSocketBranchTest", 871e934351Sopenharmony_ci .grantMode = 1, 881e934351Sopenharmony_ci .label = "label", 891e934351Sopenharmony_ci .labelId = 1, 901e934351Sopenharmony_ci .description = "Test Tls Socket Branch", 911e934351Sopenharmony_ci .descriptionId = 1, 921e934351Sopenharmony_ci .availableLevel = APL_SYSTEM_BASIC, 931e934351Sopenharmony_ci}; 941e934351Sopenharmony_ci 951e934351Sopenharmony_ciPermissionStateFull testState = { 961e934351Sopenharmony_ci .grantFlags = {2}, 971e934351Sopenharmony_ci .grantStatus = {PermissionState::PERMISSION_GRANTED}, 981e934351Sopenharmony_ci .isGeneral = true, 991e934351Sopenharmony_ci .permissionName = "ohos.permission.INTERNET", 1001e934351Sopenharmony_ci .resDeviceID = {"local"}, 1011e934351Sopenharmony_ci}; 1021e934351Sopenharmony_ci 1031e934351Sopenharmony_ciHapPolicyParams testPolicyPrams = { 1041e934351Sopenharmony_ci .apl = APL_SYSTEM_BASIC, 1051e934351Sopenharmony_ci .domain = "test.domain", 1061e934351Sopenharmony_ci .permList = {testPermDef}, 1071e934351Sopenharmony_ci .permStateList = {testState}, 1081e934351Sopenharmony_ci}; 1091e934351Sopenharmony_ci} // namespace 1101e934351Sopenharmony_ci 1111e934351Sopenharmony_ciclass AccessToken { 1121e934351Sopenharmony_cipublic: 1131e934351Sopenharmony_ci AccessToken() : currentID_(GetSelfTokenID()) 1141e934351Sopenharmony_ci { 1151e934351Sopenharmony_ci AccessTokenIDEx tokenIdEx = AccessTokenKit::AllocHapToken(testInfoParms, testPolicyPrams); 1161e934351Sopenharmony_ci accessID_ = tokenIdEx.tokenIdExStruct.tokenID; 1171e934351Sopenharmony_ci SetSelfTokenID(tokenIdEx.tokenIDEx); 1181e934351Sopenharmony_ci } 1191e934351Sopenharmony_ci ~AccessToken() 1201e934351Sopenharmony_ci { 1211e934351Sopenharmony_ci AccessTokenKit::DeleteToken(accessID_); 1221e934351Sopenharmony_ci SetSelfTokenID(currentID_); 1231e934351Sopenharmony_ci } 1241e934351Sopenharmony_ci 1251e934351Sopenharmony_ciprivate: 1261e934351Sopenharmony_ci AccessTokenID currentID_; 1271e934351Sopenharmony_ci AccessTokenID accessID_ = 0; 1281e934351Sopenharmony_ci}; 1291e934351Sopenharmony_ci 1301e934351Sopenharmony_ciclass TlsSocketBranchTest : public testing::Test { 1311e934351Sopenharmony_cipublic: 1321e934351Sopenharmony_ci static void SetUpTestCase() {} 1331e934351Sopenharmony_ci 1341e934351Sopenharmony_ci static void TearDownTestCase() {} 1351e934351Sopenharmony_ci 1361e934351Sopenharmony_ci virtual void SetUp() {} 1371e934351Sopenharmony_ci 1381e934351Sopenharmony_ci virtual void TearDown() {} 1391e934351Sopenharmony_ci}; 1401e934351Sopenharmony_ci 1411e934351Sopenharmony_ciHWTEST_F(TlsSocketBranchTest, BranchTest1, TestSize.Level2) 1421e934351Sopenharmony_ci{ 1431e934351Sopenharmony_ci TLSSecureOptions secureOption; 1441e934351Sopenharmony_ci SecureData structureData(PRI_KEY_FILE); 1451e934351Sopenharmony_ci secureOption.SetKey(structureData); 1461e934351Sopenharmony_ci 1471e934351Sopenharmony_ci SecureData keyPass(KEY_PASS); 1481e934351Sopenharmony_ci secureOption.SetKeyPass(keyPass); 1491e934351Sopenharmony_ci SecureData secureData = secureOption.GetKey(); 1501e934351Sopenharmony_ci EXPECT_EQ(structureData.Length(), strlen(PRI_KEY_FILE)); 1511e934351Sopenharmony_ci std::vector<std::string> caChain; 1521e934351Sopenharmony_ci caChain.push_back(CA_CRT_FILE); 1531e934351Sopenharmony_ci secureOption.SetCaChain(caChain); 1541e934351Sopenharmony_ci std::vector<std::string> getCaChain = secureOption.GetCaChain(); 1551e934351Sopenharmony_ci EXPECT_NE(getCaChain.data(), nullptr); 1561e934351Sopenharmony_ci 1571e934351Sopenharmony_ci secureOption.SetCert(CLIENT_FILE); 1581e934351Sopenharmony_ci std::string getCert = secureOption.GetCert(); 1591e934351Sopenharmony_ci EXPECT_NE(getCert.data(), nullptr); 1601e934351Sopenharmony_ci 1611e934351Sopenharmony_ci std::vector<std::string> protocolVec = {PROTOCOL12, PROTOCOL13}; 1621e934351Sopenharmony_ci secureOption.SetProtocolChain(protocolVec); 1631e934351Sopenharmony_ci std::vector<std::string> getProtocol; 1641e934351Sopenharmony_ci getProtocol = secureOption.GetProtocolChain(); 1651e934351Sopenharmony_ci 1661e934351Sopenharmony_ci TLSSecureOptions copyOption = TLSSecureOptions(secureOption); 1671e934351Sopenharmony_ci TLSSecureOptions equalOption = secureOption; 1681e934351Sopenharmony_ci} 1691e934351Sopenharmony_ci 1701e934351Sopenharmony_ciHWTEST_F(TlsSocketBranchTest, BranchTest2, TestSize.Level2) 1711e934351Sopenharmony_ci{ 1721e934351Sopenharmony_ci TLSSecureOptions secureOption; 1731e934351Sopenharmony_ci secureOption.SetUseRemoteCipherPrefer(false); 1741e934351Sopenharmony_ci bool isUseRemoteCipher = secureOption.UseRemoteCipherPrefer(); 1751e934351Sopenharmony_ci EXPECT_FALSE(isUseRemoteCipher); 1761e934351Sopenharmony_ci 1771e934351Sopenharmony_ci secureOption.SetSignatureAlgorithms(SIGNATURE_ALGORITHM); 1781e934351Sopenharmony_ci std::string getSignatureAlgorithm = secureOption.GetSignatureAlgorithms(); 1791e934351Sopenharmony_ci EXPECT_STREQ(getSignatureAlgorithm.data(), SIGNATURE_ALGORITHM); 1801e934351Sopenharmony_ci 1811e934351Sopenharmony_ci secureOption.SetCipherSuite(CIPHER_SUITE); 1821e934351Sopenharmony_ci std::string getCipherSuite = secureOption.GetCipherSuite(); 1831e934351Sopenharmony_ci EXPECT_STREQ(getCipherSuite.data(), CIPHER_SUITE); 1841e934351Sopenharmony_ci 1851e934351Sopenharmony_ci TLSSecureOptions copyOption = TLSSecureOptions(secureOption); 1861e934351Sopenharmony_ci TLSSecureOptions equalOption = secureOption; 1871e934351Sopenharmony_ci 1881e934351Sopenharmony_ci TLSConnectOptions connectOptions; 1891e934351Sopenharmony_ci connectOptions.SetTlsSecureOptions(secureOption); 1901e934351Sopenharmony_ci} 1911e934351Sopenharmony_ci 1921e934351Sopenharmony_ciHWTEST_F(TlsSocketBranchTest, BranchTest3, TestSize.Level2) 1931e934351Sopenharmony_ci{ 1941e934351Sopenharmony_ci TLSSecureOptions secureOption; 1951e934351Sopenharmony_ci TLSConnectOptions connectOptions; 1961e934351Sopenharmony_ci connectOptions.SetTlsSecureOptions(secureOption); 1971e934351Sopenharmony_ci 1981e934351Sopenharmony_ci Socket::NetAddress netAddress; 1991e934351Sopenharmony_ci netAddress.SetAddress(IP_ADDRESS); 2001e934351Sopenharmony_ci netAddress.SetPort(PORT); 2011e934351Sopenharmony_ci connectOptions.SetNetAddress(netAddress); 2021e934351Sopenharmony_ci Socket::NetAddress getNetAddress = connectOptions.GetNetAddress(); 2031e934351Sopenharmony_ci std::string address = getNetAddress.GetAddress(); 2041e934351Sopenharmony_ci EXPECT_STREQ(IP_ADDRESS, address.data()); 2051e934351Sopenharmony_ci int port = getNetAddress.GetPort(); 2061e934351Sopenharmony_ci EXPECT_EQ(port, PORT); 2071e934351Sopenharmony_ci netAddress.SetFamilyBySaFamily(AF_INET6); 2081e934351Sopenharmony_ci sa_family_t getFamily = netAddress.GetSaFamily(); 2091e934351Sopenharmony_ci EXPECT_EQ(getFamily, AF_INET6); 2101e934351Sopenharmony_ci 2111e934351Sopenharmony_ci std::vector<std::string> alpnProtocols; 2121e934351Sopenharmony_ci alpnProtocols.push_back(ALPN_PROTOCOL); 2131e934351Sopenharmony_ci connectOptions.SetAlpnProtocols(alpnProtocols); 2141e934351Sopenharmony_ci std::vector<std::string> getAlpnProtocols; 2151e934351Sopenharmony_ci getAlpnProtocols = connectOptions.GetAlpnProtocols(); 2161e934351Sopenharmony_ci EXPECT_STREQ(getAlpnProtocols[0].data(), alpnProtocols[0].data()); 2171e934351Sopenharmony_ci} 2181e934351Sopenharmony_ci 2191e934351Sopenharmony_ciHWTEST_F(TlsSocketBranchTest, BranchTest4, TestSize.Level2) 2201e934351Sopenharmony_ci{ 2211e934351Sopenharmony_ci TLSSecureOptions secureOption; 2221e934351Sopenharmony_ci SecureData structureData(PRI_KEY_FILE); 2231e934351Sopenharmony_ci secureOption.SetKey(structureData); 2241e934351Sopenharmony_ci std::vector<std::string> caChain; 2251e934351Sopenharmony_ci caChain.push_back(CA_CRT_FILE); 2261e934351Sopenharmony_ci secureOption.SetCaChain(caChain); 2271e934351Sopenharmony_ci secureOption.SetCert(CLIENT_FILE); 2281e934351Sopenharmony_ci 2291e934351Sopenharmony_ci TLSConnectOptions connectOptions; 2301e934351Sopenharmony_ci connectOptions.SetTlsSecureOptions(secureOption); 2311e934351Sopenharmony_ci 2321e934351Sopenharmony_ci Socket::NetAddress netAddress; 2331e934351Sopenharmony_ci netAddress.SetAddress(IP_ADDRESS); 2341e934351Sopenharmony_ci netAddress.SetPort(0); 2351e934351Sopenharmony_ci netAddress.SetFamilyBySaFamily(AF_INET); 2361e934351Sopenharmony_ci EXPECT_EQ(netAddress.GetSaFamily(), AF_INET); 2371e934351Sopenharmony_ci} 2381e934351Sopenharmony_ci 2391e934351Sopenharmony_ciHWTEST_F(TlsSocketBranchTest, BranchTest5, TestSize.Level2) 2401e934351Sopenharmony_ci{ 2411e934351Sopenharmony_ci TLSConnectOptions tlsConnectOptions = BaseOption(); 2421e934351Sopenharmony_ci 2431e934351Sopenharmony_ci AccessToken token; 2441e934351Sopenharmony_ci TLSSocket tlsSocket; 2451e934351Sopenharmony_ci tlsSocket.OnError( 2461e934351Sopenharmony_ci [](int32_t errorNumber, const std::string &errorString) { EXPECT_NE(TLSSOCKET_SUCCESS, errorNumber); }); 2471e934351Sopenharmony_ci tlsSocket.Connect(tlsConnectOptions, [](int32_t errCode) { EXPECT_NE(TLSSOCKET_SUCCESS, errCode); }); 2481e934351Sopenharmony_ci std::string getData; 2491e934351Sopenharmony_ci tlsSocket.OnMessage([&getData](const std::string &data, const Socket::SocketRemoteInfo &remoteInfo) { 2501e934351Sopenharmony_ci EXPECT_STREQ(getData.data(), nullptr); 2511e934351Sopenharmony_ci }); 2521e934351Sopenharmony_ci const std::string data = "how do you do?"; 2531e934351Sopenharmony_ci Socket::TCPSendOptions tcpSendOptions; 2541e934351Sopenharmony_ci tcpSendOptions.SetData(data); 2551e934351Sopenharmony_ci tlsSocket.Send(tcpSendOptions, [](int32_t errCode) { EXPECT_EQ(errCode, TLS_ERR_SSL_NULL); }); 2561e934351Sopenharmony_ci tlsSocket.GetSignatureAlgorithms( 2571e934351Sopenharmony_ci [](int32_t errCode, const std::vector<std::string> &algorithms) { EXPECT_EQ(errCode, TLS_ERR_SSL_NULL); }); 2581e934351Sopenharmony_ci tlsSocket.GetCertificate( 2591e934351Sopenharmony_ci [](int32_t errCode, const X509CertRawData &cert) { EXPECT_NE(errCode, TLSSOCKET_SUCCESS); }); 2601e934351Sopenharmony_ci tlsSocket.GetCipherSuite( 2611e934351Sopenharmony_ci [](int32_t errCode, const std::vector<std::string> &suite) { EXPECT_EQ(errCode, TLS_ERR_SSL_NULL); }); 2621e934351Sopenharmony_ci tlsSocket.GetProtocol([](int32_t errCode, const std::string &protocol) { EXPECT_EQ(errCode, TLSSOCKET_SUCCESS); }); 2631e934351Sopenharmony_ci tlsSocket.GetRemoteCertificate( 2641e934351Sopenharmony_ci [](int32_t errCode, const X509CertRawData &cert) { EXPECT_EQ(errCode, TLS_ERR_SSL_NULL); }); 2651e934351Sopenharmony_ci (void)tlsSocket.Close([](int32_t errCode) { EXPECT_FALSE(errCode == TLSSOCKET_SUCCESS); }); 2661e934351Sopenharmony_ci} 2671e934351Sopenharmony_ci 2681e934351Sopenharmony_ciHWTEST_F(TlsSocketBranchTest, BranchTest6, TestSize.Level2) 2691e934351Sopenharmony_ci{ 2701e934351Sopenharmony_ci TLSConnectOptions connectOptions = BaseOption(); 2711e934351Sopenharmony_ci 2721e934351Sopenharmony_ci TLSSocket tlsSocket; 2731e934351Sopenharmony_ci TLSSocket::TLSSocketInternal *tlsSocketInternal = new TLSSocket::TLSSocketInternal(); 2741e934351Sopenharmony_ci bool isConnectToHost = tlsSocketInternal->TlsConnectToHost(SOCKET_FD, connectOptions, false); 2751e934351Sopenharmony_ci EXPECT_FALSE(isConnectToHost); 2761e934351Sopenharmony_ci tlsSocketInternal->SetTlsConfiguration(connectOptions); 2771e934351Sopenharmony_ci 2781e934351Sopenharmony_ci bool sendSslNull = tlsSocketInternal->Send(SEND_DATA); 2791e934351Sopenharmony_ci EXPECT_FALSE(sendSslNull); 2801e934351Sopenharmony_ci char buffer[MAX_BUFFER_SIZE]; 2811e934351Sopenharmony_ci bzero(buffer, MAX_BUFFER_SIZE); 2821e934351Sopenharmony_ci int recvSslNull = tlsSocketInternal->Recv(buffer, MAX_BUFFER_SIZE); 2831e934351Sopenharmony_ci EXPECT_EQ(recvSslNull, SSL_ERROR_RETURN); 2841e934351Sopenharmony_ci bool closeSslNull = tlsSocketInternal->Close(); 2851e934351Sopenharmony_ci EXPECT_FALSE(closeSslNull); 2861e934351Sopenharmony_ci tlsSocketInternal->ssl_ = SSL_new(SSL_CTX_new(TLS_client_method())); 2871e934351Sopenharmony_ci bool sendEmpty = tlsSocketInternal->Send(SEND_DATA_EMPTY); 2881e934351Sopenharmony_ci EXPECT_FALSE(sendEmpty); 2891e934351Sopenharmony_ci int recv = tlsSocketInternal->Recv(buffer, MAX_BUFFER_SIZE); 2901e934351Sopenharmony_ci EXPECT_EQ(recv, SSL_ERROR_RETURN); 2911e934351Sopenharmony_ci bool close = tlsSocketInternal->Close(); 2921e934351Sopenharmony_ci EXPECT_FALSE(close); 2931e934351Sopenharmony_ci delete tlsSocketInternal; 2941e934351Sopenharmony_ci} 2951e934351Sopenharmony_ci 2961e934351Sopenharmony_ciHWTEST_F(TlsSocketBranchTest, BranchTest7, TestSize.Level2) 2971e934351Sopenharmony_ci{ 2981e934351Sopenharmony_ci TLSSocket tlsSocket; 2991e934351Sopenharmony_ci TLSSocket::TLSSocketInternal *tlsSocketInternal = new TLSSocket::TLSSocketInternal(); 3001e934351Sopenharmony_ci 3011e934351Sopenharmony_ci std::vector<std::string> alpnProtocols; 3021e934351Sopenharmony_ci alpnProtocols.push_back(ALPN_PROTOCOL); 3031e934351Sopenharmony_ci bool alpnProSslNull = tlsSocketInternal->SetAlpnProtocols(alpnProtocols); 3041e934351Sopenharmony_ci EXPECT_FALSE(alpnProSslNull); 3051e934351Sopenharmony_ci std::vector<std::string> getCipherSuite = tlsSocketInternal->GetCipherSuite(); 3061e934351Sopenharmony_ci EXPECT_EQ(getCipherSuite.size(), 0); 3071e934351Sopenharmony_ci bool setSharedSigals = tlsSocketInternal->SetSharedSigals(); 3081e934351Sopenharmony_ci EXPECT_FALSE(setSharedSigals); 3091e934351Sopenharmony_ci tlsSocketInternal->ssl_ = SSL_new(SSL_CTX_new(TLS_client_method())); 3101e934351Sopenharmony_ci getCipherSuite = tlsSocketInternal->GetCipherSuite(); 3111e934351Sopenharmony_ci EXPECT_NE(getCipherSuite.size(), 0); 3121e934351Sopenharmony_ci setSharedSigals = tlsSocketInternal->SetSharedSigals(); 3131e934351Sopenharmony_ci EXPECT_FALSE(setSharedSigals); 3141e934351Sopenharmony_ci TLSConnectOptions connectOptions = BaseOption(); 3151e934351Sopenharmony_ci bool alpnPro = tlsSocketInternal->SetAlpnProtocols(alpnProtocols); 3161e934351Sopenharmony_ci EXPECT_TRUE(alpnPro); 3171e934351Sopenharmony_ci 3181e934351Sopenharmony_ci Socket::SocketRemoteInfo remoteInfo; 3191e934351Sopenharmony_ci tlsSocketInternal->hostName_ = IP_ADDRESS; 3201e934351Sopenharmony_ci tlsSocketInternal->port_ = PORT; 3211e934351Sopenharmony_ci tlsSocketInternal->family_ = AF_INET; 3221e934351Sopenharmony_ci tlsSocketInternal->MakeRemoteInfo(remoteInfo); 3231e934351Sopenharmony_ci getCipherSuite = tlsSocketInternal->GetCipherSuite(); 3241e934351Sopenharmony_ci EXPECT_NE(getCipherSuite.size(), 0); 3251e934351Sopenharmony_ci 3261e934351Sopenharmony_ci std::string getRemoteCert = tlsSocketInternal->GetRemoteCertificate(); 3271e934351Sopenharmony_ci EXPECT_EQ(getRemoteCert, ""); 3281e934351Sopenharmony_ci 3291e934351Sopenharmony_ci std::vector<std::string> getSignatureAlgorithms = tlsSocketInternal->GetSignatureAlgorithms(); 3301e934351Sopenharmony_ci EXPECT_EQ(getSignatureAlgorithms.size(), 0); 3311e934351Sopenharmony_ci 3321e934351Sopenharmony_ci std::string getProtocol = tlsSocketInternal->GetProtocol(); 3331e934351Sopenharmony_ci EXPECT_NE(getProtocol, ""); 3341e934351Sopenharmony_ci 3351e934351Sopenharmony_ci setSharedSigals = tlsSocketInternal->SetSharedSigals(); 3361e934351Sopenharmony_ci EXPECT_FALSE(setSharedSigals); 3371e934351Sopenharmony_ci 3381e934351Sopenharmony_ci ssl_st *ssl = tlsSocketInternal->GetSSL(); 3391e934351Sopenharmony_ci EXPECT_NE(ssl, nullptr); 3401e934351Sopenharmony_ci delete tlsSocketInternal; 3411e934351Sopenharmony_ci} 3421e934351Sopenharmony_ci} // namespace TlsSocket 3431e934351Sopenharmony_ci} // namespace NetStack 3441e934351Sopenharmony_ci} // namespace OHOS 345