1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /**
- * \file psa_crypto_core_common.h
- *
- * \brief Utility macros for internal use in the PSA cryptography core.
- */
- /*
- * Copyright The Mbed TLS Contributors
- * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
- */
- #ifndef PSA_CRYPTO_CORE_COMMON_H
- #define PSA_CRYPTO_CORE_COMMON_H
- /** Return an offset into a buffer.
- *
- * This is just the addition of an offset to a pointer, except that this
- * function also accepts an offset of 0 into a buffer whose pointer is null.
- * (`p + n` has undefined behavior when `p` is null, even when `n == 0`.
- * A null pointer is a valid buffer pointer when the size is 0, for example
- * as the result of `malloc(0)` on some platforms.)
- *
- * \param p Pointer to a buffer of at least n bytes.
- * This may be \p NULL if \p n is zero.
- * \param n An offset in bytes.
- * \return Pointer to offset \p n in the buffer \p p.
- * Note that this is only a valid pointer if the size of the
- * buffer is at least \p n + 1.
- */
- static inline unsigned char *psa_crypto_buffer_offset(
- unsigned char *p, size_t n)
- {
- return p == NULL ? NULL : p + n;
- }
- /** Return an offset into a read-only buffer.
- *
- * Similar to mbedtls_buffer_offset(), but for const pointers.
- *
- * \param p Pointer to a buffer of at least n bytes.
- * This may be \p NULL if \p n is zero.
- * \param n An offset in bytes.
- * \return Pointer to offset \p n in the buffer \p p.
- * Note that this is only a valid pointer if the size of the
- * buffer is at least \p n + 1.
- */
- static inline const unsigned char *psa_crypto_buffer_offset_const(
- const unsigned char *p, size_t n)
- {
- return p == NULL ? NULL : p + n;
- }
- #endif /* PSA_CRYPTO_CORE_COMMON_H */
|