blob: ba8df3f2787e6e641177b1b57ed287ba57638ca4 [file] [log] [blame]
James Kuszmaul4a42b182021-01-17 11:32:46 -08001#pragma once
2#include "dtls_transport.h"
3#include <rawrtcc/code.h>
4#include <re.h>
5
6// Dependencies
7struct rawrtc_dtls_fingerprint;
8struct rawrtc_dtls_fingerprints;
9
10/*
11 * DTLS parameters.
12 */
13struct rawrtc_dtls_parameters;
14
15/*
16 * Create a new DTLS parameters instance.
17 * `*parametersp` must be unreferenced.
18 */
19enum rawrtc_code rawrtc_dtls_parameters_create(
20 struct rawrtc_dtls_parameters** const parametersp, // de-referenced
21 enum rawrtc_dtls_role const role,
22 struct rawrtc_dtls_fingerprint* const fingerprints[], // referenced (each item)
23 size_t const n_fingerprints);
24
25/*
26 * Get the DTLS parameter's role value.
27 */
28enum rawrtc_code rawrtc_dtls_parameters_get_role(
29 enum rawrtc_dtls_role* rolep, // de-referenced
30 struct rawrtc_dtls_parameters* const parameters);
31
32/*
33 * Get the DTLS parameter's fingerprint array.
34 * `*fingerprintsp` must be unreferenced.
35 */
36enum rawrtc_code rawrtc_dtls_parameters_get_fingerprints(
37 struct rawrtc_dtls_fingerprints** const fingerprintsp, // de-referenced
38 struct rawrtc_dtls_parameters* const parameters);