1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #include "wifi_direct_anonymous.h"
16 #include "anonymizer.h"
17 #include "wifi_direct_utils.h"
18 
19 namespace OHOS::SoftBus {
WifiDirectAnonymizeMac(const std::string & mac)20 std::string WifiDirectAnonymizeMac(const std::string &mac)
21 {
22     return WifiDirectAnonymize(mac);
23 }
24 
WifiDirectAnonymizeMac(const std::vector<uint8_t> & mac)25 std::string WifiDirectAnonymizeMac(const std::vector<uint8_t> &mac)
26 {
27     return WifiDirectAnonymizeMac(WifiDirectUtils::MacArrayToString(mac));
28 }
29 
WifiDirectAnonymizeIp(const std::string & ip)30 std::string WifiDirectAnonymizeIp(const std::string &ip)
31 {
32     return WifiDirectAnonymize(ip);
33 }
34 
WifiDirectAnonymizeDeviceId(const std::string & deviceId)35 std::string WifiDirectAnonymizeDeviceId(const std::string &deviceId)
36 {
37     return WifiDirectAnonymize(deviceId);
38 }
39 
WifiDirectAnonymizeSsid(const std::string & ssid)40 std::string WifiDirectAnonymizeSsid(const std::string &ssid)
41 {
42     return WifiDirectAnonymize(ssid);
43 }
44 
WifiDirectAnonymizePsk(const std::string & psk)45 std::string WifiDirectAnonymizePsk(const std::string &psk)
46 {
47     return WifiDirectAnonymize(psk);
48 }
49 
WifiDirectAnonymizePtk(const std::string & ptk)50 std::string WifiDirectAnonymizePtk(const std::string &ptk)
51 {
52     return WifiDirectAnonymize(ptk);
53 }
54 
WifiDirectAnonymizeData(const std::string & data)55 std::string WifiDirectAnonymizeData(const std::string &data)
56 {
57     return WifiDirectAnonymize(data);
58 }
59 
WifiDirectAnonymize(const std::string & data)60 std::string WifiDirectAnonymize(const std::string &data)
61 {
62     if (data.empty()) {
63         return "";
64     }
65     char *temp = nullptr;
66     Anonymize(data.c_str(), &temp);
67     std::string result = AnonymizeWrapper(temp);
68     AnonymizeFree(temp);
69     return result;
70 }
71 } // namespace OHOS::SoftBus
72