1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this file, 3 * You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 #ifndef tls_mutators_h__ 6 #define tls_mutators_h__ 7 8 namespace TlsMutators { 9 10 void SetIsDTLS(); 11 12 size_t DropRecord(uint8_t *data, size_t size, size_t max_size, 13 unsigned int seed); 14 size_t ShuffleRecords(uint8_t *data, size_t size, size_t max_size, 15 unsigned int seed); 16 size_t DuplicateRecord(uint8_t *data, size_t size, size_t max_size, 17 unsigned int seed); 18 size_t TruncateRecord(uint8_t *data, size_t size, size_t max_size, 19 unsigned int seed); 20 size_t FragmentRecord(uint8_t *data, size_t size, size_t max_size, 21 unsigned int seed); 22 23 size_t CrossOver(const uint8_t *data1, size_t size1, const uint8_t *data2, 24 size_t size2, uint8_t *out, size_t max_out_size, 25 unsigned int seed); 26 27 } // namespace TlsMutators 28 29 #endif // tls_mutators_h__ 30