/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */

#ifndef TLS_MUTATORS_H_
#define TLS_MUTATORS_H_

#include <cstddef>
#include <cstdint>

// Number of additional bytes in the TLS header.
// Used to properly skip DTLS seqnums.
#ifdef IS_DTLS_FUZZ
#define EXTRA_HEADER_BYTES 8
#else
#define EXTRA_HEADER_BYTES 0
#endif

namespace TlsMutators {

size_t CustomMutator(uint8_t* data, size_t size, size_t maxSize,
                     unsigned int seed);
size_t CustomCrossOver(const uint8_t* data1, size_t size1, const uint8_t* data2,
                       size_t size2, uint8_t* out, size_t maxOutSize,
                       unsigned int seed);

}  // namespace TlsMutators

#endif  // TLS_MUTATORS_H_
