/* * Copyright (c) 2023 Huawei Device Co., Ltd. * Licensed 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 "base_config.h" #include "nlohmann/json.hpp" #include "security_guard_log.h" namespace OHOS::Security::SecurityGuard { namespace { constexpr int32_t CFG_FILE_MAX_SIZE = 1 * 1024 * 1024; // byte } bool BaseConfig::Check() { if (!stream_.is_open() ||!stream_) { SGLOGE("stream error"); return false; } stream_.seekg(0, std::ios::end); int len = static_cast<int>(stream_.tellg()); if (len == 0 || len > CFG_FILE_MAX_SIZE) { SGLOGE("stream is empty or too large, len = %{public}d", len); stream_.close(); return false; } stream_.seekg(0, std::ios::beg); return true; } BaseConfig::~BaseConfig() { if (stream_.is_open()) { stream_.close(); } } } // OHOS::Security::SecurityGuard