//////////////////////////////////////////////////////////////////////////////// // Copyright 2020 Google LLC. // // This software is licensed under the terms defined in the Widevine Master // License Agreement. For a copy of this agreement, please contact // widevine-licensing@google.com. //////////////////////////////////////////////////////////////////////////////// #include "common/hash_algorithm_util.h" #include "glog/logging.h" #include "protos/public/hash_algorithm.pb.h" namespace widevine { HashAlgorithm HashAlgorithmProtoToEnum( HashAlgorithmProto hash_algorithm_proto) { switch (hash_algorithm_proto) { case HASH_ALGORITHM_UNSPECIFIED: return HashAlgorithm::kUnspecified; case HASH_ALGORITHM_SHA_1: return HashAlgorithm::kSha1; case HASH_ALGORITHM_SHA_256: return HashAlgorithm::kSha256; default: // See below link for using proto3 enum in switch statement: // http://shortn/_ma9MY7V9wh if (HashAlgorithmProto_IsValid(hash_algorithm_proto)) { LOG(ERROR) << "Unsupported value " << hash_algorithm_proto; } else { LOG(WARNING) << "Unexpected value " << hash_algorithm_proto; } return HashAlgorithm::kUnspecified; } } HashAlgorithmProto HashAlgorithmEnumToProto(HashAlgorithm hash_algorithm) { switch (hash_algorithm) { case HashAlgorithm::kUnspecified: return HASH_ALGORITHM_UNSPECIFIED; case HashAlgorithm::kSha1: return HASH_ALGORITHM_SHA_1; case HashAlgorithm::kSha256: return HASH_ALGORITHM_SHA_256; } LOG(WARNING) << "Unexpected hash algorithm " << static_cast(hash_algorithm); return HASH_ALGORITHM_UNSPECIFIED; } } // namespace widevine