libwebsockets
Lightweight C library for HTML5 websockets
Toggle main menu visibility
class="ui-resizable-handle">
Loading...
Searching...
No Matches
lws-dht-dnssec.h
Go to the documentation of this file.
1
/*
2
* libwebsockets - small server side websockets and web server implementation
3
*
4
* Copyright (C) 2010 - 2026 Andy Green <andy@warmcat.com>
5
*
6
* Permission is hereby granted, free of charge, to any person obtaining a copy
7
* of this software and associated documentation files (the "Software"), to
8
* deal in the Software without restriction, including without limitation the
9
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10
* sell copies of the Software, and to permit persons to whom the Software is
11
* furnished to do so, subject to the following conditions:
12
*
13
* The above copyright notice and this permission notice shall be included in
14
* all copies or substantial portions of the Software.
15
*
16
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
22
* IN THE SOFTWARE.
23
*/
24
25
#if !defined(__LWS_DHT_DNSSEC_H__)
26
#define __LWS_DHT_DNSSEC_H__
27
28
struct
lws_context;
29
30
struct
lws_dht_dnssec_keygen_args
{
31
const
char
*
domain
;
32
const
char
*
workdir
;
33
const
char
*
type
;
/* e.g. "EC" or "RSA" */
34
const
char
*
curve
;
35
int
bits
;
36
};
37
38
struct
lws_dht_dnssec_dsfromkey_args
{
39
const
char
*
domain
;
40
const
char
*
workdir
;
41
const
char
*
hash
;
/* E.g., "SHA256" */
42
};
43
44
struct
lws_dht_dnssec_signzone_args
{
45
const
char
*
domain
;
46
const
char
*
workdir
;
47
const
char
*
certs_dir
;
48
uint32_t
sign_validity_duration
;
49
char
ipv4
[64];
50
char
ipv6
[64];
51
};
52
53
struct
lws_dht_dnssec_importnsd_args
{
54
const
char
*
domain
;
55
const
char
*
key1_prefix
;
56
const
char
*
key2_prefix
;
/* optional if only importing 1 key */
57
};
58
59
typedef
void (*
lws_dht_dnssec_fetch_cb_t
)(
void
*opaque,
const
char
*domain,
int
status);
60
61
struct
lws_dht_dnssec_fetch_zone_args
{
62
struct
lws_vhost *
vhost
;
63
const
char
*
domain
;
64
const
char
*
cache_dir
;
65
lws_dht_dnssec_fetch_cb_t
cb
;
66
void
*
opaque
;
67
int
is_cancel
;
/* If 1, cancel an ongoing fetch for this domain/opaque pair */
68
int
force_network
;
/* If 1, bypass local cache and query network directly */
69
};
70
71
struct
lws_dht_dnssec_ops
{
72
int (*
keygen
)(
struct
lws_context *context,
struct
lws_dht_dnssec_keygen_args
*args);
73
int (*
dsfromkey
)(
struct
lws_context *context,
struct
lws_dht_dnssec_dsfromkey_args
*args);
74
int (*
signzone
)(
struct
lws_context *context,
struct
lws_dht_dnssec_signzone_args
*args);
75
int (*
importnsd
)(
struct
lws_context *context,
struct
lws_dht_dnssec_importnsd_args
*args);
76
int (*
bump_zone_serial
)(
struct
lws_context *context,
const
char
*zone_filepath);
77
78
int (*
add_temp_zone
)(
struct
lws_context *context,
const
char
*domain,
const
char
*zone_str,
int
ttl_secs);
79
int (*
publish_jws
)(
struct
lws_vhost *vhost,
const
char
*jws_filepath);
80
int (*
fetch_zone
)(
struct
lws_context *cx,
81
struct
lws_dht_dnssec_fetch_zone_args
*args);
82
83
/*
84
* Tell DHT plugin to actively subscribe to the network for changes
85
* to this domain using LWS_DHT_EVENT_NOTIFY pub/sub.
86
*/
87
int (*
subscribe_zone
)(
struct
lws_vhost *vhost,
const
char
*domain);
88
89
/*
90
* Actively repair an outdated peer we encountered by firing a targeted
91
* EVENT_NOTIFY packet at them containing the fresh SOA Serial.
92
*/
93
int (*
notify_peer_outdated
)(
struct
lws_vhost *vhost,
const
char
*domain,
94
const
lws_sockaddr46
*sa46_peer, uint64_t newer_soa_serial);
95
96
void (*
register_auth_cb
)(
struct
lws_vhost *vh, void (*cb)(
void
*opaque,
const
char
*domain,
const
char
*payload_path),
void
*opaque);
97
};
98
99
100
#endif
lws_sockaddr46
Definition
lws-adopt.h:87
uint32_t
unsigned int uint32_t
Definition
libwebsockets.h:695
lws_dht_dnssec_importnsd_args::domain
const char * domain
Definition
lws-dht-dnssec.h:54
lws_dht_dnssec_dsfromkey_args::hash
const char * hash
Definition
lws-dht-dnssec.h:41
lws_dht_dnssec_dsfromkey_args::domain
const char * domain
Definition
lws-dht-dnssec.h:39
lws_dht_dnssec_dsfromkey_args::workdir
const char * workdir
Definition
lws-dht-dnssec.h:40
lws_dht_dnssec_signzone_args::domain
const char * domain
Definition
lws-dht-dnssec.h:45
lws_dht_dnssec_signzone_args::ipv6
char ipv6[64]
Definition
lws-dht-dnssec.h:50
lws_dht_dnssec_fetch_zone_args::force_network
int force_network
Definition
lws-dht-dnssec.h:68
lws_dht_dnssec_keygen_args::workdir
const char * workdir
Definition
lws-dht-dnssec.h:32
lws_dht_dnssec_fetch_zone_args::is_cancel
int is_cancel
Definition
lws-dht-dnssec.h:67
lws_dht_dnssec_keygen_args::curve
const char * curve
Definition
lws-dht-dnssec.h:34
lws_dht_dnssec_signzone_args::sign_validity_duration
uint32_t sign_validity_duration
Definition
lws-dht-dnssec.h:48
lws_dht_dnssec_keygen_args::bits
int bits
Definition
lws-dht-dnssec.h:35
lws_dht_dnssec_signzone_args::certs_dir
const char * certs_dir
Definition
lws-dht-dnssec.h:47
lws_dht_dnssec_keygen_args::type
const char * type
Definition
lws-dht-dnssec.h:33
lws_dht_dnssec_signzone_args::workdir
const char * workdir
Definition
lws-dht-dnssec.h:46
lws_dht_dnssec_fetch_zone_args::cb
lws_dht_dnssec_fetch_cb_t cb
Definition
lws-dht-dnssec.h:65
lws_dht_dnssec_keygen_args::domain
const char * domain
Definition
lws-dht-dnssec.h:31
lws_dht_dnssec_importnsd_args::key2_prefix
const char * key2_prefix
Definition
lws-dht-dnssec.h:56
lws_dht_dnssec_fetch_zone_args::opaque
void * opaque
Definition
lws-dht-dnssec.h:66
lws_dht_dnssec_fetch_zone_args::domain
const char * domain
Definition
lws-dht-dnssec.h:63
lws_dht_dnssec_importnsd_args::key1_prefix
const char * key1_prefix
Definition
lws-dht-dnssec.h:55
lws_dht_dnssec_fetch_cb_t
void(* lws_dht_dnssec_fetch_cb_t)(void *opaque, const char *domain, int status)
Definition
lws-dht-dnssec.h:59
lws_dht_dnssec_signzone_args::ipv4
char ipv4[64]
Definition
lws-dht-dnssec.h:49
lws_dht_dnssec_fetch_zone_args::cache_dir
const char * cache_dir
Definition
lws-dht-dnssec.h:64
lws_dht_dnssec_fetch_zone_args::vhost
struct lws_vhost * vhost
Definition
lws-dht-dnssec.h:62
lws_dht_dnssec_dsfromkey_args
Definition
lws-dht-dnssec.h:38
lws_dht_dnssec_fetch_zone_args
Definition
lws-dht-dnssec.h:61
lws_dht_dnssec_importnsd_args
Definition
lws-dht-dnssec.h:53
lws_dht_dnssec_keygen_args
Definition
lws-dht-dnssec.h:30
lws_dht_dnssec_signzone_args
Definition
lws-dht-dnssec.h:44
lws_dht_dnssec_ops
Definition
lws-dht-dnssec.h:71
lws_dht_dnssec_ops::bump_zone_serial
int(* bump_zone_serial)(struct lws_context *context, const char *zone_filepath)
Definition
lws-dht-dnssec.h:76
lws_dht_dnssec_ops::importnsd
int(* importnsd)(struct lws_context *context, struct lws_dht_dnssec_importnsd_args *args)
Definition
lws-dht-dnssec.h:75
lws_dht_dnssec_ops::notify_peer_outdated
int(* notify_peer_outdated)(struct lws_vhost *vhost, const char *domain, const lws_sockaddr46 *sa46_peer, uint64_t newer_soa_serial)
Definition
lws-dht-dnssec.h:93
lws_dht_dnssec_ops::add_temp_zone
int(* add_temp_zone)(struct lws_context *context, const char *domain, const char *zone_str, int ttl_secs)
Definition
lws-dht-dnssec.h:78
lws_dht_dnssec_ops::subscribe_zone
int(* subscribe_zone)(struct lws_vhost *vhost, const char *domain)
Definition
lws-dht-dnssec.h:87
lws_dht_dnssec_ops::fetch_zone
int(* fetch_zone)(struct lws_context *cx, struct lws_dht_dnssec_fetch_zone_args *args)
Definition
lws-dht-dnssec.h:80
lws_dht_dnssec_ops::register_auth_cb
void(* register_auth_cb)(struct lws_vhost *vh, void(*cb)(void *opaque, const char *domain, const char *payload_path), void *opaque)
Definition
lws-dht-dnssec.h:96
lws_dht_dnssec_ops::publish_jws
int(* publish_jws)(struct lws_vhost *vhost, const char *jws_filepath)
Definition
lws-dht-dnssec.h:79
lws_dht_dnssec_ops::keygen
int(* keygen)(struct lws_context *context, struct lws_dht_dnssec_keygen_args *args)
Definition
lws-dht-dnssec.h:72
lws_dht_dnssec_ops::signzone
int(* signzone)(struct lws_context *context, struct lws_dht_dnssec_signzone_args *args)
Definition
lws-dht-dnssec.h:74
lws_dht_dnssec_ops::dsfromkey
int(* dsfromkey)(struct lws_context *context, struct lws_dht_dnssec_dsfromkey_args *args)
Definition
lws-dht-dnssec.h:73
include
libwebsockets
lws-dht-dnssec.h
Generated on
for libwebsockets by
1.18.0