aboutsummaryrefslogtreecommitdiffstats
path: root/yt/yt/core/https/config.h
blob: fe4decc26ead4d813559fa540752706caab61a57 (plain) (blame)
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#pragma once

#include "public.h"

#include <yt/yt/core/http/config.h>

#include <yt/yt/core/crypto/config.h>

namespace NYT::NHttps {

////////////////////////////////////////////////////////////////////////////////

class TServerCredentialsConfig
    : public NYTree::TYsonStruct
{
public:
    NCrypto::TPemBlobConfigPtr PrivateKey;
    NCrypto::TPemBlobConfigPtr CertChain;

    REGISTER_YSON_STRUCT(TServerCredentialsConfig);

    static void Register(TRegistrar registrar);
};

DEFINE_REFCOUNTED_TYPE(TServerCredentialsConfig)

////////////////////////////////////////////////////////////////////////////////

class TServerConfig
    : public NHttp::TServerConfig
{
public:
    TServerCredentialsConfigPtr Credentials;

    REGISTER_YSON_STRUCT(TServerConfig);

    static void Register(TRegistrar registrar);
};

DEFINE_REFCOUNTED_TYPE(TServerConfig)

////////////////////////////////////////////////////////////////////////////////

class TClientCredentialsConfig
    : public NYTree::TYsonStruct
{
public:
    NCrypto::TPemBlobConfigPtr PrivateKey;
    NCrypto::TPemBlobConfigPtr CertChain;

    REGISTER_YSON_STRUCT(TClientCredentialsConfig);

    static void Register(TRegistrar registrar);
};

DEFINE_REFCOUNTED_TYPE(TClientCredentialsConfig)

////////////////////////////////////////////////////////////////////////////////

class TClientConfig
    : public NHttp::TClientConfig
{
public:
    // If missing then builtin certificate store is used.
    TClientCredentialsConfigPtr Credentials;

    REGISTER_YSON_STRUCT(TClientConfig);

    static void Register(TRegistrar registrar);
};

DEFINE_REFCOUNTED_TYPE(TClientConfig)

////////////////////////////////////////////////////////////////////////////////

} // namespace NYT::NHttps