~singpolyma/biboumi

ref: 1f8333f23f060750673d0b7c573f2e2d12142adf biboumi/louloulibs/network/credentials_manager.hpp -rw-r--r-- 1.1 KiB
1f8333f2 — Florent Le Coz Support a trusted SHA1 fingerprint to be configured for each IRC server 7 years ago
                                                                                
f928f762 Florent Le Coz
06db9b36 Florent Le Coz
f928f762 Florent Le Coz
e8386bd1 Florent Le Coz
f928f762 Florent Le Coz
e8386bd1 Florent Le Coz
f928f762 Florent Le Coz
1f8333f2 Florent Le Coz
f928f762 Florent Le Coz
e8386bd1 Florent Le Coz
1f8333f2 Florent Le Coz
f928f762 Florent Le Coz
06db9b36 Florent Le Coz
f928f762 Florent Le Coz
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef BIBOUMI_CREDENTIALS_MANAGER_HPP
#define BIBOUMI_CREDENTIALS_MANAGER_HPP

#include "louloulibs.h"

#ifdef BOTAN_FOUND

#include <botan/botan.h>
#include <botan/tls_client.h>

class TCPSocketHandler;

class Basic_Credentials_Manager: public Botan::Credentials_Manager
{
public:
  Basic_Credentials_Manager(const TCPSocketHandler* const socket_handler);
  void verify_certificate_chain(const std::string& type,
                                const std::string& purported_hostname,
                                const std::vector<Botan::X509_Certificate>&) override final;
  std::vector<Botan::Certificate_Store*> trusted_certificate_authorities(const std::string& type,
                                                                         const std::string& context) override final;
  void set_trusted_fingerprint(const std::string& fingerprint);

private:
  const TCPSocketHandler* const socket_handler;

  static void load_certs();
  static Botan::Certificate_Store_In_Memory certificate_store;
  static bool certs_loaded;
  std::string trusted_fingerprint;
};

#endif //BOTAN_FOUND
#endif //BIBOUMI_CREDENTIALS_MANAGER_HPP