1 /** 2 * Copyright Notice: 3 * Copyright 2021-2022 DMTF. All rights reserved. 4 * License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/libspdm/blob/main/LICENSE.md 5 **/ 6 7 #include "base.h" 8 libspdm_consttime_is_mem_equal(const void * destination_buffer,const void * source_buffer,size_t length)9bool libspdm_consttime_is_mem_equal(const void *destination_buffer, 10 const void *source_buffer, size_t length) 11 { 12 const volatile uint8_t *pointer_dst; 13 const volatile uint8_t *pointer_src; 14 uint8_t delta; 15 16 pointer_dst = (const uint8_t *)destination_buffer; 17 pointer_src = (const uint8_t *)source_buffer; 18 delta = 0; 19 while ((length-- != 0)) { 20 delta |= *(pointer_dst++) ^ *(pointer_src++); 21 } 22 23 return ((delta == 0) ? true : false); 24 } 25