Home
last modified time | relevance | path

Searched refs:key (Results 1 – 25 of 1035) sorted by relevance

12345678910>>...42

/base/update/updateservice/services/core/ability/preference/src/
Dpreference_utils.cpp48 bool PreferencesUtil::SaveString(const std::string &key, const std::string &value) in SaveString() argument
50 return Save(key, value); in SaveString()
53 bool PreferencesUtil::SaveInt(const std::string &key, int value) in SaveInt() argument
55 return Save(key, value); in SaveInt()
58 bool PreferencesUtil::SaveBool(const std::string &key, bool value) in SaveBool() argument
60 return Save(key, value); in SaveBool()
63 bool PreferencesUtil::SaveLong(const std::string &key, int64_t value) in SaveLong() argument
65 return Save(key, value); in SaveLong()
68 bool PreferencesUtil::SaveFloat(const std::string &key, float value) in SaveFloat() argument
70 return Save(key, value); in SaveFloat()
[all …]
Dpreference_utils_empty.cpp27 bool PreferencesUtil::SaveString(const std::string &key, const std::string &value) in SaveString() argument
32 bool PreferencesUtil::SaveInt(const std::string &key, int value) in SaveInt() argument
37 bool PreferencesUtil::SaveBool(const std::string &key, bool value) in SaveBool() argument
42 bool PreferencesUtil::SaveLong(const std::string &key, int64_t value) in SaveLong() argument
47 bool PreferencesUtil::SaveFloat(const std::string &key, float value) in SaveFloat() argument
53 bool PreferencesUtil::Save(const std::string &key, const T &value) in Save() argument
58 std::string PreferencesUtil::ObtainString(const std::string &key, const std::string &defValue) in ObtainString() argument
63 int PreferencesUtil::ObtainInt(const std::string &key, int defValue) in ObtainInt() argument
68 bool PreferencesUtil::ObtainBool(const std::string &key, bool defValue) in ObtainBool() argument
73 int64_t PreferencesUtil::ObtainLong(const std::string &key, int64_t defValue) in ObtainLong() argument
[all …]
/base/security/huks/utils/crypto_adapter/
Dhks_client_service_adapter_common.c33 int32_t CopyToInnerKey(const struct HksBlob *key, struct HksBlob *outKey) in CopyToInnerKey() argument
35 if ((key->size == 0) || (key->size > MAX_KEY_SIZE)) { in CopyToInnerKey()
36 HKS_LOG_E("invalid input key size: %" LOG_PUBLIC "u", key->size); in CopyToInnerKey()
40 uint8_t *outData = (uint8_t *)HksMalloc(key->size); in CopyToInnerKey()
43 (void)memcpy_s(outData, key->size, key->data, key->size); in CopyToInnerKey()
45 outKey->size = key->size; in CopyToInnerKey()
51 static int32_t TranslateToInnerCurve25519Format(const uint32_t alg, const struct HksBlob *key, in TranslateToInnerCurve25519Format() argument
54 if (key->size != HKS_KEY_BYTES(HKS_CURVE25519_KEY_SIZE_256)) { in TranslateToInnerCurve25519Format()
55 HKS_LOG_E("Invalid curve25519 public key size! key size = 0x%" LOG_PUBLIC "X", key->size); in TranslateToInnerCurve25519Format()
59 uint32_t totalSize = sizeof(struct HksPubKeyInfo) + key->size; in TranslateToInnerCurve25519Format()
[all …]
/base/security/crypto_framework/test/unittest/src/aes_cipher/
Dcrypto_aes_cipher_test.cpp49 HcfSymKey *key = nullptr; variable
58 ret = generator->generateSymKey(generator, &key);
77 HcfObjDestroy(key);
111 HcfSymKey *key = nullptr; variable
120 ret = generator->generateSymKey(generator, &key);
127 generatorAlgoName = generator->getAlgoName(reinterpret_cast<HcfSymKeyGenerator *>(key));
134 HcfObjDestroy(key);
142 HcfSymKey *key = nullptr; variable
146 ret = GenerateSymKey(inputAlgoName, &key);
153 keyAlgoName = key->key.getAlgorithm(&(key->key));
[all …]
Dcrypto_aes_ecb_cipher_test.cpp59 HcfSymKey *key = nullptr; variable
67 ret = generator->generateSymKey(generator, &key);
79 ret = AesEncrypt(cipher, key, nullptr, cipherText, &cipherTextLen);
85 ret = AesDecrypt(cipher, key, nullptr, cipherText, cipherTextLen);
91 HcfObjDestroy((HcfObjectBase *)key);
111 HcfSymKey *key = nullptr; variable
118 ret = generator->generateSymKey(generator, &key);
130 ret = AesEncrypt(cipher, key, nullptr, cipherText, &cipherTextLen);
136 ret = AesDecrypt(cipher, key, nullptr, cipherText, cipherTextLen);
142 HcfObjDestroy((HcfObjectBase *)key);
[all …]
Dcrypto_aes_cfb_cipher_test.cpp55 HcfSymKey *key = nullptr; variable
65 ret = generator->generateSymKey(generator, &key);
77 ret = AesEncrypt(cipher, key, (HcfParamsSpec *)&ivSpec, cipherText, &cipherTextLen);
83 ret = AesDecrypt(cipher, key, (HcfParamsSpec *)&ivSpec, cipherText, cipherTextLen);
90 HcfObjDestroy((HcfObjectBase *)key);
106 HcfSymKey *key = nullptr; variable
116 ret = generator->generateSymKey(generator, &key);
128 ret = AesEncrypt(cipher, key, (HcfParamsSpec *)&ivSpec, cipherText, &cipherTextLen);
134 ret = AesDecrypt(cipher, key, (HcfParamsSpec *)&ivSpec, cipherText, cipherTextLen);
141 HcfObjDestroy((HcfObjectBase *)key);
[all …]
/base/hiviewdfx/hiappevent/interfaces/native/inner_api/src/
Dapp_event.cpp29 void Event::AddParam(const std::string& key, bool value) in AddParam() argument
31 eventPack_->AddParam(key, value); in AddParam()
34 void Event::AddParam(const std::string& key, int32_t value) in AddParam() argument
36 eventPack_->AddParam(key, value); in AddParam()
39 void Event::AddParam(const std::string& key, int64_t value) in AddParam() argument
41 eventPack_->AddParam(key, value); in AddParam()
44 void Event::AddParam(const std::string& key, double value) in AddParam() argument
46 eventPack_->AddParam(key, value); in AddParam()
49 void Event::AddParam(const std::string& key, const std::string& value) in AddParam() argument
51 eventPack_->AddParam(key, value); in AddParam()
[all …]
/base/useriam/user_auth_framework/interfaces/inner_api/
Dattributes.h252 bool SetBoolValue(AttributeKey key, bool value);
261 bool SetUint64Value(AttributeKey key, uint64_t value);
270 bool SetUint32Value(AttributeKey key, uint32_t value);
279 bool SetUint16Value(AttributeKey key, uint16_t value);
288 bool SetUint8Value(AttributeKey key, uint8_t value);
297 bool SetInt32Value(AttributeKey key, int32_t value);
306 bool SetInt64Value(AttributeKey key, int64_t value);
315 bool SetStringValue(AttributeKey key, const std::string &value);
324 bool SetAttributesValue(AttributeKey key, const Attributes &value);
325 bool SetAttributesArrayValue(AttributeKey key, const std::vector<Attributes> &array);
[all …]
/base/security/huks/test/unittest/huks_standard_test/three_stage_test/src/
Dhks_import_agree_test.cpp627 static int32_t CopyKey(const uint8_t *key, uint32_t size, struct HksBlob *outKey) in CopyKey() argument
634 (void)memcpy_s(outData, size, key, size); in CopyKey()
641 static int32_t CopyToInner(struct TestImportKeyData *key, uint32_t importType, struct HksBlob *outK… in CopyToInner() argument
644 return CopyKey(key->privateOrYData.data, key->privateOrYData.size, outKey); in CopyToInner()
646 return CopyKey(key->publicOrXData.data, key->publicOrXData.size, outKey); in CopyToInner()
650 static int32_t ConstructCurve25519Key(struct TestImportKeyData *key, in ConstructCurve25519Key() argument
654 return CopyToInner(key, importType, outKey); in ConstructCurve25519Key()
660 material.pubKeySize = key->publicOrXData.size; in ConstructCurve25519Key()
661 material.priKeySize = key->privateOrYData.size; in ConstructCurve25519Key()
678 …if (memcpy_s(dataTest + offset, size - offset, key->publicOrXData.data, key->publicOrXData.size) !… in ConstructCurve25519Key()
[all …]
/base/security/security_guard/frameworks/common/json/src/
Djson_cfg.cpp19 bool JsonCfg::Unmarshal(uint64_t &data, nlohmann::json jsonObj, std::string key) in Unmarshal() argument
21 JSON_CHECK_HELPER_RETURN_IF_FAILED(jsonObj, key, number, false); in Unmarshal()
22 data = jsonObj.at(key).get<uint64_t>(); in Unmarshal()
26 bool JsonCfg::Unmarshal(int64_t &data, nlohmann::json jsonObj, std::string key) in Unmarshal() argument
28 JSON_CHECK_HELPER_RETURN_IF_FAILED(jsonObj, key, number, false); in Unmarshal()
29 data = jsonObj.at(key).get<int64_t>(); in Unmarshal()
33 bool JsonCfg::Unmarshal(uint32_t &data, nlohmann::json jsonObj, std::string key) in Unmarshal() argument
35 JSON_CHECK_HELPER_RETURN_IF_FAILED(jsonObj, key, number, false); in Unmarshal()
36 data = jsonObj.at(key).get<uint32_t>(); in Unmarshal()
40 bool JsonCfg::Unmarshal(int32_t &data, nlohmann::json jsonObj, std::string key) in Unmarshal() argument
[all …]
/base/security/device_auth/common_lib/impl/src/
Djson_utils.c57 void DeleteItemFromJson(CJson *jsonObj, const char *key) in DeleteItemFromJson() argument
59 if (jsonObj == NULL || key == NULL) { in DeleteItemFromJson()
62 cJSON_DeleteItemFromObjectCaseSensitive(jsonObj, key); in DeleteItemFromJson()
65 void DeleteAllItemExceptOne(CJson *jsonObj, const char *key) in DeleteAllItemExceptOne() argument
67 if (jsonObj == NULL || key == NULL) { in DeleteAllItemExceptOne()
75 if (strcmp(key, curItem->string) != 0) { in DeleteAllItemExceptOne()
97 CJson *DetachItemFromJson(CJson *jsonObj, const char *key) in DetachItemFromJson() argument
99 if (jsonObj == NULL || key == NULL) { in DetachItemFromJson()
103 return cJSON_DetachItemFromObjectCaseSensitive(jsonObj, key); in DetachItemFromJson()
137 CJson *GetObjFromJson(const CJson *jsonObj, const char *key) in GetObjFromJson() argument
[all …]
/base/update/updateservice/services/core/ability/preference/include/
Dpreferences_utils.h34 bool SaveString(const std::string &key, const std::string &value);
35 bool SaveInt(const std::string &key, int value);
36 bool SaveBool(const std::string &key, bool value);
37 bool SaveLong(const std::string &key, int64_t value);
38 bool SaveFloat(const std::string &key, float value);
40 std::string ObtainString(const std::string &key, const std::string &defValue);
41 int ObtainInt(const std::string &key, int defValue);
42 bool ObtainBool(const std::string &key, bool defValue);
43 int64_t ObtainLong(const std::string &key, int64_t defValue);
44 float ObtainFloat(const std::string &key, float defValue);
[all …]
/base/accesscontrol/sandbox_manager/services/common/database/src/
Dgeneric_values.cpp21 void GenericValues::Put(const std::string &key, int32_t value) in Put() argument
23 map_.insert(std::make_pair(key, VariantValue(value))); in Put()
26 void GenericValues::Put(const std::string &key, int64_t value) in Put() argument
28 map_.insert(std::make_pair(key, VariantValue(value))); in Put()
31 void GenericValues::Put(const std::string &key, const std::string &value) in Put() argument
33 map_.insert(std::make_pair(key, VariantValue(value))); in Put()
36 void GenericValues::Put(const std::string &key, const VariantValue &value) in Put() argument
38 map_.insert(std::make_pair(key, value)); in Put()
41 VariantValue GenericValues::Get(const std::string &key) const in Get()
43 auto iter = map_.find(key); in Get()
[all …]
/base/security/access_token/services/common/database/src/
Dgeneric_values.cpp21 void GenericValues::Put(const std::string& key, int32_t value) in Put() argument
23 map_.insert(std::make_pair(key, VariantValue(value))); in Put()
26 void GenericValues::Put(const std::string& key, int64_t value) in Put() argument
28 map_.insert(std::make_pair(key, VariantValue(value))); in Put()
31 void GenericValues::Put(const std::string& key, const std::string& value) in Put() argument
33 map_.insert(std::make_pair(key, VariantValue(value))); in Put()
36 void GenericValues::Put(const std::string& key, const VariantValue& value) in Put() argument
38 map_.insert(std::make_pair(key, value)); in Put()
41 VariantValue GenericValues::Get(const std::string& key) const in Get()
43 auto iter = map_.find(key); in Get()
[all …]
/base/security/huks/test/unittest/huks_standard_test/crypto_engine_test/src/
Dhks_crypto_hal_api_mbedtls.cpp92 HksBlob key = {}; variable
94 ret = HksCryptoHalGenerateKey(&spec, &key);
113 HksBlob key = {}; variable
115 ret = HksCryptoHalGenerateKey(&spec, &key);
128 HksBlob key = { .size = 0, .data = nullptr }; variable
135 ret = HksCryptoHalEncrypt(&key, nullptr, &message, &cipherTextTest, &tagAead);
138 key = { .size = 1, .data = buff };
139 ret = HksCryptoHalEncrypt(&key, nullptr, &message, &cipherTextTest, &tagAead);
143 ret = HksCryptoHalEncrypt(&key, nullptr, &message, &cipherTextTest, &tagAead);
147 ret = HksCryptoHalEncrypt(&key, nullptr, &message, &cipherTextTest, &tagAead);
[all …]
/base/security/crypto_framework/test/unittest/src/
Dcrypto_sm4_generator_test.cpp56 static int32_t GenerateSymKey(const char *algoName, HcfSymKey **key) in GenerateSymKey() argument
66 ret = generator->generateSymKey(generator, key); in GenerateSymKey()
78 HcfSymKey *key = nullptr; variable
87 ret = generator->generateSymKey(generator, &key);
106 HcfObjDestroy(key);
140 HcfSymKey *key = nullptr; variable
149 ret = generator->generateSymKey(generator, &key);
156 generatorAlgoName = generator->getAlgoName(reinterpret_cast<HcfSymKeyGenerator *>(key));
163 HcfObjDestroy(key);
171 HcfSymKey *key = nullptr; variable
[all …]
Dcrypto_sm4_ecb_cipher_test.cpp53 HcfSymKey *key = nullptr; variable
61 ret = generator->generateSymKey(generator, &key);
73 ret = Sm4Encrypt(cipher, key, nullptr, cipherText, &cipherTextLen);
79 ret = Sm4Decrypt(cipher, key, nullptr, cipherText, cipherTextLen);
86 HcfObjDestroy((HcfObjectBase *)key);
100 HcfSymKey *key = nullptr; variable
108 ret = generator->generateSymKey(generator, &key);
120 ret = Sm4Encrypt(cipher, key, nullptr, cipherText, &cipherTextLen);
126 ret = Sm4Decrypt(cipher, key, nullptr, cipherText, cipherTextLen);
134 HcfObjDestroy((HcfObjectBase *)key);
[all …]
Dcrypto_3des_cipher_test.cpp55 static HcfResult GenerateDesSymKey(HcfSymKey **key) in GenerateDesSymKey() argument
65 ret = generator->generateSymKey(generator, key); in GenerateDesSymKey()
73 static int32_t DesEncrypt(HcfCipher *cipher, HcfSymKey *key, HcfParamsSpec *params, in DesEncrypt() argument
80 int32_t ret = cipher->init(cipher, ENCRYPT_MODE, (HcfKey *)key, params); in DesEncrypt()
116 static int32_t DesDecrypt(HcfCipher *cipher, HcfSymKey *key, HcfParamsSpec *params, in DesDecrypt() argument
123 int32_t ret = cipher->init(cipher, DECRYPT_MODE, (HcfKey *)key, params); in DesDecrypt()
163 static int32_t DesNoUpdateEncrypt(HcfCipher *cipher, HcfSymKey *key, HcfParamsSpec *params, in DesNoUpdateEncrypt() argument
170 int32_t ret = cipher->init(cipher, ENCRYPT_MODE, (HcfKey *)key, params); in DesNoUpdateEncrypt()
193 static int32_t DesNoUpdateDecrypt(HcfCipher *cipher, HcfSymKey *key, HcfParamsSpec *params, in DesNoUpdateDecrypt() argument
200 int32_t ret = cipher->init(cipher, DECRYPT_MODE, (HcfKey *)key, params); in DesNoUpdateDecrypt()
[all …]
/base/security/device_auth/test/unittest/deviceauth/source/
Djson_utils_mock.c114 void DeleteItemFromJson(CJson *jsonObj, const char *key) in DeleteItemFromJson() argument
116 if (jsonObj == NULL || key == NULL) { in DeleteItemFromJson()
119 cJSON_DeleteItemFromObjectCaseSensitive(jsonObj, key); in DeleteItemFromJson()
122 void DeleteAllItemExceptOne(CJson *jsonObj, const char *key) in DeleteAllItemExceptOne() argument
124 if (jsonObj == NULL || key == NULL) { in DeleteAllItemExceptOne()
132 if (strcmp(key, curItem->string) != 0) { in DeleteAllItemExceptOne()
154 CJson *DetachItemFromJson(CJson *jsonObj, const char *key) in DetachItemFromJson() argument
156 if (jsonObj == NULL || key == NULL) { in DetachItemFromJson()
160 return cJSON_DetachItemFromObjectCaseSensitive(jsonObj, key); in DetachItemFromJson()
195 CJson *GetObjFromJson(const CJson *jsonObj, const char *key) in GetObjFromJson() argument
[all …]
/base/usb/usb_manager/frameworks/dialog/dialog_ui/usb_right_dialog/src/main/ets/util/
DGlobalThisProxy.ts32 getContext(key:string): common.ServiceExtensionContext {
33 let value = this.extensionMap.get(key);
40 setContext(key: string, value: common.ServiceExtensionContext): void {
41 this.extensionMap.set(key, value);
44 getNumInfo(key: string): number {
45 let value = this.infoNumMap.get(key);
52 setNumInfo(key: string, value: number): void {
53 this.infoNumMap.set(key, value);
56 getStringInfo(key: string): string {
57 let value = this.infoStringMap.get(key);
[all …]
/base/web/webview/ohos_glue/ohos_adapter/cpptoc/
Dark_ohos_web_permission_data_base_adapter_cpptoc.cpp25 …_ark_ohos_web_permission_data_base_adapter_t* self, const ArkWebString* origin, const int32_t* key) in ark_ohos_web_permission_data_base_adapter_exist_permission_by_origin() argument
33 ARK_WEB_CPPTOC_CHECK_PARAM(key, false); in ark_ohos_web_permission_data_base_adapter_exist_permission_by_origin()
36 …eturn ArkOhosWebPermissionDataBaseAdapterCppToC::Get(self)->ExistPermissionByOrigin(*origin, *key); in ark_ohos_web_permission_data_base_adapter_exist_permission_by_origin()
40 …_ark_ohos_web_permission_data_base_adapter_t* self, const ArkWebString* origin, const int32_t* key, in ark_ohos_web_permission_data_base_adapter_get_permission_result_by_origin() argument
49 ARK_WEB_CPPTOC_CHECK_PARAM(key, false); in ark_ohos_web_permission_data_base_adapter_get_permission_result_by_origin()
54 …WebPermissionDataBaseAdapterCppToC::Get(self)->GetPermissionResultByOrigin(*origin, *key, *result); in ark_ohos_web_permission_data_base_adapter_get_permission_result_by_origin()
58 …_ark_ohos_web_permission_data_base_adapter_t* self, const ArkWebString* origin, const int32_t* key, in ark_ohos_web_permission_data_base_adapter_set_permission_by_origin() argument
67 ARK_WEB_CPPTOC_CHECK_PARAM(key, ); in ark_ohos_web_permission_data_base_adapter_set_permission_by_origin()
70 …ArkOhosWebPermissionDataBaseAdapterCppToC::Get(self)->SetPermissionByOrigin(*origin, *key, result); in ark_ohos_web_permission_data_base_adapter_set_permission_by_origin()
74 …_ark_ohos_web_permission_data_base_adapter_t* self, const ArkWebString* origin, const int32_t* key) in ark_ohos_web_permission_data_base_adapter_clear_permission_by_origin() argument
[all …]
/base/security/device_auth/common_lib/interfaces/
Djson_utils.h41 void DeleteItemFromJson(CJson *jsonObj, const char *key);
42 void DeleteAllItemExceptOne(CJson *jsonObj, const char *key);
44 CJson *DetachItemFromJson(CJson *jsonObj, const char *key);
63 CJson *GetObjFromJson(const CJson *jsonObj, const char *key);
77 const char *GetStringFromJson(const CJson *jsonObj, const char *key);
83 int32_t GetByteFromJson(const CJson *jsonObj, const char *key, uint8_t *byte, uint32_t len);
84 int32_t GetByteLenFromJson(const CJson *jsonObj, const char *key, uint32_t *byteLen);
85 int32_t GetIntFromJson(const CJson *jsonObj, const char *key, int32_t *value);
86 int32_t GetInt64FromJson(const CJson *jsonObj, const char *key, int64_t *value);
87 int32_t GetBoolFromJson(const CJson *jsonObj, const char *key, bool *value);
[all …]
/base/notification/distributed_notification_service/services/distributed/src/
Ddistributed_preferences.cpp56 ANS_LOGE("key <%{public}s> is invalid.", entry.key.ToString().c_str()); in InitDistributedAllInfo()
63 void DistributedPreferences::GetDistributedMainKey(std::string &key) in GetDistributedMainKey() argument
65 key = DISTRIBUTED_LABEL + DELIMITER + MAIN_LABEL + DELIMITER; in GetDistributedMainKey()
69 const sptr<NotificationBundleOption> &bundleOption, std::string &key) in GetDistributedBundleKey() argument
72key = DISTRIBUTED_LABEL + DELIMITER + BUNDLE_LABEL + DELIMITER + bundleOption->GetBundleName() + D… in GetDistributedBundleKey()
79 std::string key = entry.key.ToString(); in ResolveDistributedKey() local
81 std::size_t distributedLabelEndPosition = key.find(DELIMITER, distributedLabelPosition); in ResolveDistributedKey()
86 std::size_t typeLabelEndPosition = key.find(DELIMITER, typeLabelPosition); in ResolveDistributedKey()
91 std::string sign = key.substr(typeLabelPosition, typeLabelEndPosition - typeLabelPosition); in ResolveDistributedKey()
96 return ResolveSyncWithoutAppEnable(key, typeLabelEndPosition, entry.value.ToString()); in ResolveDistributedKey()
[all …]
/base/powermgr/battery_manager/test/unittest/src/
Dbattery_config_test.cpp74 std::string key = "soc.warning"; variable
75 if (!g_configTest.IsExist(key)) {
76 BATTERY_HILOGD(LABEL_TEST, "BatteryConfig003 %{public}s does not exist", key.c_str());
80 int32_t warnCapacity = g_configTest.GetInt(key, invalid);
93 std::string key = "temperature.high"; variable
94 if (!g_configTest.IsExist(key)) {
95 BATTERY_HILOGD(LABEL_TEST, "BatteryConfig004 %{public}s does not exist", key.c_str());
100 int32_t highTemperature = g_configTest.GetInt(key, maxTemp);
113 std::string key = "temperature.low"; variable
114 if (!g_configTest.IsExist(key)) {
[all …]
/base/security/security_guard/frameworks/common/json/include/
Djson_cfg.h22 #define JSON_CHECK_HELPER_RETURN_IF_FAILED(json, key, type, code) \ argument
24 if ((json).find((key)) == (json).end()) { \
27 if (!(json).at((key)).is_##type()) { \
34 static bool Unmarshal(uint64_t &data, nlohmann::json jsonObj, std::string key);
35 static bool Unmarshal(int64_t &data, nlohmann::json jsonObj, std::string key);
36 static bool Unmarshal(uint32_t &data, nlohmann::json jsonObj, std::string key);
37 static bool Unmarshal(int32_t &data, nlohmann::json jsonObj, std::string key);
38 static bool Unmarshal(std::string &data, nlohmann::json jsonObj, std::string key);
39 static bool Unmarshal(std::vector<int32_t> &data, nlohmann::json jsonObj, std::string key);
40 static bool Unmarshal(std::vector<std::string> &data, nlohmann::json jsonObj, std::string key);
[all …]

12345678910>>...42