Add crypt_safe_memcpy to libcryptsetup.h.

This commit is contained in:
Milan Broz
2024-04-24 21:53:21 +02:00
parent 7b3a341809
commit 4322ddbcb3
3 changed files with 23 additions and 0 deletions

View File

@@ -3100,6 +3100,15 @@ void *crypt_safe_realloc(void *data, size_t size);
*/ */
void crypt_safe_memzero(void *data, size_t size); void crypt_safe_memzero(void *data, size_t size);
/**
* Memcpy helper to avoid spilling sensitive data through additional registers
*
* @param dst pointer to memory to be written
* @param src pointer to memory to be copied
* @param size size of memory in bytes
*/
void *crypt_safe_memcpy(void *dst, const void *src, size_t size);
/** @} */ /** @} */
/** /**

View File

@@ -180,3 +180,8 @@ CRYPTSETUP_2.7 {
crypt_set_keyring_to_link; crypt_set_keyring_to_link;
crypt_wipe_hw_opal; crypt_wipe_hw_opal;
} CRYPTSETUP_2.6; } CRYPTSETUP_2.6;
CRYPTSETUP_2.8 {
global:
crypt_safe_memcpy;
} CRYPTSETUP_2.7;

View File

@@ -42,6 +42,15 @@ void crypt_safe_memzero(void *data, size_t size)
return crypt_backend_memzero(data, size); return crypt_backend_memzero(data, size);
} }
/* Memcpy helper to avoid spilling sensitive data through additional registers */
void *crypt_safe_memcpy(void *dst, const void *src, size_t size)
{
if (!dst || !src)
return NULL;
return crypt_backend_memcpy(dst, src, size);
}
/* safe allocations */ /* safe allocations */
void *crypt_safe_alloc(size_t size) void *crypt_safe_alloc(size_t size)
{ {