/src/botan/src/fuzzer/x509_dn.cpp
Line | Count | Source |
1 | | /* |
2 | | * (C) 2019 Jack Lloyd |
3 | | * |
4 | | * Botan is released under the Simplified BSD License (see license.txt) |
5 | | */ |
6 | | |
7 | | #include "fuzzers.h" |
8 | | #include <botan/pkix_types.h> |
9 | | #include <botan/ber_dec.h> |
10 | | #include <botan/hex.h> |
11 | | |
12 | | void fuzz(const uint8_t in[], size_t len) |
13 | 2.37k | { |
14 | 2.37k | Botan::X509_DN dn1; |
15 | 2.37k | Botan::X509_DN dn2; |
16 | | |
17 | 2.37k | try |
18 | 2.37k | { |
19 | 2.37k | Botan::BER_Decoder ber(in, len); |
20 | 2.37k | dn1.decode_from(ber); |
21 | 2.37k | dn2.decode_from(ber); |
22 | 2.37k | } |
23 | 1.62k | catch(...) { return; } |
24 | | |
25 | 750 | const bool eq = dn1 == dn2; |
26 | 750 | const bool lt1 = dn1 < dn2; |
27 | 750 | const bool lt2 = dn2 < dn1; |
28 | | |
29 | 750 | if(lt1 == false && lt2 == false) |
30 | 89 | { |
31 | 89 | FUZZER_ASSERT_TRUE(eq); |
32 | 89 | } |
33 | 661 | else |
34 | 661 | { |
35 | | // one is less than the other |
36 | 661 | FUZZER_ASSERT_TRUE(lt1 || lt2); |
37 | | |
38 | | // it is not the case that both are less than the other |
39 | 661 | FUZZER_ASSERT_TRUE(!lt1 || !lt2); |
40 | 661 | } |
41 | 750 | } |