Vitaly Buka | 45dc9df | 2015-12-07 21:30:19 -0800 | [diff] [blame] | 1 | // Copyright 2015 The Weave Authors. All rights reserved. |
| 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
| 5 | #include "src/crypto_utils.h" |
| 6 | |
| 7 | bool uw_crypto_utils_equal_(const uint8_t* arr1, |
| 8 | const uint8_t* arr2, |
| 9 | size_t len) { |
| 10 | if (arr1 == NULL || arr2 == NULL) { |
| 11 | if (arr1 == NULL && arr2 == NULL && len == 0) { |
| 12 | return true; |
| 13 | } |
| 14 | return false; |
| 15 | } |
| 16 | |
| 17 | uint8_t diff = 0; |
| 18 | for (size_t i = 0; i < len; i++) { |
Vitaly Buka | 76e924f | 2015-12-13 18:26:02 -0800 | [diff] [blame] | 19 | diff |= arr1[i] ^ arr2[i]; |
Vitaly Buka | 45dc9df | 2015-12-07 21:30:19 -0800 | [diff] [blame] | 20 | } |
| 21 | |
| 22 | return 0 == diff; |
| 23 | } |