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