Wireshark 4.7.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
secrets.h
Go to the documentation of this file.
1
11#pragma once
12#include <inttypes.h>
13#include <stdbool.h>
14
15#include <glib.h>
16#include "ws_symbol_export.h"
17#include <wiretap/wtap.h>
18
19#ifdef __cplusplus
20extern "C" {
21#endif /* __cplusplus */
22
41void secrets_init(void);
42
46void secrets_cleanup(void);
47
48#if 0
55enum secrets_scope {
56 SECRETS_SCOPE_EPAN,
57 SECRETS_SCOPE_FILE,
58};
59#endif
60
61#ifdef HAVE_LIBGNUTLS
63struct cert_key_id {
64 uint8_t key_id[20];
65};
66typedef struct cert_key_id cert_key_id_t;
67#endif /* HAVE_LIBGNUTLS */
68
69
73WS_DLL_PUBLIC void
74secrets_wtap_callback(uint32_t secrets_type, const void *secrets, unsigned size);
75
79typedef void (*secrets_block_callback_t)(const void *secrets, unsigned size);
80
88WS_DLL_PUBLIC void
89secrets_register_type(uint32_t secrets_type, secrets_block_callback_t cb);
90
91typedef unsigned (*secret_inject_count_func)(void);
92typedef bool (*secret_inject_export_func)(wtap* wth);
93typedef char* (*secret_export_func)(size_t* length);
94
103WS_DLL_PUBLIC void
104secrets_register_inject_type(const char* name, secret_inject_count_func count_func, secret_inject_export_func inject_func, secret_export_func export_func);
105
106typedef enum {
107 SECRETS_EXPORT_SUCCESS = 0,
108 SECRETS_INVALID_CAPTURE_FILE,
109 SECRETS_UNKNOWN_PROTOCOL,
110 SECRETS_NO_SECRETS,
111 SECRETS_EXPORT_FAILED,
112} secrets_export_values;
113
120WS_DLL_PUBLIC unsigned
121secrets_get_count(const char* name);
122
131WS_DLL_PUBLIC secrets_export_values
132secrets_export_dsb(const char* name, wtap* wth);
133
143WS_DLL_PUBLIC secrets_export_values
144secrets_export(const char* name, char** secrets, size_t* secrets_len, unsigned* num_secrets);
145
153WS_DLL_PUBLIC void
154secrets_inject_foreach(GHFunc func, void* param);
155
156
157#ifdef HAVE_LIBGNUTLS
164WS_DLL_PUBLIC GSList *
165secrets_get_available_keys(void);
166
176WS_DLL_PUBLIC bool
177secrets_verify_key(const char *uri, const char *password, bool *need_password, char **error);
178
180WS_DLL_PUBLIC GHashTable*
181privkey_hash_table_new(void);
182
195WS_DLL_PUBLIC int
196secrets_rsa_decrypt(const cert_key_id_t *key_id, const uint8_t *encr, unsigned encr_len, uint8_t **out, unsigned *out_len);
197#endif /* HAVE_LIBGNUTLS */
198
199#ifdef __cplusplus
200}
201#endif /* __cplusplus */
WS_DLL_PUBLIC void secrets_wtap_callback(uint32_t secrets_type, const void *secrets, unsigned size)
Definition secrets.c:184
void(* secrets_block_callback_t)(const void *secrets, unsigned size)
Definition secrets.h:79
void secrets_init(void)
Initialize the secrets management system.
Definition secrets.c:81
WS_DLL_PUBLIC void secrets_register_type(uint32_t secrets_type, secrets_block_callback_t cb)
Definition secrets.c:109
WS_DLL_PUBLIC void secrets_inject_foreach(GHFunc func, void *param)
Definition secrets.c:178
WS_DLL_PUBLIC void secrets_register_inject_type(const char *name, secret_inject_count_func count_func, secret_inject_export_func inject_func, secret_export_func export_func)
Definition secrets.c:115
WS_DLL_PUBLIC secrets_export_values secrets_export_dsb(const char *name, wtap *wth)
Definition secrets.c:137
WS_DLL_PUBLIC secrets_export_values secrets_export(const char *name, char **secrets, size_t *secrets_len, unsigned *num_secrets)
Definition secrets.c:156
WS_DLL_PUBLIC unsigned secrets_get_count(const char *name)
Definition secrets.c:127
void secrets_cleanup(void)
Cleans up all secrets-related resources.
Definition secrets.c:92
Definition wtap_module.h:58