curl-fuzzer C++ reference
Loading...
Searching...
No Matches
ldaps_mock_server.h
Go to the documentation of this file.
1/*
2 * Copyright (C) Max Dymond, <cmeister2@gmail.com>, et al.
3 *
4 * SPDX-License-Identifier: curl
5 */
6
10
11#ifndef PROTO_FUZZER_LDAPS_MOCK_SERVER_H_
12#define PROTO_FUZZER_LDAPS_MOCK_SERVER_H_
13
14#include <curl/curl.h>
15
16#include <cstddef>
17#include <memory>
18#include <string>
19
22
23namespace proto_fuzzer {
24
43class LdapsMockServer final : public LdapMockServer {
44 public:
46
47 ~LdapsMockServer() override;
48
49 void ObserveState() override;
50
51 LdapsMockServer(const LdapsMockServer&) = delete;
52 LdapsMockServer& operator=(const LdapsMockServer&) = delete;
53
54 void Install(CURL* easy) override;
55
56 int negotiated_tls_version() const;
57
58 std::size_t completed_handshake_count() const;
59
60 std::string negotiated_alpn() const;
61
62 protected:
63 std::unique_ptr<MockConnection> CreateConnection() override;
64
65 private:
66 TlsMockTransport transport_;
67};
68
69} // namespace proto_fuzzer
70
71#endif // PROTO_FUZZER_LDAPS_MOCK_SERVER_H_
LdapMockServer()
Begin without a borrowed protobuf or open socketpair.
LdapsMockServer()
Construct the OpenSSL server carrier used by every LDAPS scenario.
std::string negotiated_alpn() const
std::unique_ptr< MockConnection > CreateConnection() override
Wrap one socketpair endpoint in an OpenSSL acceptor.
~LdapsMockServer() override
Release the TLS connection before the carrier-owned server context.
void ObserveState() override
Retain protocol outcomes in coverage and introspector builds.
void Install(CURL *easy) override
Install the shared socket callbacks and a stable local trust anchor.
std::size_t completed_handshake_count() const
Reusable TLS carrier for protocol-specific mock peers.
BER/ASN.1-aware in-process peer for curl's OpenLDAP-backed LDAP client.
Reusable TLS transport for structured in-process protocol peers.