/* Copyright (c) 2001, Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
* Copyright (c) 2007-2020, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
* \file crypto_util.h
*
* \brief Common functions for cryptographic routines.
**/
#ifndef TOR_CRYPTO_UTIL_H
#define TOR_CRYPTO_UTIL_H
#include "lib/cc/torint.h"
#include "lib/malloc/malloc.h"
/** OpenSSL-based utility functions. */
void memwipe(void *mem, uint8_t byte, size_t sz);
void tor_str_wipe_and_free_(char *str);
/**
* Securely all memory in str, then free it.
*
* As tor_free(), tolerates null pointers, and sets str to NULL.
**/
#define tor_str_wipe_and_free(str) \
FREE_AND_NULL(char, tor_str_wipe_and_free_, (str))
#endif /* !defined(TOR_CRYPTO_UTIL_H) */