| // Copyright 2026 Google LLC | |
| // | |
| // 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 | |
| // | |
| // https://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 "crypto/crypto_read_handler.h" | |
| #include <string> | |
| #include "absl/strings/string_view.h" | |
| namespace credentio { | |
| bool AbslParseFlag(absl::string_view text, | |
| CryptoReadHandler::TrustEnvironment* trust, | |
| std::string* error) { | |
| if (text == "prod") { | |
| *trust = CryptoReadHandler::TrustEnvironment::kProd; | |
| return true; | |
| } | |
| if (text == "qual") { | |
| *trust = CryptoReadHandler::TrustEnvironment::kQualOnly; | |
| return true; | |
| } | |
| if (text == "qual_and_prod") { | |
| *trust = CryptoReadHandler::TrustEnvironment::kQualAndProd; | |
| return true; | |
| } | |
| if (text == "dev") { | |
| *trust = CryptoReadHandler::TrustEnvironment::kDevOnly; | |
| return true; | |
| } | |
| if (text == "any") { | |
| *trust = CryptoReadHandler::TrustEnvironment::kAny; | |
| return true; | |
| } | |
| *error = "unknown trust environment"; | |
| return false; | |
| } | |
| std::string AbslUnparseFlag(CryptoReadHandler::TrustEnvironment trust) { | |
| switch (trust) { | |
| case CryptoReadHandler::TrustEnvironment::kProd: | |
| return "prod"; | |
| case CryptoReadHandler::TrustEnvironment::kQualOnly: | |
| return "qual"; | |
| case CryptoReadHandler::TrustEnvironment::kQualAndProd: | |
| return "qual_and_prod"; | |
| case CryptoReadHandler::TrustEnvironment::kDevOnly: | |
| return "dev"; | |
| case CryptoReadHandler::TrustEnvironment::kAny: | |
| return "any"; | |
| case CryptoReadHandler::TrustEnvironment::kUnspecified: | |
| break; | |
| } | |
| return "unknown"; | |
| } | |
| } // namespace credentio |