mbed TLS v2.16.3: platform_util.h File Reference

mbed TLS v2.16.3

Macros | Functions
platform_util.h File Reference

Common and shared functions used by multiple modules in the Mbed TLS library. More...

`#include "config.h"`
`#include <stddef.h>`
`#include "platform_time.h"`
`#include <time.h>`
Include dependency graph for platform_util.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Macros
#define | MBEDTLS_INTERNAL_VALIDATE_RET(cond, ret) do { } while( 0 )
#define | MBEDTLS_INTERNAL_VALIDATE(cond) do { } while( 0 )
#define | MBEDTLS_DEPRECATED_STRING_CONSTANT(VAL) VAL
#define | MBEDTLS_DEPRECATED_NUMERIC_CONSTANT(VAL) VAL

## Functions
void | mbedtls_platform_zeroize (void *buf, size_t len)
| Securely zeroize a buffer. More...
struct tm * | mbedtls_platform_gmtime_r (const mbedtls_time_t *tt, struct tm *tm_buf)
| Platform-specific implementation of gmtime_r() More...

## Detailed Description

Common and shared functions used by multiple modules in the Mbed TLS library.

Definition in file platform_util.h.

## Macro Definition Documentation

## ◆ MBEDTLS_DEPRECATED_NUMERIC_CONSTANT

#define MBEDTLS_DEPRECATED_NUMERIC_CONSTANT | ( |  | VAL | ) | VAL

Definition at line 133 of file platform_util.h.

## ◆ MBEDTLS_DEPRECATED_STRING_CONSTANT

#define MBEDTLS_DEPRECATED_STRING_CONSTANT | ( |  | VAL | ) | VAL

Definition at line 132 of file platform_util.h.

## ◆ MBEDTLS_INTERNAL_VALIDATE

#define MBEDTLS_INTERNAL_VALIDATE | ( |  | cond | ) | do { } while( 0 )

Definition at line 112 of file platform_util.h.

## ◆ MBEDTLS_INTERNAL_VALIDATE_RET

#define MBEDTLS_INTERNAL_VALIDATE_RET | ( |  | cond,
|  |  | ret
| ) |  | do { } while( 0 )

Definition at line 111 of file platform_util.h.

## Function Documentation

## ◆ mbedtls_platform_gmtime_r()

struct tm* mbedtls_platform_gmtime_r | ( | const mbedtls_time_t * | tt,
|  | struct tm * | tm_buf
| ) |  |

Platform-specific implementation of gmtime_r()

            The function is a thread-safe abstraction that behaves
            similarly to the gmtime_r() function from Unix/POSIX.

            Mbed TLS will try to identify the underlying platform and
            make use of an appropriate underlying implementation (e.g.
            gmtime_r() for POSIX and gmtime_s() for Windows). If this is
            not possible, then gmtime() will be used. In this case, calls
            from the library to gmtime() will be guarded by the mutex
            mbedtls_threading_gmtime_mutex if MBEDTLS_THREADING_C is
            enabled. It is recommended that calls from outside the library
            are also guarded by this mutex.

            If MBEDTLS_PLATFORM_GMTIME_R_ALT is defined, then Mbed TLS will
            unconditionally use the alternative implementation for
            mbedtls_platform_gmtime_r() supplied by the user at compile time.

Parameters

  tt | Pointer to an object containing time (in seconds) since the epoch to be converted
  tm_buf | Pointer to an object where the results will be stored

Returns
  Pointer to an object of type struct tm on success, otherwise NULL

## ◆ mbedtls_platform_zeroize()

void mbedtls_platform_zeroize | ( | void * | buf,
|  | size_t | len
| ) |  |

Securely zeroize a buffer.

             The function is meant to wipe the data contained in a buffer so
             that it can no longer be recovered even if the program memory
             is later compromised. Call this function on sensitive data
             stored on the stack before returning from a function, and on
             sensitive data stored on the heap before freeing the heap
             object.

             It is extremely difficult to guarantee that calls to
             mbedtls_platform_zeroize() are not removed by aggressive
             compiler optimizations in a portable way. For this reason, Mbed
             TLS provides the configuration option
             MBEDTLS_PLATFORM_ZEROIZE_ALT, which allows users to configure
             mbedtls_platform_zeroize() to use a suitable implementation for
             their platform and needs

Parameters

  buf | Buffer to be zeroized
  len | Length of the buffer in bytes