Merge from Widevine repo of two CLs. Merge from Widevine repo of http://go/wvgerrit/94743 A license release should not have a core message. This CL adjusts the existing unit tests to verify this. There is also a new unit test called SecureStop that explicitly tests sending a secure stop in a new session without first loading the license. Merge from Widevine repo of http://go/wvgerrit/94865 This CL has the following changes copied from google3: http://cr/298871728 Remove odk_static_assert for Message size temporarily http://cr/298755935 Fix a compiling error during macro expansion http://cr/298481745 Add missing header for android http://cr/298448142 Fix odk_test gyp file http://cr/298419641 Remove header from Android.bp http://cr/298402053 Separate sizeOf(args) bytes in fuzz tests http://cr/297730316 No core messages for license release http://cr/297714346 Add copybara_test and piper_sot_to_gerrit http://cr/297636713 Adding some comments around boolean conversion code http://cr/297420679 Autofuzzer when ran with address sanitizer ... http://cr/296513584 Minor fix with fuzzing odk clock values http://cr/296322024 Fixing errors in code with how request ... http://cr/296313159 Fuzzing ODK clock values by setting aside ... http://cr/295763207 Add more odk tests and move helper functions to test helper http://cr/294524098 Adding a Build Rule for ODK_KDO_Fuzzer and updating http://cr/294492213 Address a few review comments of ODK http://cr/293674368 odk_fuzz: add TODOs & comments http://cr/293492806 Fix spelling Bug: 150243585 Bug: 150020278 Bug: 150095506 Bug: 147297226 Bug: 148290294 Bug: 148907684 Bug: 150608451 Test: unit tests Change-Id: I25fd406f29f4eba40f5cb27e9a1317dce4ffc2f5
35 lines
882 B
C
35 lines
882 B
C
/* Copyright 2019 Google LLC. All rights reserved. This file and proprietary */
|
|
/* source code may only be used and distributed under the Widevine Master */
|
|
/* License Agreement. */
|
|
|
|
#include "odk_util.h"
|
|
|
|
int crypto_memcmp(const void* in_a, const void* in_b, size_t len) {
|
|
if (len == 0) {
|
|
return 0;
|
|
}
|
|
|
|
/* Only valid pointers are allowed. */
|
|
if (in_a == NULL || in_b == NULL) {
|
|
return -1;
|
|
}
|
|
|
|
const uint8_t* a = in_a;
|
|
const uint8_t* b = in_b;
|
|
uint8_t x = 0;
|
|
|
|
for (size_t i = 0; i < len; i++) {
|
|
x |= a[i] ^ b[i];
|
|
}
|
|
return x;
|
|
}
|
|
|
|
bool ODK_NonceValuesEqual(const ODK_NonceValues* a, const ODK_NonceValues* b) {
|
|
if (a == NULL || b == NULL) {
|
|
return (a == b);
|
|
}
|
|
return (a->api_major_version == b->api_major_version &&
|
|
a->api_minor_version == b->api_minor_version &&
|
|
a->nonce == b->nonce && a->session_id == b->session_id);
|
|
}
|