diff --git a/libwvdrmengine/oemcrypto/mock/src/oemcrypto_key_mock.cpp b/libwvdrmengine/oemcrypto/mock/src/oemcrypto_key_mock.cpp index a7bc356b..133d4bd8 100644 --- a/libwvdrmengine/oemcrypto/mock/src/oemcrypto_key_mock.cpp +++ b/libwvdrmengine/oemcrypto/mock/src/oemcrypto_key_mock.cpp @@ -14,15 +14,11 @@ namespace wvoec_mock { -#define FOURCC(c1, c2, c3, c4) \ - (c1 << 24 | c2 << 16 | c3 << 8 | c4) - bool KeyControlBlock::Validate() { - if ((FOURCC('k', 'c', 't', 'l') != verification_) && // original verification - (FOURCC('k', 'c', '0', '9') != verification_) && // add in version 9 api - (FOURCC('k', 'c', '1', '0') != verification_)) { // add in version 10 api - LOGE("KCB: BAD verification string: %08X (not %08X or %08X)", verification_, - 0x6b63746c, 0x6b633039); + if (memcmp(verification_, "kctl", 4) && // original verification + memcmp(verification_, "kc09", 4) && // add in version 9 api + memcmp(verification_, "kc10", 4)) { // add in version 10 api + LOGE("KCB: BAD verification string: %4.4s", verification_); return false; } valid_ = true; @@ -49,7 +45,7 @@ KeyControlBlock::KeyControlBlock( return; } - verification_ = ExtractField(key_control_string, 0); + memcpy(verification_, &key_control_string[0], 4); duration_ = ExtractField(key_control_string, 1); nonce_ = ExtractField(key_control_string, 2); control_bits_ = ExtractField(key_control_string, 3); diff --git a/libwvdrmengine/oemcrypto/mock/src/oemcrypto_key_mock.h b/libwvdrmengine/oemcrypto/mock/src/oemcrypto_key_mock.h index e7f16d36..1895446d 100644 --- a/libwvdrmengine/oemcrypto/mock/src/oemcrypto_key_mock.h +++ b/libwvdrmengine/oemcrypto/mock/src/oemcrypto_key_mock.h @@ -44,14 +44,14 @@ class KeyControlBlock { uint32_t duration() const { return duration_; } void set_duration(uint32_t duration) { duration_ = duration; } uint32_t nonce() const { return nonce_; } - uint32_t verification() const { return verification_; } + const char* verification() const { return verification_; } uint32_t control_bits() const { return control_bits_; } private: uint32_t ExtractField(const std::vector& str, int idx); bool valid_; - uint32_t verification_; + char verification_[4]; uint32_t duration_; uint32_t nonce_; uint32_t control_bits_;