52 lines
1.7 KiB
C++
52 lines
1.7 KiB
C++
////////////////////////////////////////////////////////////////////////////////
|
|
// 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<int>(hash_algorithm);
|
|
return HASH_ALGORITHM_UNSPECIFIED;
|
|
}
|
|
|
|
} // namespace widevine
|