Ark Server API (ASE) - Wiki
Loading...
Searching...
No Matches
Thread.h
Go to the documentation of this file.
1//
2// Thread.h
3//
4// Library: Foundation
5// Package: Threading
6// Module: Thread
7//
8// Definition of the Thread class.
9//
10// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
11// and Contributors.
12//
13// SPDX-License-Identifier: BSL-1.0
14//
15
16
17#ifndef Foundation_Thread_INCLUDED
18#define Foundation_Thread_INCLUDED
19
20
21#include "Poco/Foundation.h"
22#include "Poco/Event.h"
23#include "Poco/Mutex.h"
24
25
26#if defined(POCO_OS_FAMILY_WINDOWS)
27#if defined(_WIN32_WCE)
28#include "Poco/Thread_WINCE.h"
29#else
30#include "Poco/Thread_WIN32.h"
31#endif
32#elif defined(POCO_VXWORKS)
33#include "Poco/Thread_VX.h"
34#else
35#include "Poco/Thread_POSIX.h"
36#endif
37
38
39namespace Poco {
40
41
42class Runnable;
43class ThreadLocalStorage;
44
45
47 /// This class implements a platform-independent
48 /// wrapper to an operating system thread.
49 ///
50 /// Every Thread object gets a unique (within
51 /// its process) numeric thread ID.
52 /// Furthermore, a thread can be assigned a name.
53 /// The name of a thread can be changed at any time.
54{
55public:
57
58 using ThreadImpl::Callable;
59
61 /// Thread priorities.
62 {
63 PRIO_LOWEST = PRIO_LOWEST_IMPL, /// The lowest thread priority.
64 PRIO_LOW = PRIO_LOW_IMPL, /// A lower than normal thread priority.
65 PRIO_NORMAL = PRIO_NORMAL_IMPL, /// The normal thread priority.
66 PRIO_HIGH = PRIO_HIGH_IMPL, /// A higher than normal thread priority.
67 PRIO_HIGHEST = PRIO_HIGHEST_IMPL /// The highest thread priority.
68 };
69
70 enum Policy
71 {
73 };
74
76 /// Creates a thread. Call start() to start it.
77
78 Thread(const std::string& name);
79 /// Creates a named thread. Call start() to start it.
80
82 /// Destroys the thread.
83
84 int id() const;
85 /// Returns the unique thread ID of the thread.
86
87 TID tid() const;
88 /// Returns the native thread ID of the thread.
89
90 std::string name() const;
91 /// Returns the name of the thread.
92
93 std::string getName() const;
94 /// Returns the name of the thread.
95
96 void setName(const std::string& name);
97 /// Sets the name of the thread.
98
100 /// Sets the thread's priority.
101 ///
102 /// Some platform only allow changing a thread's priority
103 /// if the process has certain privileges.
104
106 /// Returns the thread's priority.
107
108 void setOSPriority(int prio, int policy = POLICY_DEFAULT);
109 /// Sets the thread's priority, using an operating system specific
110 /// priority value. Use getMinOSPriority() and getMaxOSPriority() to
111 /// obtain mininum and maximum priority values. Additionally,
112 /// a scheduling policy can be specified. The policy is currently
113 /// only used on POSIX platforms where the values SCHED_OTHER (default),
114 /// SCHED_FIFO and SCHED_RR are supported.
115
116 int getOSPriority() const;
117 /// Returns the thread's priority, expressed as an operating system
118 /// specific priority value.
119 ///
120 /// May return 0 if the priority has not been explicitly set.
121
122 static int getMinOSPriority(int policy = POLICY_DEFAULT);
123 /// Returns the minimum operating system-specific priority value,
124 /// which can be passed to setOSPriority() for the given policy.
125
126 static int getMaxOSPriority(int policy = POLICY_DEFAULT);
127 /// Returns the maximum operating system-specific priority value,
128 /// which can be passed to setOSPriority() for the given policy.
129
130 void setStackSize(int size);
131 /// Sets the thread's stack size in bytes.
132 /// Setting the stack size to 0 will use the default stack size.
133 /// Typically, the real stack size is rounded up to the nearest
134 /// page size multiple.
135
136 int getStackSize() const;
137 /// Returns the thread's stack size in bytes.
138 /// If the default stack size is used, 0 is returned.
139
140 void start(Runnable& target);
141 /// Starts the thread with the given target.
142 ///
143 /// Note that the given Runnable object must remain
144 /// valid during the entire lifetime of the thread, as
145 /// only a reference to it is stored internally.
146
147 void start(Poco::SharedPtr<Runnable> pTarget);
148 /// Starts the thread with the given target.
149 ///
150 /// The Thread ensures that the given target stays
151 /// alive while the thread is running.
152
153 void start(Callable target, void* pData = 0);
154 /// Starts the thread with the given target and parameter.
155
156 template <class Functor>
157 void startFunc(const Functor& fn)
158 /// Starts the thread with the given functor object or lambda.
159 {
161 }
162
163 template <class Functor>
164 void startFunc(Functor&& fn)
165 /// Starts the thread with the given functor object or lambda.
166 {
168 }
169
170 void join();
171 /// Waits until the thread completes execution.
172 /// If multiple threads try to join the same
173 /// thread, the result is undefined.
174
175 void join(long milliseconds);
176 /// Waits for at most the given interval for the thread
177 /// to complete. Throws a TimeoutException if the thread
178 /// does not complete within the specified time interval.
179
180 bool tryJoin(long milliseconds);
181 /// Waits for at most the given interval for the thread
182 /// to complete. Returns true if the thread has finished,
183 /// false otherwise.
184
185 bool isRunning() const;
186 /// Returns true if the thread is running.
187
188 static bool trySleep(long milliseconds);
189 /// Starts an interruptible sleep. When trySleep() is called,
190 /// the thread will remain suspended until:
191 /// - the timeout expires or
192 /// - wakeUp() is called
193 ///
194 /// Function returns true if sleep attempt was completed, false
195 /// if sleep was interrupted by a wakeUp() call.
196 /// A frequent scenario where trySleep()/wakeUp() pair of functions
197 /// is useful is with threads spending most of the time idle,
198 /// with periodic activity between the idle times; trying to sleep
199 /// (as opposed to sleeping) allows immediate ending of idle thread
200 /// from the outside.
201 ///
202 /// The trySleep() and wakeUp() calls should be used with
203 /// understanding that the suspended state is not a true sleep,
204 /// but rather a state of waiting for an event, with timeout
205 /// expiration. This makes order of calls significant; calling
206 /// wakeUp() before calling trySleep() will prevent the next
207 /// trySleep() call to actually suspend the thread (which, in
208 /// some scenarios, may be desirable behavior).
209
210 void wakeUp();
211 /// Wakes up the thread which is in the state of interruptible
212 /// sleep. For threads that are not suspended, calling this
213 /// function has the effect of preventing the subsequent
214 /// trySleep() call to put thread in a suspended state.
215
216 static void sleep(long milliseconds);
217 /// Suspends the current thread for the specified
218 /// amount of time.
219
220 static void yield();
221 /// Yields cpu to other threads.
222
223 static Thread* current();
224 /// Returns the Thread object for the currently active thread.
225 /// If the current thread is the main thread, 0 is returned.
226
227 static TID currentTid();
228 /// Returns the native thread ID for the current thread.
229
230protected:
231 ThreadLocalStorage& tls();
232 /// Returns a reference to the thread's local storage.
233
234 void clearTLS();
235 /// Clears the thread's local storage.
236
237 std::string makeName();
238 /// Creates a unique name for a thread.
239
240 static int uniqueId();
241 /// Creates and returns a unique id for a thread.
242
243 template <class Functor>
245 {
246 public:
247 FunctorRunnable(const Functor& functor):
249 {
250 }
251
252 FunctorRunnable(Functor&& functor):
254 {
255 }
256
258 {
259 }
260
261 void run()
262 {
263 _functor();
264 }
265
266 private:
267 Functor _functor;
268 };
269
270private:
271 Thread(const Thread&);
272 Thread& operator = (const Thread&);
273
274 int _id;
275 std::string _name;
276 ThreadLocalStorage* _pTLS;
279
280 friend class ThreadLocalStorage;
281 friend class PooledThread;
282};
283
284
285//
286// inlines
287//
288inline Thread::TID Thread::tid() const
289{
290 return tidImpl();
291}
292
293
294inline int Thread::id() const
295{
296 return _id;
297}
298
299
300inline std::string Thread::name() const
301{
302 FastMutex::ScopedLock lock(_mutex);
303
304 return _name;
305}
306
307
308inline std::string Thread::getName() const
309{
310 FastMutex::ScopedLock lock(_mutex);
311
312 return _name;
313}
314
315
316inline bool Thread::isRunning() const
317{
318 return isRunningImpl();
319}
320
321
322inline void Thread::sleep(long milliseconds)
323{
324 sleepImpl(milliseconds);
325}
326
327
328inline void Thread::yield()
329{
331}
332
333
335{
336 return static_cast<Thread*>(currentImpl());
337}
338
339
340inline void Thread::setOSPriority(int prio, int policy)
341{
342 setOSPriorityImpl(prio, policy);
343}
344
345
346inline int Thread::getOSPriority() const
347{
348 return getOSPriorityImpl();
349}
350
351
352inline int Thread::getMinOSPriority(int policy)
353{
355}
356
357
358inline int Thread::getMaxOSPriority(int policy)
359{
361}
362
363
364inline void Thread::setStackSize(int size)
365{
366 setStackSizeImpl(size);
367}
368
369
370inline int Thread::getStackSize() const
371{
372 return getStackSizeImpl();
373}
374
375
377{
378 return currentTidImpl();
379}
380
381
382} // namespace Poco
383
384
385#endif // Foundation_Thread_INCLUDED
#define ARK_API
Definition Base.h:9
#define poco_check_ptr(ptr)
Definition Bugcheck.h:125
#define poco_unexpected()
Definition Bugcheck.h:140
#define poco_assert(cond)
Definition Bugcheck.h:117
#define poco_assert_dbg(cond)
Definition Bugcheck.h:113
#define POCO_EXTERNAL_OPENSSL
Definition Config.h:189
#define POCO_THREAD_STACK_SIZE
Definition Config.h:52
#define POCO_NO_SOO
Definition Config.h:82
#define POCO_DECLARE_EXCEPTION(API, CLS, BASE)
Definition Exception.h:157
#define POCO_DECLARE_EXCEPTION_CODE(API, CLS, BASE, CODE)
Definition Exception.h:140
#define POCO_DO_JOIN2(X, Y)
Definition Foundation.h:134
#define POCO_DO_JOIN(X, Y)
Definition Foundation.h:133
#define Foundation_API
Definition Foundation.h:60
#define POCO_JOIN(X, Y)
Definition Foundation.h:132
Net_API Poco::BinaryReader & operator>>(Poco::BinaryReader &reader, Poco::Net::IPAddress &value)
#define POCO_HAVE_IPv6
Definition Net.h:64
#define Net_API
Definition Net.h:47
#define NetSSL_API
Definition NetSSL.h:48
#define POCO_OS_IRIX
Definition Platform.h:35
#define POCO_OS_TRU64
Definition Platform.h:30
#define POCO_OS_WINDOWS_NT
Definition Platform.h:43
#define POCO_OS_HPUX
Definition Platform.h:29
#define POCO_OS_CYGWIN
Definition Platform.h:39
#define POCO_OS_WINDOWS_CE
Definition Platform.h:44
#define POCO_UNUSED
Definition Platform.h:274
#define POCO_OS_VXWORKS
Definition Platform.h:38
#define POCO_OS_ANDROID
Definition Platform.h:41
#define POCO_OS_QNX
Definition Platform.h:37
#define POCO_OS_AIX
Definition Platform.h:28
#define POCO_OS_LINUX
Definition Platform.h:31
#define POCO_OS_SOLARIS
Definition Platform.h:36
#define POCO_ARCH_AMD64
Definition Platform.h:129
#define OPENSSL_VERSION_PREREQ(maj, min)
Definition Crypto.h:36
#define Crypto_API
Definition Crypto.h:82
RSAPaddingMode
The padding mode used for RSA public key encryption.
Definition Crypto.h:44
@ RSA_PADDING_PKCS1_OAEP
PKCS #1 v1.5 padding. This currently is the most widely used mode.
Definition Crypto.h:48
@ RSA_PADDING_NONE
Definition Crypto.h:52
@ RSA_PADDING_PKCS1
Definition Crypto.h:45
#define POCO_EXTERNAL_OPENSSL_SLPRO
Definition Crypto.h:24
Net_API Poco::BinaryReader & operator>>(Poco::BinaryReader &reader, Poco::Net::SocketAddress &value)
#define poco_ntoh_32(x)
Definition SocketDefs.h:328
#define INADDR_NONE
Definition SocketDefs.h:291
#define INADDR_BROADCAST
Definition SocketDefs.h:299
#define INADDR_ANY
Definition SocketDefs.h:295
#define poco_ntoh_16(x)
Definition SocketDefs.h:326
#define INADDR_LOOPBACK
Definition SocketDefs.h:303
void ASN1_STRING_clear_free(ASN1_STRING *a)
#define DECLARE_ASN1_FUNCTIONS_fname(type, itname, name)
Definition asn1.h:226
int UTF8_getc(const unsigned char *str, int len, unsigned long *val)
ASN1_INTEGER * BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai)
#define ASN1_STRFLGS_ESC_QUOTE
Definition asn1.h:370
void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags)
ASN1_TYPE * ASN1_TYPE_pack_sequence(const ASN1_ITEM *it, void *s, ASN1_TYPE **t)
int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str)
int ASN1_STRING_set_default_mask_asc(const char *p)
ASN1_STRING * ASN1_STRING_set_by_NID(ASN1_STRING **out, const unsigned char *in, int inlen, int inform, int nid)
#define B_ASN1_UTCTIME
Definition asn1.h:106
const ASN1_ITEM * ASN1_ITEM_lookup(const char *name)
int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, int ctype_nid, int econt_nid, STACK_OF(X509_ALGOR) *mdalgs, const ASN1_ITEM *it)
#define DECLARE_ASN1_PRINT_FUNCTION_fname(stname, fname)
Definition asn1.h:254
#define B_ASN1_PRINTABLESTRING
Definition asn1.h:91
#define DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name)
Definition asn1.h:247
#define B_ASN1_NUMERICSTRING
Definition asn1.h:90
ASN1_GENERALIZEDTIME * ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, time_t t, int offset_day, long offset_sec)
#define ASN1_STRFLGS_UTF8_CONVERT
Definition asn1.h:390
int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v)
void ASN1_PCTX_free(ASN1_PCTX *p)
void ASN1_STRING_length_set(ASN1_STRING *x, int n)
unsigned long ASN1_SCTX_get_flags(ASN1_SCTX *p)
const ASN1_ITEM * ASN1_SCTX_get_item(ASN1_SCTX *p)
int ASN1_TIME_set_string(ASN1_TIME *s, const char *str)
#define DECLARE_ASN1_FUNCTIONS_name(type, name)
Definition asn1.h:222
int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len, int inform, unsigned long mask)
#define DECLARE_ASN1_PRINT_FUNCTION(stname)
Definition asn1.h:251
int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num)
int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b)
ASN1_ENUMERATED * BN_to_ASN1_ENUMERATED(const BIGNUM *bn, ASN1_ENUMERATED *ai)
int i2a_ASN1_ENUMERATED(BIO *bp, const ASN1_ENUMERATED *a)
int ASN1_STRING_print_ex(BIO *out, const ASN1_STRING *str, unsigned long flags)
#define ASN1_STRFLGS_ESC_CTRL
Definition asn1.h:362
#define TYPEDEF_D2I2D_OF(type)
Definition asn1.h:275
ASN1_VALUE * ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in, long len, const ASN1_ITEM *it)
int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b)
#define B_ASN1_UTF8STRING
Definition asn1.h:105
void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags)
int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, const char *hdr, const ASN1_ITEM *it)
long ASN1_INTEGER_get(const ASN1_INTEGER *a)
int ASN1_TIME_normalize(ASN1_TIME *s)
DIRECTORYSTRING time_t t
Definition asn1.h:626
unsigned long ASN1_PCTX_get_nm_flags(const ASN1_PCTX *p)
#define TYPEDEF_I2D_OF(type)
Definition asn1.h:274
int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a)
BIO * BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it)
#define DECLARE_ASN1_NDEF_FUNCTION(name)
Definition asn1.h:240
int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size)
#define ASN1_STRFLGS_ESC_MSB
Definition asn1.h:363
int i2t_ASN1_OBJECT(char *buf, int buf_len, const ASN1_OBJECT *a)
ASN1_TIME * ASN1_TIME_adj(ASN1_TIME *s, time_t t, int offset_day, long offset_sec)
int ASN1_STRING_to_UTF8(unsigned char **out, const ASN1_STRING *in)
int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long)
int ASN1_check_infinite_end(unsigned char **p, long len)
int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s)
int ASN1_TIME_cmp_time_t(const ASN1_TIME *s, time_t t)
int ASN1_INTEGER_set(ASN1_INTEGER *a, long v)
int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a)
#define ASN1_i2d_bio_of_const(type, i2d, out, x)
Definition asn1.h:752
void ASN1_SCTX_set_app_data(ASN1_SCTX *p, void *data)
int ASN1_BIT_STRING_check(const ASN1_BIT_STRING *a, const unsigned char *flags, int flags_len)
int ASN1_ENUMERATED_get_int64(int64_t *pr, const ASN1_ENUMERATED *a)
int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, unsigned char *data, int max_len)
unsigned long ASN1_tag2bit(int tag)
int UTF8_putc(unsigned char *str, int len, unsigned long value)
#define D2I_OF(type)
Definition asn1.h:258
ASN1_SCTX * ASN1_SCTX_new(int(*scan_cb)(ASN1_SCTX *ctx))
int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size)
int ASN1_TIME_check(const ASN1_TIME *t)
void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags)
#define DIRSTRING_TYPE
Definition asn1.h:182
int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str)
int ASN1_UTCTIME_check(const ASN1_UTCTIME *a)
void ASN1_STRING_TABLE_cleanup(void)
int ASN1_object_size(int constructed, int length, int tag)
int ASN1_BIT_STRING_get_bit(const ASN1_BIT_STRING *a, int n)
int ASN1_buf_print(BIO *bp, const unsigned char *buf, size_t buflen, int off)
struct ASN1_TEMPLATE_st ASN1_TEMPLATE
Definition asn1.h:210
ASN1_UTCTIME * ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t)
int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v)
#define ASN1_ITEM_rptr(ref)
Definition asn1.h:326
int ASN1_TIME_diff(int *pday, int *psec, const ASN1_TIME *from, const ASN1_TIME *to)
struct ASN1_TLC_st ASN1_TLC
Definition asn1.h:211
BIGNUM * ASN1_ENUMERATED_to_BN(const ASN1_ENUMERATED *ai, BIGNUM *bn)
void * ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x)
#define V_ASN1_PRIMITIVE_TAG
Definition asn1.h:41
#define ASN1_d2i_bio_of(type, xnew, d2i, in, x)
Definition asn1.h:738
#define CHECKED_D2I_OF(type, d2i)
Definition asn1.h:262
ASN1_GENERALIZEDTIME * ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, time_t t)
BIGNUM * ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn)
int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, unsigned char *data, int len)
ASN1_TYPE * ASN1_generate_v3(const char *str, X509V3_CTX *cnf)
int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value)
#define CHECKED_NEW_OF(type, xnew)
Definition asn1.h:266
#define DECLARE_ASN1_FUNCTIONS(type)
Definition asn1.h:217
#define MBSTRING_FLAG
Definition asn1.h:110
#define ASN1_STRFLGS_DUMP_UNKNOWN
Definition asn1.h:412
ASN1_VALUE * SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it)
void ASN1_put_object(unsigned char **pp, int constructed, int length, int tag, int xclass)
int i2a_ASN1_INTEGER(BIO *bp, const ASN1_INTEGER *a)
void * ASN1_SCTX_get_app_data(ASN1_SCTX *p)
int ASN1_STRING_type(const ASN1_STRING *x)
int ASN1_ENUMERATED_set_int64(ASN1_ENUMERATED *a, int64_t r)
#define CHECKED_I2D_OF(type, i2d)
Definition asn1.h:264
#define ASN1_dup_of(type, i2d, d2i, x)
Definition asn1.h:690
int ASN1_str2mask(const char *str, unsigned long *pmask)
int ASN1_item_ndef_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it)
int ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm)
ASN1_VALUE * ASN1_item_new(const ASN1_ITEM *it)
int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent, int dump)
void * ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x)
int ASN1_INTEGER_get_int64(int64_t *pr, const ASN1_INTEGER *a)
ASN1_GENERALIZEDTIME * ASN1_TIME_to_generalizedtime(const ASN1_TIME *t, ASN1_GENERALIZEDTIME **out)
ASN1_OBJECT * d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, long length)
#define B_ASN1_IA5STRING
Definition asn1.h:95
void * ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it)
const char * ASN1_tag2str(int tag)
#define B_ASN1_BIT_STRING
Definition asn1.h:102
int SMIME_crlf_copy(BIO *in, BIO *out, int flags)
int ASN1_put_eoc(unsigned char **pp)
ASN1_STRING * ASN1_STRING_type_new(int type)
void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value)
void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags)
int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a, const ASN1_OCTET_STRING *b)
#define B_ASN1_BMPSTRING
Definition asn1.h:103
unsigned long ASN1_STRING_get_default_mask(void)
int ASN1_PRINTABLE_type(const unsigned char *s, int max)
#define B_ASN1_T61STRING
Definition asn1.h:92
#define ASN1_STRFLGS_RFC2253
Definition asn1.h:431
ASN1_OCTET_STRING * ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *a)
void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it)
int ASN1_const_check_infinite_end(const unsigned char **p, long len)
unsigned long ASN1_PCTX_get_flags(const ASN1_PCTX *p)
int SMIME_text(BIO *in, BIO *out)
void ASN1_add_oid_module(void)
ASN1_INTEGER * d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, long length)
int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a)
void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags)
int ASN1_INTEGER_set_uint64(ASN1_INTEGER *a, uint64_t r)
#define TYPEDEF_D2I_OF(type)
Definition asn1.h:273
int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x)
int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, const char *name, int value, BIT_STRING_BITNAME *tbl)
int ASN1_BIT_STRING_num_asc(const char *name, BIT_STRING_BITNAME *tbl)
int ASN1_TIME_print(BIO *fp, const ASN1_TIME *a)
struct ASN1_VALUE_st ASN1_VALUE
Definition asn1.h:213
void ASN1_SCTX_free(ASN1_SCTX *p)
void * ASN1_d2i_bio(void *(*xnew)(void), d2i_of_void *d2i, BIO *in, void **x)
#define CHECKED_PTR_OF(type, p)
Definition asn1.h:268
int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y)
int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, int *pclass, long omax)
int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, unsigned char *x)
int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len)
int ASN1_INTEGER_set_int64(ASN1_INTEGER *a, int64_t r)
int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, void *x)
void ASN1_STRING_free(ASN1_STRING *a)
void * ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, void *x)
ASN1_TYPE * ASN1_generate_nconf(const char *str, CONF *nconf)
unsigned long ASN1_PCTX_get_oid_flags(const ASN1_PCTX *p)
int i2d_ASN1_OBJECT(const ASN1_OBJECT *a, unsigned char **pp)
int ASN1_INTEGER_get_uint64(uint64_t *pr, const ASN1_INTEGER *a)
#define B_ASN1_UNIVERSALSTRING
Definition asn1.h:100
ASN1_OBJECT * ASN1_OBJECT_new(void)
int i2a_ASN1_STRING(BIO *bp, const ASN1_STRING *a, int type)
int i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *a)
#define CHECKED_PPTR_OF(type, p)
Definition asn1.h:270
int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len)
ASN1_STRING * ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct)
int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size)
int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, BIT_STRING_BITNAME *tbl, int indent)
void * ASN1_d2i_fp(void *(*xnew)(void), d2i_of_void *d2i, FILE *in, void **x)
ASN1_UTCTIME * ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, int offset_day, long offset_sec)
#define DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name)
Definition asn1.h:230
ASN1_STRING * ASN1_STRING_dup(const ASN1_STRING *a)
const unsigned char * ASN1_STRING_get0_data(const ASN1_STRING *x)
ASN1_INTEGER * ASN1_INTEGER_dup(const ASN1_INTEGER *x)
#define B_ASN1_SEQUENCE
Definition asn1.h:108
int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data, int len)
ASN1_PCTX * ASN1_PCTX_new(void)
int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x)
unsigned long ASN1_PCTX_get_str_flags(const ASN1_PCTX *p)
const ASN1_ITEM * ASN1_ITEM_get(size_t i)
unsigned long ASN1_PCTX_get_cert_flags(const ASN1_PCTX *p)
int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, int length)
void ASN1_OBJECT_free(ASN1_OBJECT *a)
int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str)
#define ASN1_STRFLGS_ESC_2253
Definition asn1.h:361
ASN1_STRING * ASN1_STRING_new(void)
#define B_ASN1_VISIBLESTRING
Definition asn1.h:98
int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, const ASN1_ITEM *it)
#define DECLARE_ASN1_ALLOC_FUNCTIONS(type)
Definition asn1.h:219
int ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it)
#define B_ASN1_TELETEXSTRING
Definition asn1.h:93
#define V_ASN1_NEG
Definition asn1.h:85
void ASN1_add_stable_module(void)
void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len)
#define DECLARE_ASN1_ENCODE_FUNCTIONS_const(type, name)
Definition asn1.h:235
int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num, unsigned char *buf, int off)
int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent)
#define DECLARE_ASN1_ITEM(name)
Definition asn1.h:328
int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, int inform, unsigned long mask, long minsize, long maxsize)
#define B_ASN1_UNKNOWN
Definition asn1.h:104
#define ASN1_i2d_bio_of(type, i2d, out, x)
Definition asn1.h:747
int ASN1_STRING_length(const ASN1_STRING *x)
int ASN1_item_print(BIO *out, ASN1_VALUE *ifld, int indent, const ASN1_ITEM *it, const ASN1_PCTX *pctx)
void * ASN1_TYPE_unpack_sequence(const ASN1_ITEM *it, const ASN1_TYPE *t)
ASN1_OBJECT * ASN1_OBJECT_create(int nid, unsigned char *data, int len, const char *sn, const char *ln)
int ASN1_TYPE_get_octetstring(const ASN1_TYPE *a, unsigned char *data, int max_len)
#define ASN1_STRFLGS_DUMP_DER
Definition asn1.h:419
void ASN1_STRING_set_default_mask(unsigned long mask)
const ASN1_TEMPLATE * ASN1_SCTX_get_template(ASN1_SCTX *p)
#define B_ASN1_GENERALIZEDTIME
Definition asn1.h:107
#define STABLE_FLAGS_MALLOC
Definition asn1.h:173
void * ASN1_item_dup(const ASN1_ITEM *it, void *x)
ASN1_STRING_TABLE * ASN1_STRING_TABLE_get(int nid)
int ASN1_TIME_compare(const ASN1_TIME *a, const ASN1_TIME *b)
int ASN1_TIME_set_string_X509(ASN1_TIME *s, const char *str)
const BIO_METHOD * BIO_f_asn1(void)
int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t)
int ASN1_STRING_print_ex_fp(FILE *fp, const ASN1_STRING *str, unsigned long flags)
long ASN1_ENUMERATED_get(const ASN1_ENUMERATED *a)
#define I2D_OF(type)
Definition asn1.h:259
int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value)
int ERR_load_ASN1_strings(void)
int ASYNC_init_thread(size_t max_size, size_t init_size)
ASYNC_WAIT_CTX * ASYNC_get_wait_ctx(ASYNC_JOB *job)
struct async_wait_ctx_st ASYNC_WAIT_CTX
Definition async.h:33
void ASYNC_block_pause(void)
int ASYNC_is_capable(void)
void ASYNC_unblock_pause(void)
void ASYNC_cleanup_thread(void)
struct async_job_st ASYNC_JOB
Definition async.h:32
ASYNC_JOB * ASYNC_get_current_job(void)
int ASYNC_start_job(ASYNC_JOB **job, ASYNC_WAIT_CTX *ctx, int *ret, int(*func)(void *), void *args, size_t size)
#define OSSL_ASYNC_FD
Definition async.h:22
int ASYNC_pause_job(void)
int ERR_load_ASYNC_strings(void)
#define BIO_FLAGS_READ
Definition bio.h:144
#define BIO_FLAGS_RWS
Definition bio.h:147
#define BIO_C_SET_WRITE_BUF_SIZE
Definition bio.h:324
#define BIO_C_GET_READ_REQUEST
Definition bio.h:329
int(*)(BIO *, char *, size_t, size_t *) BIO_meth_get_read_ex(const BIO_METHOD *biom)
Definition bio.h:767
#define BIO_C_GET_CIPHER_STATUS
Definition bio.h:300
#define BIO_C_MAKE_BIO_PAIR
Definition bio.h:326
#define BIO_TYPE_FILTER
Definition bio.h:29
#define BIO_FP_READ
Definition bio.h:139
#define BIO_C_SET_SSL
Definition bio.h:296
#define BIO_C_SET_BUFF_SIZE
Definition bio.h:304
#define BIO_C_GET_MD_CTX
Definition bio.h:307
#define BIO_CTRL_INFO
Definition bio.h:73
#define BIO_C_GET_MD
Definition bio.h:299
#define BIO_C_SET_BUFF_READ_DATA
Definition bio.h:309
#define BIO_C_GET_ACCEPT
Definition bio.h:311
#define BIO_CTRL_FLUSH
Definition bio.h:81
int(*)(BIO *, char *, int) BIO_meth_get_read(const BIO_METHOD *biom)
Definition bio.h:766
#define BIO_C_GET_FD
Definition bio.h:292
#define BIO_TYPE_DESCRIPTOR
Definition bio.h:28
#define BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT
Definition bio.h:314
#define BIO_CTRL_DGRAM_GET_MTU_OVERHEAD
Definition bio.h:118
#define BIO_TYPE_SOURCE_SINK
Definition bio.h:30
#define BIO_C_FILE_SEEK
Definition bio.h:315
#define BIO_C_FILE_TELL
Definition bio.h:320
#define BIO_C_DO_STATE_MACHINE
Definition bio.h:288
#define BIO_C_GET_WRITE_BUF_SIZE
Definition bio.h:325
#define BIO_CTRL_SET_CLOSE
Definition bio.h:79
#define BIO_CB_RETURN
Definition bio.h:225
#define BIO_C_SET_CONNECT_MODE
Definition bio.h:346
int(*)(BIO *, const char *) BIO_meth_get_puts(const BIO_METHOD *biom)
Definition bio.h:772
#define BIO_CTRL_EOF
Definition bio.h:72
#define BIO_FLAGS_IO_SPECIAL
Definition bio.h:146
#define BIO_CTRL_PENDING
Definition bio.h:80
#define BIO_C_SET_ACCEPT
Definition bio.h:305
int(*)(BIO *) BIO_meth_get_destroy(const BIO_METHOD *biom)
Definition bio.h:783
#define BIO_FP_WRITE
Definition bio.h:140
#define BIO_CTRL_WPENDING
Definition bio.h:83
#define BIO_C_SET_FD
Definition bio.h:291
int(*)(BIO *) BIO_meth_get_create(const BIO_METHOD *bion)
Definition bio.h:781
#define BIO_CTRL_SET_CALLBACK
Definition bio.h:84
#define BIO_C_SET_CONNECT
Definition bio.h:287
#define BIO_C_GET_WRITE_GUARANTEE
Definition bio.h:328
#define BIO_do_handshake(b)
Definition bio.h:402
#define BIO_FLAGS_WRITE
Definition bio.h:145
#define BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP
Definition bio.h:98
#define BIO_C_SET_BIND_MODE
Definition bio.h:318
#define BIO_C_GET_BIND_MODE
Definition bio.h:319
#define BIO_C_SSL_MODE
Definition bio.h:306
#define ossl_bio__attr__(x)
Definition bio.h:728
#define BIO_C_GET_SSL_NUM_RENEGOTIATES
Definition bio.h:313
#define BIO_C_GET_BUF_MEM_PTR
Definition bio.h:302
#define BIO_C_SET_FILE_PTR
Definition bio.h:293
#define BIO_C_SET_MD
Definition bio.h:298
#define BIO_CTRL_DGRAM_SET_PEER
Definition bio.h:113
#define BIO_C_GET_CONNECT
Definition bio.h:310
#define BIO_C_DESTROY_BIO_PAIR
Definition bio.h:327
#define BIO_SOCK_REUSEADDR
Definition bio.h:694
#define BIO_C_SET_SSL_RENEGOTIATE_BYTES
Definition bio.h:312
#define BIO_C_GET_BUFF_NUM_LINES
Definition bio.h:303
#define BIO_CTRL_DGRAM_GET_PEER
Definition bio.h:112
#define BIO_CTRL_GET_CLOSE
Definition bio.h:78
#define BIO_C_SET_BUF_MEM_EOF_RETURN
Definition bio.h:317
#define BIO_C_GET_SSL
Definition bio.h:297
#define BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP
Definition bio.h:99
#define BIO_C_SHUTDOWN_WR
Definition bio.h:330
#define BIO_CTRL_RESET
Definition bio.h:71
#define BIO_CTRL_DUP
Definition bio.h:82
#define BIO_C_SET_NBIO
Definition bio.h:289
#define BIO_C_SET_FILENAME
Definition bio.h:295
#define BIO_CTRL_DGRAM_CONNECT
Definition bio.h:91
#define BIO_CTRL_DGRAM_SET_CONNECTED
Definition bio.h:92
#define BIO_C_GET_CIPHER_CTX
Definition bio.h:316
#define BIO_C_GET_FILE_PTR
Definition bio.h:294
int(*)(BIO *, char *, int) BIO_meth_get_gets(const BIO_METHOD *biom)
Definition bio.h:775
#define BIO_CTRL_PEEK
Definition bio.h:87
#define BIO_C_SET_BUF_MEM
Definition bio.h:301
#define BIO_CLOSE
Definition bio.h:66
#define BIO_FLAGS_SHOULD_RETRY
Definition bio.h:148
#define BIO_CTRL_GET
Definition bio.h:75
#define BIO_FP_APPEND
Definition bio.h:141
#define BIO_C_SET_MD_CTX
Definition bio.h:336
long(*)(BIO *, int, BIO_info_cb *) BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)
Definition bio.h:785
#define BIO_CTRL_GET_CALLBACK
Definition bio.h:85
int ERR_load_BIO_strings(void)
#define BN_BITS2
Definition bn.h:48
void BN_GENCB_set(BN_GENCB *gencb, int(*callback)(int, int, BN_GENCB *), void *cb_arg)
int BN_GENCB_call(BN_GENCB *cb, int a, int b)
BN_GENCB * BN_GENCB_new(void)
int BN_get_flags(const BIGNUM *b, int n)
void BN_set_flags(BIGNUM *b, int n)
void BN_with_flags(BIGNUM *dest, const BIGNUM *b, int flags)
void * BN_GENCB_get_arg(BN_GENCB *cb)
void BN_GENCB_free(BN_GENCB *cb)
void BN_GENCB_set_old(BN_GENCB *gencb, void(*callback)(int, int, void *), void *cb_arg)
#define BN_FLG_CONSTTIME
Definition bn.h:61
int ERR_load_BN_strings(void)
int ERR_load_BUF_strings(void)
virtual std::unique_ptr< ArkApi::ICommands > & GetCommands()=0
std::mutex RequestMutex_
Definition Requests.cpp:47
void WriteRequest(std::function< void(bool, std::string)> callback, bool success, std::string result)
Definition Requests.cpp:73
std::string GetResponse(Poco::Net::HTTPClientSession *session, Poco::Net::HTTPResponse &response)
Definition Requests.cpp:107
Poco::Net::HTTPRequest ConstructRequest(const std::string &url, Poco::Net::HTTPClientSession *&session, const std::vector< std::string > &headers, const std::string &request_type)
Definition Requests.cpp:79
std::vector< RequestData > RequestsVec_
Definition Requests.cpp:46
Requests(Requests &&)=delete
ARK_API bool CreateGetRequest(const std::string &url, const std::function< void(bool, std::string)> &callback, std::vector< std::string > headers={})
Creates an async GET Request that runs in another thread but calls the callback from the main thread.
Definition Requests.cpp:129
ARK_API bool CreatePostRequest(const std::string &url, const std::function< void(bool, std::string)> &callback, const std::vector< std::string > &post_ids, const std::vector< std::string > &post_data, std::vector< std::string > headers={})
Creates an async POST Request that runs in another thread but calls the callback from the main thread...
Definition Requests.cpp:238
Requests & operator=(Requests &&)=delete
ARK_API bool CreateDeleteRequest(const std::string &url, const std::function< void(bool, std::string)> &callback, std::vector< std::string > headers={})
Creates an async DELETE Request that runs in another thread but calls the callback from the main thre...
Definition Requests.cpp:292
Requests & operator=(const Requests &)=delete
ARK_API bool CreatePostRequest(const std::string &url, const std::function< void(bool, std::string)> &callback, const std::string &post_data, std::vector< std::string > headers={})
Creates an async POST Request with application/x-www-form-urlencoded content type that runs in anothe...
Definition Requests.cpp:162
static ARK_API Requests & Get()
Definition Requests.cpp:67
ARK_API bool CreatePostRequest(const std::string &url, const std::function< void(bool, std::string)> &callback, const std::string &post_data, const std::string &content_type, std::vector< std::string > headers={})
Creates an async POST Request that runs in another thread but calls the callback from the main thread...
Definition Requests.cpp:200
std::unique_ptr< impl > pimpl
Definition Requests.h:84
Requests(const Requests &)=delete
virtual void AddOnTickCallback(const FString &id, const std::function< void(float)> &callback)=0
Added function will be called every frame.
virtual bool RemoveOnTickCallback(const FString &id)=0
Removes a on-tick callback.
Definition Logger.h:9
static std::shared_ptr< spdlog::logger > & GetLog()
Definition Logger.h:22
Base class for Delegate and Expire.
bool empty() const
Checks if any delegates are registered at the delegate.
bool _enabled
The strategy used to notify observers.
DelegateHandle add(const TDelegate &aDelegate)
ActiveResult< void > notifyAsync(const void *pSender)
AbstractEvent & operator=(const AbstractEvent &other)
void operator()(const void *pSender)
Shortcut for notify(pSender, args);.
ActiveMethod< void, NotifyAsyncParams, AbstractEvent > _executeAsync
void clear()
Removes all delegates.
void notify(const void *pSender, TArgs &args)
AbstractEvent & operator=(const AbstractEvent &other)
void remove(DelegateHandle delegateHandle)
void operator+=(const TDelegate &aDelegate)
bool isEnabled() const
Returns true if event is enabled.
ActiveMethod< TArgs, NotifyAsyncParams, AbstractEvent > _executeAsync
ActiveResult< TArgs > notifyAsync(const void *pSender, const TArgs &args)
bool empty() const
Checks if any delegates are registered at the delegate.
AbstractEvent(const AbstractEvent &other)
void operator()(TArgs &args)
Shortcut for notify(args).
bool hasDelegates() const
Returns true if there are registered delegates.
bool _enabled
The strategy used to notify observers.
TDelegate * DelegateHandle
TArgs executeAsyncImpl(const NotifyAsyncParams &par)
DelegateHandle add(const TDelegate &aDelegate)
AbstractEvent(const TStrategy &strat)
void operator()(const void *pSender, TArgs &args)
Shortcut for notify(pSender, args);.
void operator-=(const TDelegate &aDelegate)
void enable()
Enables the event.
ActiveMethod & operator=(const ActiveMethod &other)
ActiveRunnable< ResultType, void, OwnerType > ActiveRunnableType
ActiveResultType operator()(void)
Invokes the ActiveMethod.
void swap(ActiveMethod &other)
ActiveMethod(OwnerType *pOwner, Callback method)
ActiveResultType operator()(const ArgType &arg)
Invokes the ActiveMethod.
ActiveRunnable< ResultType, ArgType, OwnerType > ActiveRunnableType
ActiveResult< ResultType > ActiveResultType
ActiveMethod(const ActiveMethod &other)
OwnerType * _pOwner
ActiveMethod & operator=(const ActiveMethod &other)
ActiveResultHolder< void > ActiveResultHolderType
void swap(ActiveResult &result)
bool available() const
Returns true if a result is available.
ActiveResult & operator=(const ActiveResult &result)
Assignment operator.
ActiveResult(const ActiveResult &result)
Copy constructor.
Exception * exception() const
void wait()
Pauses the caller until the result becomes available.
std::string error() const
ActiveResultHolderType * _pHolder
~ActiveResult()
Destroys the result.
ActiveResult(ActiveResultHolderType *pHolder)
bool tryWait(long milliseconds)
void error(const Exception &exc)
Sets the failed flag and the exception message.
void wait(long milliseconds)
void wait()
Pauses the caller until the result becomes available.
void notify()
Notifies the invoking thread that the result became available.
void error(const Exception &exc)
Sets the exception.
bool tryWait(long milliseconds)
void wait(long milliseconds)
bool tryWait(long milliseconds)
std::string error() const
void wait(long milliseconds)
void wait()
Pauses the caller until the result becomes available.
void notify()
Notifies the invoking thread that the result became available.
void error(const Exception &exc)
Sets the exception.
Exception * exception() const
ResultType & data()
Returns a reference to the actual result.
void data(ResultType *pData)
bool tryWait(long milliseconds)
bool available() const
Returns true if a result is available.
void data(ResultType *pValue)
ResultType & data()
Exception * exception() const
ActiveResult & operator=(const ActiveResult &result)
Assignment operator.
void swap(ActiveResult &result)
ResultType & data() const
Returns a reference to the result data.
void wait(long milliseconds)
ActiveResultHolderType * _pHolder
void error(const Exception &exc)
Sets the failed flag and the exception message.
~ActiveResult()
Destroys the result.
ActiveResultHolder< ResultType > ActiveResultHolderType
bool failed() const
void wait()
Pauses the caller until the result becomes available.
ActiveResult(ActiveResultHolderType *pHolder)
std::string error() const
ActiveResult(const ActiveResult &result)
Copy constructor.
ActiveRunnable(OwnerType *pOwner, Callback method, const ActiveResultType &result)
ActiveRunnable(OwnerType *pOwner, Callback method, const ArgType &arg, const ActiveResultType &result)
void(OwnerType::* Callback)(const ArgType &)
ActiveRunnable(OwnerType *pOwner, Callback method, const ActiveResultType &result)
The base class for all ActiveRunnable instantiations.
ActiveResultType _result
ActiveResult< ResultType > ActiveResultType
ActiveRunnable(OwnerType *pOwner, Callback method, const ArgType &arg, const ActiveResultType &result)
static void start(OwnerType *, ActiveRunnableBase::Ptr pRunnable)
ValueType operator--()
Increments the counter and returns the previous value.
ValueType operator++()
Returns the value of the counter.
ValueType operator++(int)
Increments the counter and returns the result.
AtomicCounter(ValueType initialValue)
Creates a new AtomicCounter and initializes it to zero.
operator ValueType() const
Assigns a value to the counter.
ValueType operator--(int)
Decrements the counter and returns the result.
ValueType value() const
Converts the AtomicCounter to ValueType.
AtomicCounter & operator=(const AtomicCounter &counter)
Destroys the AtomicCounter.
AtomicCounter & operator=(ValueType value)
Assigns the value of another AtomicCounter.
AtomicCounter()
The underlying integer type.
bool operator!() const
Decrements the counter and returns the previous value.
AtomicCounter(const AtomicCounter &counter)
~AtomicCounter()
Creates the counter by copying another one.
std::atomic< int > _counter
Returns true if the counter is zero, false otherwise.
AutoPtr(C *ptr, bool shared)
Definition AutoPtr.h:73
C * operator->()
Definition AutoPtr.h:227
const C & operator*() const
Definition AutoPtr.h:251
bool operator!=(C *ptr) const
Definition AutoPtr.h:325
bool operator!=(const AutoPtr &ptr) const
Definition AutoPtr.h:315
AutoPtr & operator=(const AutoPtr &ptr)
Definition AutoPtr.h:178
bool operator>=(const AutoPtr &ptr) const
Definition AutoPtr.h:380
bool operator<(C *ptr) const
Definition AutoPtr.h:345
AutoPtr & operator=(const AutoPtr< Other > &ptr)
Definition AutoPtr.h:192
bool operator>(const C *ptr) const
Definition AutoPtr.h:370
bool operator>(const AutoPtr &ptr) const
Definition AutoPtr.h:365
const C * get() const
Definition AutoPtr.h:264
void reset(const AutoPtr &ptr)
Definition AutoPtr.h:162
bool operator!=(const C *ptr) const
Definition AutoPtr.h:320
bool operator<(const AutoPtr &ptr) const
Definition AutoPtr.h:335
AutoPtr(C *ptr)
Definition AutoPtr.h:69
void reset()
Definition AutoPtr.h:143
bool operator>=(C *ptr) const
Definition AutoPtr.h:390
void reset(C *ptr, bool shared)
Definition AutoPtr.h:157
void swap(AutoPtr &ptr)
Definition AutoPtr.h:197
bool operator!() const
Definition AutoPtr.h:279
bool operator<=(const AutoPtr &ptr) const
Definition AutoPtr.h:350
AutoPtr & operator=(AutoPtr &&ptr) noexcept
Definition AutoPtr.h:183
AutoPtr & assign(const AutoPtr< Other > &ptr)
Definition AutoPtr.h:132
AutoPtr< Other > cast() const
Definition AutoPtr.h:203
AutoPtr & assign(const AutoPtr &ptr)
Definition AutoPtr.h:120
AutoPtr & operator=(C *ptr)
Definition AutoPtr.h:173
AutoPtr(const AutoPtr &ptr)
Definition AutoPtr.h:78
bool operator==(const AutoPtr &ptr) const
Definition AutoPtr.h:295
AutoPtr(AutoPtr &&ptr) noexcept
Definition AutoPtr.h:83
C * duplicate()
Definition AutoPtr.h:289
C & operator*()
Definition AutoPtr.h:243
bool operator!=(std::nullptr_t ptr) const
Definition AutoPtr.h:330
bool operator==(C *ptr) const
Definition AutoPtr.h:305
bool operator<(const C *ptr) const
Definition AutoPtr.h:340
AutoPtr(const AutoPtr< Other > &ptr)
Definition AutoPtr.h:89
const C * operator->() const
Definition AutoPtr.h:235
void reset(const AutoPtr< Other > &ptr)
Definition AutoPtr.h:168
bool operator<=(C *ptr) const
Definition AutoPtr.h:360
AutoPtr & assign(C *ptr, bool shared)
Definition AutoPtr.h:109
AutoPtr< Other > unsafeCast() const
Definition AutoPtr.h:216
bool operator==(std::nullptr_t ptr) const
Definition AutoPtr.h:310
AutoPtr & assign(C *ptr)
Definition AutoPtr.h:99
void reset(C *ptr)
Definition AutoPtr.h:152
bool operator>(C *ptr) const
Definition AutoPtr.h:375
bool isNull() const
Definition AutoPtr.h:284
operator const C *() const
Definition AutoPtr.h:274
bool operator==(const C *ptr) const
Definition AutoPtr.h:300
bool operator>=(const C *ptr) const
Definition AutoPtr.h:385
bool operator<=(const C *ptr) const
Definition AutoPtr.h:355
BasicEvent & operator=(const BasicEvent &e)
BasicEvent(const BasicEvent &e)
BasicFIFOBuffer(const T *pBuffer, std::size_t size, bool notify=false)
Definition FIFOBuffer.h:100
bool isEOF() const
Returns true if EOF flag has been set and buffer is empty.
Definition FIFOBuffer.h:468
void drain(std::size_t length=0)
Definition FIFOBuffer.h:288
~BasicFIFOBuffer()
Destroys the FIFOBuffer.
Definition FIFOBuffer.h:111
bool isFull() const
Returns true is buffer is full, false otherwise.
Definition FIFOBuffer.h:480
bool isValid() const
Definition FIFOBuffer.h:435
Mutex & mutex()
Returns reference to mutex.
Definition FIFOBuffer.h:512
std::size_t read(T *pBuffer, std::size_t length)
Definition FIFOBuffer.h:174
void notify(std::size_t usedBefore)
Definition FIFOBuffer.h:519
bool isEmpty() const
Returns true is buffer is empty, false otherwise.
Definition FIFOBuffer.h:474
std::size_t peek(T *pBuffer, std::size_t length) const
Definition FIFOBuffer.h:136
bool getNotify() const
Returns true if notifications are enabled, false otherwise.
Definition FIFOBuffer.h:506
const Buffer< T > & buffer() const
Returns const reference to the underlying buffer.
Definition FIFOBuffer.h:402
Poco::BasicEvent< bool > readable
Definition FIFOBuffer.h:66
void advance(std::size_t length)
Definition FIFOBuffer.h:332
T * begin()
Returns the pointer to the beginning of the buffer.
Definition FIFOBuffer.h:356
std::size_t available() const
Returns the size of the available portion of the buffer.
Definition FIFOBuffer.h:282
std::size_t write(const T *pBuffer, std::size_t length)
Definition FIFOBuffer.h:219
bool isReadable() const
Definition FIFOBuffer.h:486
std::size_t write(const Buffer< T > &buffer, std::size_t length=0)
Definition FIFOBuffer.h:253
const T & operator[](std::size_t index) const
Definition FIFOBuffer.h:390
void setEOF(bool eof=true)
Definition FIFOBuffer.h:442
BasicFIFOBuffer(std::size_t size, bool notify=false)
Definition FIFOBuffer.h:78
void setError(bool error=true)
Definition FIFOBuffer.h:408
void resize(std::size_t newSize, bool preserveContent=true)
Definition FIFOBuffer.h:116
void setNotify(bool notify=true)
Enables/disables notifications.
Definition FIFOBuffer.h:500
std::size_t used() const
Returns the size of the used portion of the buffer.
Definition FIFOBuffer.h:276
BasicFIFOBuffer(const BasicFIFOBuffer &)
BasicFIFOBuffer & operator=(const BasicFIFOBuffer &)
void copy(const T *ptr, std::size_t length)
Definition FIFOBuffer.h:311
Poco::BasicEvent< bool > writable
Definition FIFOBuffer.h:54
T & operator[](std::size_t index)
Definition FIFOBuffer.h:378
bool hasEOF() const
Returns true if EOF flag has been set.
Definition FIFOBuffer.h:462
T * next()
Returns the pointer to the next available position in the buffer.
Definition FIFOBuffer.h:371
std::size_t read(Poco::Buffer< T > &buffer, std::size_t length=0)
Definition FIFOBuffer.h:197
std::size_t size() const
Returns the size of the buffer.
Definition FIFOBuffer.h:270
bool isWritable() const
Definition FIFOBuffer.h:493
std::size_t peek(Poco::Buffer< T > &buffer, std::size_t length=0) const
Definition FIFOBuffer.h:155
BasicFIFOBuffer(T *pBuffer, std::size_t size, bool notify=false)
Definition FIFOBuffer.h:89
Buffer(const Buffer &other)
Definition Buffer.h:83
~Buffer()
Destroys the Buffer.
Definition Buffer.h:140
const T * begin() const
Returns a pointer to the beginning of the buffer.
Definition Buffer.h:311
Buffer(T *pMem, std::size_t length)
Definition Buffer.h:52
bool operator==(const Buffer &other) const
Compare operator.
Definition Buffer.h:262
std::size_t sizeBytes() const
Returns the used size of the buffer in bytes.
Definition Buffer.h:299
T & operator[](std::size_t index)
Definition Buffer.h:335
Buffer(const T *pMem, std::size_t length)
Definition Buffer.h:66
T * begin()
Returns a pointer to the beginning of the buffer.
Definition Buffer.h:305
Buffer & operator=(const Buffer &other)
Assignment operator.
Definition Buffer.h:110
std::size_t capacityBytes() const
Returns the allocated memory size in bytes.
Definition Buffer.h:245
std::size_t capacity() const
Returns the allocated memory size in elements.
Definition Buffer.h:239
void setCapacity(std::size_t newCapacity, bool preserveContent=true)
Definition Buffer.h:174
const T * end() const
Returns a pointer to the end of the buffer.
Definition Buffer.h:323
void assign(const T *buf, std::size_t sz)
Definition Buffer.h:208
Buffer(Buffer &&other) noexcept
Definition Buffer.h:97
bool _ownMem
Definition Buffer.h:355
bool operator!=(const Buffer &other) const
Compare operator.
Definition Buffer.h:281
void resize(std::size_t newCapacity, bool preserveContent=true)
Definition Buffer.h:146
const T & operator[](std::size_t index) const
Definition Buffer.h:342
void append(const T *buf, std::size_t sz)
Resizes this buffer and appends the argument buffer.
Definition Buffer.h:218
std::size_t size() const
Returns the used size of the buffer in elements.
Definition Buffer.h:293
void clear()
Sets the contents of the buffer to zero.
Definition Buffer.h:287
Buffer(std::size_t length)
Definition Buffer.h:39
bool empty() const
Return true if buffer is empty.
Definition Buffer.h:329
std::size_t _used
Definition Buffer.h:353
Buffer & operator=(Buffer &&other) noexcept
Move assignment operator.
Definition Buffer.h:122
void append(const Buffer &buf)
Resizes this buffer and appends the argument buffer.
Definition Buffer.h:233
void append(T val)
Resizes this buffer by one element and appends the argument value.
Definition Buffer.h:226
T * end()
Returns a pointer to end of the buffer.
Definition Buffer.h:317
std::size_t _capacity
Definition Buffer.h:352
void swap(Buffer &other)
Swaps the buffer with another one.
Definition Buffer.h:251
static std::string what(const char *msg, const char *file, int line, const char *text=0)
static void bugcheck(const char *msg, const char *file, int line)
static void nullPointer(const char *ptr, const char *file, int line)
static void debugger(const char *msg, const char *file, int line)
static void debugger(const char *file, int line)
static void bugcheck(const char *file, int line)
static void assertion(const char *cond, const char *file, int line, const char *text=0)
static void unexpected(const char *file, int line)
void setKey(RSA *pKey)
Definition EVPPKey.h:349
~EVPPKey()
Assignment move operator.
bool operator!=(const EVPPKey &other) const
Definition EVPPKey.h:304
void duplicate(EVP_PKEY *pEVPPKey)
static EVP_PKEY * duplicate(const EVP_PKEY *pFromKey, EVP_PKEY **pToKey)
Returns pointer to the OpenSSL EVP_PKEY structure.
int type() const
Definition EVPPKey.h:318
void newECKey(const char *group)
void setKey(ECKey *pKey)
EVPPKey(const char *ecCurveName)
EVPPKey & operator=(EVPPKey &&other) noexcept
Assignment operator.
void setKey(RSAKey *pKey)
EVPPKey(EVP_PKEY *pEVPPKey)
bool isSupported(int type) const
Retuns the EVPPKey type NID.
Definition EVPPKey.h:324
EVPPKey(const EVPPKey &other)
void setKey(EC_KEY *pKey)
Definition EVPPKey.h:342
EVPPKey()
Duplicates pFromKey into *pToKey and returns.
EVPPKey(EVPPKey &&other) noexcept
Copy constructor.
static int passCB(char *buf, int size, int, void *pass)
operator EVP_PKEY *()
Returns const pointer to the OpenSSL EVP_PKEY structure.
Definition EVPPKey.h:336
void *(* EVP_PKEY_get_Key_fn)(EVP_PKEY *)
Definition EVPPKey.h:155
static int type(const EVP_PKEY *pEVPPKey)
Definition EVPPKey.h:310
operator const EVP_PKEY *() const
Returns true if OpenSSL type is supported.
Definition EVPPKey.h:330
EVPPKey & operator=(const EVPPKey &other)
Move constructor.
EVP_PKEY * _pEVPPKey
Definition EVPPKey.h:284
bool operator==(const EVPPKey &other) const
Destroys the EVPPKey.
Definition EVPPKey.h:296
virtual ~KeyPair()
Move assignment.
const std::string & name() const
Returns the impl object.
Definition KeyPair.h:123
KeyPairImpl::Ptr _pImpl
Returns key pair type.
Definition KeyPair.h:94
Type type() const
Returns key pair name.
Definition KeyPair.h:135
KeyPair & operator=(const KeyPair &other)
Move constructor.
KeyPair(KeyPair &&other) noexcept
Copy constructor.
KeyPairImpl::Ptr impl() const
Definition KeyPair.h:129
KeyPair(KeyPairImpl::Ptr pKeyPairImpl=0)
KeyPair(const KeyPair &other)
Extracts the RSA public key from the given certificate.
KeyPair & operator=(KeyPair &&other) noexcept
Assignment.
virtual int size() const
Destroys the KeyPair.
Definition KeyPair.h:101
Class KeyPairImpl.
Definition KeyPairImpl.h:36
const std::string & name() const
Definition KeyPairImpl.h:92
virtual int size() const =0
Destroys the KeyPairImpl.
OpenSSLInitializer _openSSLInitializer
Definition KeyPairImpl.h:83
virtual ~KeyPairImpl()
Create KeyPairImpl with specified type and name.
KeyPairImpl()
Returns key pair type.
Type type() const
Returns key pair name.
Definition KeyPairImpl.h:98
const char * name() const noexcept
OpenSSLException(const OpenSSLException &exc)
const char * className() const noexcept
Poco::Exception * clone() const
OpenSSLException & operator=(const OpenSSLException &exc)
static struct CRYPTO_dynlock_value * dynlockCreate(const char *file, int line)
static void uninitialize()
Initializes the OpenSSL machinery.
static void initialize()
Automatically shut down OpenSSL on exit.
~OpenSSLInitializer()
Automatically initialize OpenSSL on startup.
static void lock(int mode, int n, const char *file, int line)
static unsigned long id()
static Poco::AtomicCounter _rc
static void enableFIPSMode(bool enabled)
static Poco::FastMutex * _mutexes
static void dynlock(int mode, struct CRYPTO_dynlock_value *lock, const char *file, int line)
static bool isFIPSEnabled()
Shuts down the OpenSSL machinery.
static void dynlockDestroy(struct CRYPTO_dynlock_value *lock, const char *file, int line)
RSAKey(KeyLength keyLength, Exponent exp)
Extracts the RSA private key from the given certificate.
RSAKeyImpl::ByteVec modulus() const
Move assignment.
RSAKeyImpl::ByteVec encryptionExponent() const
Returns the RSA modulus.
RSAKey(const PKCS12Container &cert)
Extracts the RSA public key from the given certificate.
RSAKey(const X509Certificate &cert)
Constructs ECKeyImpl by extracting the EC key.
RSAKey(RSAKey &&other) noexcept
Copy constructor.
RSAKey(const EVPPKey &key)
RSAKeyImpl::Ptr impl() const
Returns the RSA decryption exponent.
Definition RSAKey.h:125
RSAKey & operator=(RSAKey &&other) noexcept
Assignment.
RSAKey & operator=(const RSAKey &other)
Destroys the RSAKey.
RSAKey(const RSAKey &other)
~RSAKey()
Move constructor.
RSAKeyImpl::ByteVec decryptionExponent() const
Returns the RSA encryption exponent.
class RSAKeyImpl
Definition RSAKeyImpl.h:48
int size() const
Returns the OpenSSL RSA object.
RSAKeyImpl(const PKCS12Container &cert)
Extracts the RSA public key from the given certificate.
RSAKeyImpl(const EVPPKey &key)
RSAKeyImpl(int keyLength, unsigned long exponent)
Extracts the EC private key from the given certificate.
ByteVec decryptionExponent() const
Returns the RSA encryption exponent.
ByteVec encryptionExponent() const
Returns the RSA modulus.
RSA * getRSA()
Destroys the RSAKeyImpl.
Definition RSAKeyImpl.h:126
static ByteVec convertToByteVec(const BIGNUM *bn)
const RSA * getRSA() const
Returns the OpenSSL RSA object.
Definition RSAKeyImpl.h:132
ByteVec modulus() const
Returns the RSA modulus size.
RSAKeyImpl(const X509Certificate &cert)
Constructs ECKeyImpl by extracting the EC key.
This class represents a X509 Certificate.
void swap(X509Certificate &cert)
Move assignment.
std::string subjectName(NID nid) const
Returns the certificate subject's distinguished name.
bool equals(const X509Certificate &otherCertificate) const
const X509 * certificate() const
Poco::DateTime expiresOn() const
Returns the date and time the certificate is valid from.
X509Certificate(X509 *pCert, bool shared)
std::string issuerName(NID nid) const
Returns the certificate issuer's distinguished name.
const std::string & subjectName() const
X509Certificate(const X509Certificate &cert)
const std::string & serialNumber() const
Returns the version of the certificate.
X509Certificate & operator=(const X509Certificate &cert)
Creates the certificate by moving another one.
X509 * dup() const
Returns the underlying OpenSSL certificate.
~X509Certificate()
Exchanges the certificate with another one.
bool issuedBy(const X509Certificate &issuerCertificate) const
const std::string & issuerName() const
long version() const
Destroys the X509Certificate.
X509Certificate(X509Certificate &&cert) noexcept
Creates the certificate by copying another one.
void load(std::istream &stream)
Writes the list of certificates to the specified PEM file.
std::string signatureAlgorithm() const
void print(std::ostream &out) const
Returns the certificate signature algorithm long name.
Poco::DateTime validFrom() const
X509Certificate(std::istream &istr)
std::string commonName() const
void save(std::ostream &stream) const
OpenSSLInitializer _openSSLInitializer
X509Certificate & operator=(X509Certificate &&cert) noexcept
Assigns a certificate.
void swap(DateTime &dateTime)
bool operator<=(const DateTime &dateTime) const
Definition DateTime.h:410
short _millisecond
Definition DateTime.h:286
DateTime & operator-=(const Timespan &span)
int millisecond() const
Returns the second (0 to 59).
Definition DateTime.h:380
static bool isValid(int year, int month, int day, int hour=0, int minute=0, int second=0, int millisecond=0, int microsecond=0)
bool operator!=(const DateTime &dateTime) const
Definition DateTime.h:398
static bool isLeapYear(int year)
Converts a UTC time into a local time, by applying the given time zone differential.
Definition DateTime.h:428
void makeUTC(int tzd)
Converts DateTime to tm struct.
DateTime(double julianDay)
int microsecond() const
Returns the millisecond (0 to 999)
Definition DateTime.h:386
Timestamp::UtcTimeVal utcTime() const
Returns the date and time expressed as a Timestamp.
Definition DateTime.h:315
Months
Symbolic names for month numbers (1 to 12).
Definition DateTime.h:66
bool operator<(const DateTime &dateTime) const
Definition DateTime.h:404
void computeDaytime()
int hour() const
Definition DateTime.h:339
DateTime & operator=(double julianDay)
Assigns a Timestamp.
bool operator>(const DateTime &dateTime) const
Definition DateTime.h:416
bool operator>=(const DateTime &dateTime) const
Definition DateTime.h:422
bool isPM() const
Returns true if hour < 12;.
Definition DateTime.h:362
int day() const
Definition DateTime.h:333
short _microsecond
Definition DateTime.h:287
int dayOfYear() const
int hourAMPM() const
Returns the hour (0 to 23).
Definition DateTime.h:345
double julianDay() const
Returns the microsecond (0 to 999)
static double toJulianDay(int year, int month, int day, int hour=0, int minute=0, int second=0, int millisecond=0, int microsecond=0)
Computes the Julian day for an UTC time.
DaysOfWeek
Symbolic names for week day numbers (0 to 6).
Definition DateTime.h:83
DateTime & operator=(const DateTime &dateTime)
Destroys the DateTime.
void makeLocal(int tzd)
Converts a local time into UTC, by applying the given time zone differential.
DateTime(const Timestamp &timestamp)
Creates a DateTime from tm struct.
static double toJulianDay(Timestamp::UtcTimeVal utcTime)
Definition DateTime.h:296
Timespan operator-(const DateTime &dateTime) const
tm makeTM() const
DateTime operator-(const Timespan &span) const
DateTime & operator+=(const Timespan &span)
static Timestamp::UtcTimeVal toUtcTime(double julianDay)
Definition DateTime.h:303
Timestamp timestamp() const
Returns the julian day for the date and time.
Definition DateTime.h:309
int week(int firstDayOfWeek=MONDAY) const
Returns the month (1 to 12).
int second() const
Returns the minute (0 to 59).
Definition DateTime.h:374
~DateTime()
Copy constructor. Creates the DateTime from another one.
bool operator==(const DateTime &dateTime) const
Definition DateTime.h:392
int year() const
Swaps the DateTime with another one.
Definition DateTime.h:321
static int daysOfMonth(int year, int month)
void computeGregorian(double julianDay)
Computes the UTC time for a Julian day.
int dayOfWeek() const
Returns the day within the month (1 to 31).
DateTime & assign(int year, int month, int day, int hour=0, int minute=0, int second=0, int millisecond=0, int microseconds=0)
Assigns a Julian day.
void checkLimit(short &lower, short &higher, short limit)
Extracts the daytime (hours, minutes, seconds, etc.) from the stored utcTime.
DateTime(const DateTime &dateTime)
Timestamp::UtcTimeVal _utcTime
utility functions used to correct the overflow in computeGregorian
Definition DateTime.h:279
int month() const
Returns the year.
Definition DateTime.h:327
DateTime(int year, int month, int day, int hour=0, int minute=0, int second=0, int millisecond=0, int microsecond=0)
DateTime(const tm &tmStruct)
Creates a DateTime for the current date and time.
DateTime(Timestamp::UtcTimeVal utcTime, Timestamp::TimeDiff diff)
Creates a DateTime for the given Julian day.
DateTime & operator=(const Timestamp &timestamp)
Assigns another DateTime.
DateTime operator+(const Timespan &span) const
int minute() const
Returns true if hour >= 12.
Definition DateTime.h:368
bool isAM() const
Returns the hour (0 to 12).
Definition DateTime.h:356
virtual void updateImpl(const void *data, std::size_t length)=0
virtual const Digest & digest()=0
void update(char data)
DigestEngine & operator=(const DigestEngine &)
virtual std::size_t digestLength() const =0
Updates the digest with the given data.
DigestEngine(const DigestEngine &)
void update(const void *data, std::size_t length)
virtual void reset()=0
Returns the length of the digest in bytes.
virtual ~DigestEngine()
void wait()
Definition Event.h:105
void reset()
Definition Event.h:124
bool tryWait(long milliseconds)
Definition Event.h:118
Event & operator=(const Event &)
void wait(long milliseconds)
Waits for the event to become signalled.
Definition Event.h:111
Event(bool autoReset)
@ EVENT_AUTORESET
Manual reset event.
Definition Event.h:50
@ EVENT_MANUALRESET
Definition Event.h:49
~Event()
Please use Event::Event(EventType) instead.
void set()
Destroys the event.
Definition Event.h:99
Event(EventType type=EVENT_AUTORESET)
Event(const Event &)
Resets the event to unsignalled state.
bool waitImpl(long milliseconds)
Exception(const Exception &exc)
virtual const char * what() const noexcept
Returns the name of the exception class.
const std::string & message() const
Definition Exception.h:116
void message(const std::string &msg)
Standard constructor.
Definition Exception.h:122
Exception(const std::string &msg, const Exception &nested, int code=0)
Creates an exception.
std::string _msg
Sets the extended message for the exception.
Definition Exception.h:101
Exception(const std::string &msg, const std::string &arg, int code=0)
Creates an exception.
const Exception * nested() const
Definition Exception.h:110
Exception * _pNested
Definition Exception.h:102
virtual Exception * clone() const
Exception & operator=(const Exception &exc)
Destroys the exception and deletes the nested exception.
Exception(int code=0)
virtual void rethrow() const
void extendedMessage(const std::string &arg)
Sets the message for the exception.
virtual const char * name() const noexcept
Assignment operator.
int code() const
Returns the message text.
Definition Exception.h:128
~Exception() noexcept
Copy constructor.
std::string displayText() const
Returns the exception code if defined.
Exception(const std::string &msg, int code=0)
virtual const char * className() const noexcept
Returns a static string describing the exception.
void unlock()
Definition Mutex.h:333
bool tryLock(long milliseconds)
Definition Mutex.h:327
~FastMutex()
creates the Mutex.
void lock()
destroys the Mutex.
Definition Mutex.h:308
bool tryLock()
Definition Mutex.h:321
FastMutex(const FastMutex &)
void lock(long milliseconds)
Definition Mutex.h:314
FastMutex & operator=(const FastMutex &)
bool tryLock(long milliseconds)
Definition Mutex.h:292
void lock(long milliseconds)
Definition Mutex.h:279
void unlock()
Definition Mutex.h:298
void lock()
destroys the Mutex.
Definition Mutex.h:273
Mutex & operator=(const Mutex &)
bool tryLock()
Definition Mutex.h:286
Mutex(const Mutex &)
~Mutex()
creates the Mutex.
bool tryLockImpl(long milliseconds)
void init(const Params &params)
void setSessionCacheSize(std::size_t size)
Returns true iff the session cache is enabled.
std::size_t getSessionCacheSize() const
Context::VerificationMode verificationMode() const
Returns true iff the context is for use by a server.
Definition Context.h:466
void requireMinimumProtocol(Protocols protocol)
void enableExtendedCertificateVerification(bool flag=true)
void setInvalidCertificateHandler(InvalidCertificateHandlerPtr pInvalidCertificageHandler)
Usage _usage
Create a SSL_CTX object according to Context configuration.
Definition Context.h:437
Usage usage() const
Returns the underlying OpenSSL SSL Context object.
Definition Context.h:449
SSL_CTX * sslContext() const
Definition Context.h:472
long getSessionTimeout() const
void usePrivateKey(const Poco::Crypto::RSAKey &key)
Add one trusted certification authority to be used by the Context.
void enableSessionCache(bool flag=true)
Returns the verification mode.
void addCertificateAuthority(const Poco::Crypto::X509Certificate &certificate)
Adds a certificate for certificate chain validation.
void usePrivateKey(const Poco::Crypto::EVPPKey &pkey)
bool extendedCertificateVerificationEnabled() const
Definition Context.h:478
bool isForServerUse() const
Definition Context.h:455
void addChainCertificate(const Poco::Crypto::X509Certificate &certificate)
bool _ocspStaplingResponseVerification
Definition Context.h:441
bool ocspStaplingResponseVerificationEnabled() const
Definition Context.h:484
bool _extendedCertificateVerification
Definition Context.h:440
VerificationMode _mode
Definition Context.h:438
@ SERVER_USE
DEPRECATED. Context is used by a client.
Definition Context.h:71
@ TLSV1_2_CLIENT_USE
DEPRECATED. Context is used by a server requiring TLSv1.1 (OpenSSL 1.0.0 or newer).
Definition Context.h:76
@ TLSV1_CLIENT_USE
DEPRECATED. Context is used by a server.
Definition Context.h:72
@ TLSV1_3_SERVER_USE
DEPRECATED. Context is used by a client requiring TLSv1.3 (OpenSSL 1.1.1 or newer).
Definition Context.h:79
@ CLIENT_USE
Context is used by a client for TLSv1 or higher. Use requireMinimumProtocol() or disableProtocols() t...
Definition Context.h:70
@ TLSV1_2_SERVER_USE
DEPRECATED. Context is used by a client requiring TLSv1.2 (OpenSSL 1.0.1 or newer).
Definition Context.h:77
@ TLSV1_SERVER_USE
DEPRECATED. Context is used by a client requiring TLSv1.
Definition Context.h:73
@ TLSV1_3_CLIENT_USE
DEPRECATED. Context is used by a server requiring TLSv1.2 (OpenSSL 1.0.1 or newer).
Definition Context.h:78
@ TLS_SERVER_USE
Context is used by a client for TLSv1 or higher. Use requireMinimumProtocol() or disableProtocols() t...
Definition Context.h:69
@ TLSV1_1_CLIENT_USE
DEPRECATED. Context is used by a server requiring TLSv1.
Definition Context.h:74
@ TLSV1_1_SERVER_USE
DEPRECATED. Context is used by a client requiring TLSv1.1 (OpenSSL 1.0.0 or newer).
Definition Context.h:75
void useCertificate(const Poco::Crypto::X509Certificate &certificate)
Destroys the Context.
void preferServerCiphers()
Context(Usage usage, const Params &params)
InvalidCertificateHandlerPtr _pInvalidCertificateHandler
Definition Context.h:442
void setSessionTimeout(long seconds)
InvalidCertificateHandlerPtr getInvalidCertificateHandler() const
Definition Context.h:490
void disableStatelessSessionResumption()
bool sessionCacheEnabled() const
void disableProtocols(int protocols)
SSL_CTX * _pSSLContext
Definition Context.h:439
void proxyAuthenticateDigest(HTTPRequest &request)
HTTPClientSession(const SocketAddress &address)
const std::string & getHost() const
virtual void proxyAuthenticate(HTTPRequest &request)
Checks if we can reuse a persistent connection.
static ProxyConfig _globalProxyConfig
@ PROXY_AUTH_HTTP_BASIC
No proxy authentication.
@ PROXY_AUTH_HTTP_DIGEST
HTTP Basic proxy authentication (default, if username and password are supplied)
@ PROXY_AUTH_NTLM
HTTP Digest proxy authentication.
HTTPClientSession(const StreamSocket &socket)
Creates an unconnected HTTPClientSession.
std::ostream & sendRequestImpl(const HTTPRequest &request)
Tries to re-connect if keep-alive is on.
const ProxyConfig & getProxyConfig() const
Sets the proxy configuration.
const std::string & getProxyHost() const
Sets the port number of the proxy server.
virtual std::istream & receiveResponse(HTTPResponse &response)
Poco::SharedPtr< std::ostream > _pRequestStream
virtual bool peekResponse(HTTPResponse &response)
virtual std::ostream & sendRequest(HTTPRequest &request)
Returns the connection timeout for HTTP connections.
void proxyAuthenticateImpl(HTTPRequest &request, const ProxyConfig &proxyConfig)
virtual bool mustReconnect() const
void proxyAuthenticateNTLM(HTTPRequest &request)
Initiates a HTTP Digest authentication handshake with the proxy.
const std::string & getProxyUsername() const
Poco::SharedPtr< std::istream > _pResponseStream
void setProxyConfig(const ProxyConfig &config)
Returns the password for proxy authentication.
void setKeepAliveTimeout(const Poco::Timespan &timeout)
Returns the global proxy configuration.
const Poco::Timespan & getKeepAliveTimeout() const
Sets the connection timeout for HTTP connections.
static void setGlobalProxyConfig(const ProxyConfig &config)
Returns the proxy configuration.
HTTPDigestCredentials _proxyDigestCreds
const std::string & getProxyPassword() const
void setProxyPort(Poco::UInt16 port)
Sets the host name of the proxy server.
int write(const char *buffer, std::streamsize length)
Connects the underlying socket to the HTTP server.
HTTPNTLMCredentials _proxyNTLMCreds
static const ProxyConfig & getGlobalProxyConfig()
void sendChallengeRequest(const HTTPRequest &request, HTTPResponse &response)
Initiates a HTTP NTLM authentication handshake with the proxy.
virtual ~HTTPClientSession()
Creates a HTTPClientSession using the given host, port and proxy configuration.
HTTPClientSession & operator=(const HTTPClientSession &)
virtual bool secure() const
Poco::UInt16 getProxyPort() const
Returns the proxy host name.
void setPort(Poco::UInt16 port)
Returns the host name of the target HTTP server.
HTTPBasicCredentials _proxyBasicCreds
HTTPClientSession(const HTTPClientSession &)
virtual std::string proxyRequestPrefix() const
Sends the given HTTPRequest over an existing connection.
static const std::string HTTP_1_1
void setContentLength(std::streamsize length)
Returns the HTTP version for this message.
HTTPRequest(const std::string &method, const std::string &uri, const std::string &version)
Creates a HTTP/1.0 request with the given method and URI.
static const std::string HTTP_GET
static const std::string HTTP_DELETE
static const std::string HTTP_POST
const std::string & getReason() const
Sets the HTTP reason phrase.
HTTPResponse(HTTPStatus status)
HTTPStatus getStatus() const
HTTPSClientSession(const std::string &host, Poco::UInt16 port, Context::Ptr pContext, Session::Ptr pSession)
std::string proxyRequestPrefix() const
Sends the given HTTPRequest over an existing connection.
HTTPSClientSession(Context::Ptr pContext, Session::Ptr pSession)
HTTPSClientSession(Context::Ptr pContext)
Creates a HTTPSClientSession using the given host and port.
void proxyAuthenticate(HTTPRequest &request)
Checks if we can reuse a persistent connection.
int read(char *buffer, std::streamsize length)
HTTPSClientSession(const HTTPSClientSession &)
void connect(const SocketAddress &address)
Refills the internal buffer.
HTTPSClientSession(const SecureStreamSocket &socket, Session::Ptr pSession)
X509Certificate serverCertificate()
HTTPSClientSession & operator=(const HTTPSClientSession &)
HTTPSClientSession(const std::string &host, Poco::UInt16 port=HTTPS_PORT)
HTTPSClientSession(const SecureStreamSocket &socket)
Creates an unconnected HTTPSClientSession.
HTTPSClientSession(const std::string &host, Poco::UInt16 port, Context::Ptr pContext)
void clearException()
Stores a clone of the exception.
void setKeepAlive(bool keepAlive)
void attachSessionData(const Poco::Any &data)
StreamSocket & socket()
virtual int write(const char *buffer, std::streamsize length)
HTTPSession & operator=(const HTTPSession &)
HTTPSession(const HTTPSession &)
StreamSocket detachSocket()
void setTimeout(const Poco::Timespan &connectionTimeout, const Poco::Timespan &sendTimeout, const Poco::Timespan &receiveTimeout)
Sets the timeout for the HTTP session.
int receive(char *buffer, int length)
Writes data to the socket.
void setException(const Poco::Exception &exc)
Closes the underlying socket.
Poco::Timespan _connectionTimeout
Poco::Timespan getTimeout() const
Sets different timeouts for the HTTP session.
bool getKeepAlive() const
Poco::Exception * _pException
virtual int read(char *buffer, std::streamsize length)
void drainBuffer(Poco::Buffer< char > &buffer)
Returns a reference to the underlying socket.
Poco::Timespan _sendTimeout
HTTPSession(const StreamSocket &socket, bool keepAlive)
virtual void abort()
Returns true if the underlying socket is connected.
void refill()
Returns the number of bytes in the buffer.
bool connected() const
Returns the timeout for the HTTP session.
HTTPSession(const StreamSocket &socket)
const Poco::Any & sessionData() const
void setTimeout(const Poco::Timespan &timeout)
void attachSocket(const StreamSocket &socket)
int buffered() const
Reads up to length bytes.
const Poco::Exception * networkException() const
virtual void connect(const SocketAddress &address)
Refills the internal buffer.
Poco::Timespan _receiveTimeout
IPAddress(const struct sockaddr &sockaddr)
Creates an IPAddress mask with the given length of prefix.
bool isSiteLocal() const
IPAddress(unsigned prefix, Family family)
void mask(const IPAddress &mask)
Returns the prefix length.
bool isBroadcast() const
bool isOrgLocalMC() const
bool operator!=(const IPAddress &addr) const
bool isLoopback() const
void mask(const IPAddress &mask, const IPAddress &set)
const void * addr() const
Returns the length in bytes of the internal socket address structure.
IPAddress(const void *addr, poco_socklen_t length, Poco::UInt32 scope)
bool isLinkLocal() const
static const Family IPv4
Definition IPAddress.h:63
~IPAddress()
Same for struct sock_addr on POSIX.
bool operator==(const IPAddress &addr) const
bool operator>=(const IPAddress &addr) const
bool isUnicast() const
Poco::AutoPtr< Impl > Ptr
Definition IPAddress.h:368
IPAddress operator&(const IPAddress &addr) const
void newIPv4(const void *hostAddr)
Definition IPAddress.h:400
IPAddress operator~() const
bool isNodeLocalMC() const
int af() const
Returns the internal address structure.
bool isIPv4Mapped() const
bool isLinkLocalMC() const
bool operator<=(const IPAddress &addr) const
IPAddress(const IPAddress &addr)
Creates a wildcard (zero) IPv4 IPAddress.
bool isSiteLocalMC() const
std::string toString() const
IPAddress & operator=(const IPAddress &addr)
Destroys the IPAddress.
bool isWellKnownMC() const
bool operator<(const IPAddress &addr) const
Ptr pImpl() const
Definition IPAddress.h:387
bool isMulticast() const
IPAddress(Family family)
Creates an IPAddress by copying another one.
bool isWildcard() const
Family family() const
Assigns an IPAddress.
poco_socklen_t length() const
static IPAddress broadcast()
Returns a wildcard IPv4 or IPv6 address (0.0.0.0).
IPAddress operator|(const IPAddress &addr) const
bool isIPv4Compatible() const
void newIPv4(unsigned prefix)
Definition IPAddress.h:406
IPAddress operator^(const IPAddress &addr) const
IPAddress(const void *addr, poco_socklen_t length)
unsigned prefixLength() const
Returns the address family (AF_INET or AF_INET6) of the address.
static IPAddress wildcard(Family family=IPv4)
Poco::UInt32 scope() const
Returns the address family (IPv4 or IPv6) of the address.
bool operator>(const IPAddress &addr) const
bool isGlobalMC() const
virtual std::string toString() const =0
virtual bool isBroadcast() const =0
virtual bool isSiteLocalMC() const =0
virtual bool isIPv4Mapped() const =0
virtual bool isWildcard() const =0
IPAddressImpl & operator=(const IPAddressImpl &)
virtual Family family() const =0
IPAddressImpl(const IPAddressImpl &)
virtual bool isOrgLocalMC() const =0
virtual bool isWellKnownMC() const =0
virtual bool isSiteLocal() const =0
virtual Poco::UInt32 scope() const =0
virtual unsigned prefixLength() const =0
virtual bool isNodeLocalMC() const =0
virtual bool isGlobalMC() const =0
virtual IPAddressImpl * clone() const =0
virtual bool isIPv4Compatible() const =0
virtual bool isLinkLocalMC() const =0
virtual void mask(const IPAddressImpl *pMask, const IPAddressImpl *pSet)=0
virtual bool isLinkLocal() const =0
virtual poco_socklen_t length() const =0
virtual int af() const =0
virtual bool isLoopback() const =0
virtual const void * addr() const =0
virtual bool isMulticast() const =0
IPv4AddressImpl operator^(const IPv4AddressImpl &addr) const
IPv4AddressImpl & operator=(const IPv4AddressImpl &)
std::string toString() const
void mask(const IPAddressImpl *pMask, const IPAddressImpl *pSet)
IPv4AddressImpl(const IPv4AddressImpl &addr)
IPv4AddressImpl(const void *addr)
IPv4AddressImpl operator~() const
IPAddressImpl * clone() const
IPv4AddressImpl operator&(const IPv4AddressImpl &addr) const
poco_socklen_t length() const
bool operator!=(const IPv4AddressImpl &addr) const
Poco::UInt32 scope() const
IPv4AddressImpl operator|(const IPv4AddressImpl &addr) const
bool operator==(const IPv4AddressImpl &addr) const
IPv4SocketAddressImpl(const void *addr, UInt16 port)
const struct sockaddr * addr() const
IPv4SocketAddressImpl(const struct sockaddr_in *addr)
SocketAddressImpl(const SocketAddressImpl &)
virtual Family family() const =0
virtual poco_socklen_t length() const =0
virtual std::string toString() const =0
SocketAddressImpl & operator=(const SocketAddressImpl &)
virtual const struct sockaddr * addr() const =0
virtual UInt16 port() const =0
virtual IPAddress host() const =0
InvalidCertificateHandler(bool handleErrorsOnServerSide)
virtual void onInvalidCertificate(const void *pSender, VerificationErrorArgs &errorCert)=0
Destroys the InvalidCertificateHandler.
RejectCertificateHandler(bool handleErrorsOnServerSide)
void initializeClient(PrivateKeyPassphraseHandlerPtr ptrPassphraseHandler, InvalidCertificateHandlerPtr ptrHandler, Context::Ptr ptrContext)
static SSLManager & instance()
bool operator<(const SocketAddress &socketAddress) const
Returns the address family of the host's address.
SocketAddress & operator=(const SocketAddress &socketAddress)
Destroys the SocketAddress.
SocketAddress(const SocketAddress &addr)
static const Family IPv4
SocketAddress(const IPAddress &hostAddress, Poco::UInt16 portNumber)
Poco::AutoPtr< Impl > Ptr
Poco::UInt16 port() const
Returns the host IP address.
void newIPv4(const IPAddress &hostAddress, Poco::UInt16 portNumber)
int af() const
Returns a pointer to the internal native socket address.
IPAddress host() const
Assigns another SocketAddress.
Family family() const
Returns a string representation of the address.
SocketAddress(Family family)
Creates a wildcard (all zero) IPv4 SocketAddress.
void newIPv4(const sockaddr_in *)
std::string toString() const
Returns the address family (AF_INET or AF_INET6) of the address.
poco_socklen_t length() const
Returns the port number.
SocketAddress(Poco::UInt16 port)
Creates a SocketAddress from an IP address and given port number.
~SocketAddress()
Creates a SocketAddress from a native socket address.
bool operator!=(const SocketAddress &socketAddress) const
const struct sockaddr * addr() const
Returns the length of the internal native socket address.
bool operator==(const SocketAddress &socketAddress) const
void init(const IPAddress &hostAddress, Poco::UInt16 portNumber)
SocketAddress(const struct sockaddr *addr, poco_socklen_t length)
Creates a SocketAddress by copying another one.
SocketAddress(Family family, Poco::UInt16 port)
poco_socket_t sockfd() const
Definition Socket.h:622
bool getNoDelay() const
Sets the value of the TCP_NODELAY socket option.
Definition Socket.h:550
int getSendBufferSize() const
Sets the size of the send buffer.
Definition Socket.h:430
bool getOOBInline() const
Sets the value of the SO_OOBINLINE socket option.
Definition Socket.h:598
bool operator<=(const Socket &socket) const
Compares the SocketImpl pointers.
Definition Socket.h:388
void setReceiveBufferSize(int size)
Definition Socket.h:436
void getOption(int level, int option, Poco::Timespan &value) const
Definition Socket.h:520
void getOption(int level, int option, IPAddress &value) const
Definition Socket.h:526
void setLinger(bool on, int seconds)
Definition Socket.h:532
Socket & operator=(const Socket &socket)
bool getReuseAddress() const
Sets the value of the SO_REUSEADDR socket option.
Definition Socket.h:574
Socket(const Socket &socket)
Creates an uninitialized socket.
bool operator>=(const Socket &socket) const
Compares the SocketImpl pointers.
Definition Socket.h:400
void setOption(int level, int option, const Poco::Timespan &value)
Definition Socket.h:490
bool operator==(const Socket &socket) const
Definition Socket.h:370
void setOption(int level, int option, unsigned char value)
Definition Socket.h:484
void init(int af)
Returns true if the system supports IPv6.
Definition Socket.h:662
void setOption(int level, int option, int value)
Definition Socket.h:472
bool getKeepAlive() const
Sets the value of the SO_KEEPALIVE socket option.
Definition Socket.h:562
void setSendBufferSize(int size)
Definition Socket.h:424
SocketAddress address() const
Definition Socket.h:628
SelectMode
The mode argument to poll() and select().
Definition Socket.h:42
SocketAddress peerAddress() const
Returns the IP address and port number of the socket.
Definition Socket.h:634
bool secure() const
Returns the SocketImpl for this socket.
Definition Socket.h:640
bool operator<(const Socket &socket) const
Definition Socket.h:382
void setSendTimeout(const Poco::Timespan &timeout)
Definition Socket.h:448
SocketImpl * _pImpl
Returns the socket descriptor for this socket.
Definition Socket.h:363
void getOption(int level, int option, unsigned &value) const
Definition Socket.h:508
void setKeepAlive(bool flag)
Returns the value of the TCP_NODELAY socket option.
Definition Socket.h:556
void setOption(int level, int option, unsigned value)
Definition Socket.h:478
void setOption(int level, int option, const IPAddress &value)
Definition Socket.h:496
void getOption(int level, int option, unsigned char &value) const
Definition Socket.h:514
static bool supportsIPv4()
Definition Socket.h:646
void setReceiveTimeout(const Poco::Timespan &timeout)
Definition Socket.h:460
bool operator>(const Socket &socket) const
Compares the SocketImpl pointers.
Definition Socket.h:394
void getLinger(bool &on, int &seconds) const
Sets the value of the SO_LINGER socket option.
Definition Socket.h:538
void setReuseAddress(bool flag)
Returns the value of the SO_KEEPALIVE socket option.
Definition Socket.h:568
int getReceiveBufferSize() const
Sets the size of the receive buffer.
Definition Socket.h:442
bool getBlocking() const
Definition Socket.h:610
Poco::Timespan getReceiveTimeout() const
Definition Socket.h:466
void setOOBInline(bool flag)
Definition Socket.h:592
void close()
Compares the SocketImpl pointers.
Definition Socket.h:406
void setBlocking(bool flag)
Returns the value of the SO_OOBINLINE socket option.
Definition Socket.h:604
bool getReusePort() const
Definition Socket.h:586
void getOption(int level, int option, int &value) const
Definition Socket.h:502
bool poll(const Poco::Timespan &timeout, int mode) const
Definition Socket.h:412
static SocketBuf makeBuffer(void *buffer, std::size_t length)
bool operator!=(const Socket &socket) const
Definition Socket.h:376
static SocketBufVec makeBufVec(std::size_t size, std::size_t bufLen)
Poco::Timespan getSendTimeout() const
Sets the send timeout for the socket.
Definition Socket.h:454
Socket(SocketImpl *pImpl)
SocketImpl * impl() const
Returns the IP address and port number of the peer socket.
Definition Socket.h:616
void setReusePort(bool flag)
Returns the value of the SO_REUSEADDR socket option.
Definition Socket.h:580
static bool supportsIPv6()
Returns true if the system supports IPv4.
Definition Socket.h:652
void setNoDelay(bool flag)
Returns the value of the SO_LINGER socket option.
Definition Socket.h:544
int available() const
Definition Socket.h:418
virtual bool secure() const
virtual int available()
virtual void listen(int backlog=64)
virtual void sendUrgent(unsigned char data)
virtual void shutdownReceive()
Close the socket.
virtual int receiveBytes(void *buffer, int length, int flags=0)
virtual int sendTo(const void *buffer, int length, const SocketAddress &address, int flags=0)
virtual Poco::Timespan getReceiveTimeout()
virtual Poco::Timespan getSendTimeout()
Sets the send timeout for the socket.
virtual void getRawOption(int level, int option, void *value, poco_socklen_t &length)
virtual void connectNB(const SocketAddress &address)
void getOption(int level, int option, unsigned char &value)
static void error(int code)
Throws an appropriate exception for the last error.
void setOption(int level, int option, const IPAddress &value)
bool getBroadcast()
Sets the value of the SO_BROADCAST socket option.
virtual void setReceiveBufferSize(int size)
void setOption(int level, int option, int value)
Returns the IP address and port number of the peer socket.
virtual void setRawOption(int level, int option, const void *value, poco_socklen_t length)
virtual void setBlocking(bool flag)
Returns the value of the SO_BROADCAST socket option.
virtual SocketImpl * acceptConnection(SocketAddress &clientAddr)
poco_socket_t sockfd() const
Returns the value of the SO_ERROR socket option.
Definition SocketImpl.h:529
static int lastError()
Definition SocketImpl.h:541
virtual bool getBlocking() const
Definition SocketImpl.h:551
SocketImpl()
Returns true iff the underlying socket is initialized.
virtual void bind(const SocketAddress &address, bool reuseAddress=false)
bool getKeepAlive()
Sets the value of the SO_KEEPALIVE socket option.
void checkBrokenTimeout(SelectMode mode)
Allows subclasses to set the socket manually, iff no valid socket is set yet.
bool getOOBInline()
Sets the value of the SO_OOBINLINE socket option.
virtual int getReceiveBufferSize()
Sets the size of the receive buffer.
void setReusePort(bool flag)
Returns the value of the SO_REUSEADDR socket option.
virtual void bind6(const SocketAddress &address, bool reuseAddress, bool reusePort, bool ipV6Only)
virtual void setReceiveTimeout(const Poco::Timespan &timeout)
virtual int getSendBufferSize()
Sets the size of the send buffer.
virtual SocketAddress peerAddress()
Returns the IP address and port number of the socket.
void reset(poco_socket_t fd=POCO_INVALID_SOCKET)
virtual void bind6(const SocketAddress &address, bool reuseAddress=false, bool ipV6Only=false)
bool getReuseAddress()
Sets the value of the SO_REUSEADDR socket option.
void getOption(int level, int option, Poco::Timespan &value)
int receiveFrom(void *buffer, int length, struct sockaddr **ppSA, poco_socklen_t **ppSALen, int flags=0)
void setNoDelay(bool flag)
Returns the value of the SO_LINGER socket option.
virtual void setSendTimeout(const Poco::Timespan &timeout)
SocketImpl(const SocketImpl &)
Throws an appropriate exception for the given error code.
virtual void init(int af)
virtual bool poll(const Poco::Timespan &timeout, int mode)
bool initialized() const
A wrapper for the ioctl system call.
Definition SocketImpl.h:535
static void error()
Returns the last error code.
virtual void close()
virtual ~SocketImpl()
Creates a SocketImpl using the given native socket.
virtual int receiveBytes(Poco::Buffer< char > &buffer, int flags=0, const Poco::Timespan &timeout=100000)
virtual void connect(const SocketAddress &address)
virtual void bind(const SocketAddress &address, bool reuseAddress, bool reusePort)
void setBroadcast(bool flag)
Returns the value of the SO_OOBINLINE socket option.
void getOption(int level, int option, IPAddress &value)
void ioctl(poco_ioctl_request_t request, int &arg)
virtual int receiveFrom(void *buffer, int length, SocketAddress &address, int flags=0)
SocketImpl(poco_socket_t sockfd)
Creates a SocketImpl.
void ioctl(poco_ioctl_request_t request, void *arg)
A wrapper for the ioctl system call.
virtual int sendBytes(const void *buffer, int length, int flags=0)
void getOption(int level, int option, int &value)
void setOption(int level, int option, const Poco::Timespan &value)
bool getNoDelay()
Sets the value of the TCP_NODELAY socket option.
SocketImpl & operator=(const SocketImpl &)
void setOption(int level, int option, unsigned char value)
Poco::Timespan _recvTimeout
Definition SocketImpl.h:515
void setLinger(bool on, int seconds)
virtual void shutdownSend()
Shuts down the receiving part of the socket connection.
void setReuseAddress(bool flag)
Returns the value of the SO_KEEPALIVE socket option.
poco_socket_t _sockfd
Definition SocketImpl.h:514
void getOption(int level, int option, unsigned &value)
Poco::Timespan _sndTimeout
Definition SocketImpl.h:516
virtual void connect(const SocketAddress &address, const Poco::Timespan &timeout)
virtual void shutdown()
Shuts down the sending part of the socket connection.
void getLinger(bool &on, int &seconds)
Sets the value of the SO_LINGER socket option.
void initSocket(int af, int type, int proto=0)
virtual SocketAddress address()
void setOOBInline(bool flag)
void setOption(int level, int option, unsigned value)
void setKeepAlive(bool flag)
Returns the value of the TCP_NODELAY socket option.
virtual void setSendBufferSize(int size)
StreamSocket(SocketImpl *pImpl)
void shutdown()
Shuts down the sending part of the socket connection.
StreamSocket & operator=(const Socket &socket)
Destroys the StreamSocket.
int receiveBytes(void *buffer, int length, int flags=0)
void connectNB(const SocketAddress &address)
void connect(const SocketAddress &address)
int receiveBytes(Poco::Buffer< char > &buffer, int flags=0, const Poco::Timespan &timeout=100000)
int sendBytes(const void *buffer, int length, int flags=0)
StreamSocket(SocketAddress::Family family)
void sendUrgent(unsigned char data)
StreamSocket(const Socket &socket)
int sendBytes(Poco::FIFOBuffer &buffer)
int receiveBytes(Poco::FIFOBuffer &buffer)
void connect(const SocketAddress &address, const Poco::Timespan &timeout)
void shutdownSend()
Shuts down the receiving part of the socket connection.
StreamSocket(const SocketAddress &address)
static std::string convertCertificateError(long errCode)
static std::string getLastError()
Converts an SSL certificate handling error code into an error message.
static void clearErrorStack()
Returns the last error from the error stack.
A utility class for certificate error handling.
void unlock()
Does nothing.
Definition Mutex.h:258
void lock(long)
Does nothing.
Definition Mutex.h:241
NullMutex()
Creates the NullMutex.
Definition Mutex.h:226
bool tryLock()
Does nothing and always returns true.
Definition Mutex.h:246
void lock()
Does nothing.
Definition Mutex.h:236
~NullMutex()
Destroys the NullMutex.
Definition Mutex.h:231
bool tryLock(long)
Does nothing and always returns true.
Definition Mutex.h:252
This stream discards all characters written to it.
Definition NullStream.h:77
virtual ~RefCountedObject()
Returns the reference count.
void release() const noexcept
Increments the object's reference count.
RefCountedObject & operator=(const RefCountedObject &)
RefCountedObject(const RefCountedObject &)
Destroys the RefCountedObject.
Simple ReferenceCounter object, does not delete itself when count reaches 0.
Definition SharedPtr.h:33
AtomicCounter _cnt
Definition SharedPtr.h:55
int referenceCount() const
Definition SharedPtr.h:49
The release policy for SharedPtr holding arrays.
Definition SharedPtr.h:77
static void release(C *pObj) noexcept
Definition SharedPtr.h:79
static void release(C *pObj) noexcept
Definition SharedPtr.h:65
virtual ~Runnable()
virtual void run()=0
ScopedLock(M &mutex, long milliseconds)
Definition ScopedLock.h:41
ScopedLock(const ScopedLock &)
ScopedLock(M &mutex)
Definition ScopedLock.h:36
ScopedLock & operator=(const ScopedLock &)
ScopedLockWithUnlock & operator=(const ScopedLockWithUnlock &)
ScopedLockWithUnlock(const ScopedLockWithUnlock &)
ScopedLockWithUnlock(M &mutex, long milliseconds)
Definition ScopedLock.h:83
C * deref() const
Definition SharedPtr.h:431
bool operator!=(const SharedPtr &ptr) const
Definition SharedPtr.h:345
SharedPtr(SharedPtr &&ptr) noexcept
Definition SharedPtr.h:151
SharedPtr & operator=(SharedPtr &&ptr) noexcept
Definition SharedPtr.h:226
const C * get() const
Definition SharedPtr.h:300
SharedPtr< Other, RC, RP > cast() const
Definition SharedPtr.h:249
void release() noexcept
Definition SharedPtr.h:439
SharedPtr(C *ptr)
Definition SharedPtr.h:125
bool operator<=(C *ptr) const
Definition SharedPtr.h:390
bool operator<(const C *ptr) const
Definition SharedPtr.h:370
bool operator<=(const C *ptr) const
Definition SharedPtr.h:385
bool operator>=(C *ptr) const
Definition SharedPtr.h:420
void swap(SharedPtr &ptr)
Definition SharedPtr.h:242
SharedPtr(const SharedPtr< Other, RC, OtherRP > &ptr)
Definition SharedPtr.h:137
void reset(const SharedPtr< Other, RC, OtherRP > &ptr)
Definition SharedPtr.h:211
bool operator==(const SharedPtr &ptr) const
Definition SharedPtr.h:325
bool operator>=(const C *ptr) const
Definition SharedPtr.h:415
bool operator!=(const C *ptr) const
Definition SharedPtr.h:350
bool operator>(C *ptr) const
Definition SharedPtr.h:405
bool operator>(const C *ptr) const
Definition SharedPtr.h:400
void reset(const SharedPtr &ptr)
Definition SharedPtr.h:205
bool operator==(C *ptr) const
Definition SharedPtr.h:335
bool operator<=(const SharedPtr &ptr) const
Definition SharedPtr.h:380
bool operator!=(C *ptr) const
Definition SharedPtr.h:355
bool operator>=(const SharedPtr &ptr) const
Definition SharedPtr.h:410
bool operator==(std::nullptr_t ptr) const
Definition SharedPtr.h:340
SharedPtr(const SharedPtr &ptr)
Definition SharedPtr.h:144
SharedPtr(RC *pCounter, C *ptr)
Definition SharedPtr.h:451
SharedPtr< Other, RC, RP > unsafeCast() const
Definition SharedPtr.h:264
SharedPtr & assign(const SharedPtr &ptr)
Definition SharedPtr.h:174
SharedPtr & operator=(const SharedPtr &ptr)
Definition SharedPtr.h:221
operator const C *() const
Definition SharedPtr.h:310
SharedPtr & assign(C *ptr)
Definition SharedPtr.h:164
const C & operator*() const
Definition SharedPtr.h:290
const C * operator->() const
Definition SharedPtr.h:280
int referenceCount() const
Definition SharedPtr.h:425
SharedPtr & assign(const SharedPtr< Other, RC, OtherRP > &ptr)
Definition SharedPtr.h:185
void reset(C *ptr)
Definition SharedPtr.h:200
bool operator==(const C *ptr) const
Definition SharedPtr.h:330
bool operator>(const SharedPtr &ptr) const
Definition SharedPtr.h:395
bool operator!() const
Definition SharedPtr.h:315
SharedPtr & operator=(const SharedPtr< Other, RC, OtherRP > &ptr)
Definition SharedPtr.h:237
bool isNull() const
Definition SharedPtr.h:320
bool operator<(const SharedPtr &ptr) const
Definition SharedPtr.h:365
SharedPtr & operator=(C *ptr)
Definition SharedPtr.h:216
bool operator<(C *ptr) const
Definition SharedPtr.h:375
bool operator!=(std::nullptr_t ptr) const
Definition SharedPtr.h:360
void reset()
Deletes the singleton object.
static std::streamsize copyStream(std::istream &istr, std::ostream &ostr, std::size_t bufferSize=8192)
static std::streamsize copyToString(std::istream &istr, std::string &str, std::size_t bufferSize=8192)
static std::streamsize copyStreamUnbuffered(std::istream &istr, std::ostream &ostr)
Creates and returns a unique id for a thread.
Definition Thread.h:245
FunctorRunnable(const Functor &functor)
Definition Thread.h:247
FunctorRunnable(Functor &&functor)
Definition Thread.h:252
Event _event
Definition Thread.h:277
void startFunc(const Functor &fn)
Starts the thread with the given target and parameter.
Definition Thread.h:157
bool isRunning() const
Definition Thread.h:316
std::string _name
Definition Thread.h:275
void start(Poco::SharedPtr< Runnable > pTarget)
std::string makeName()
Clears the thread's local storage.
void start(Callable target, void *pData=0)
void setOSPriority(int prio, int policy=POLICY_DEFAULT)
Returns the thread's priority.
Definition Thread.h:340
static bool trySleep(long milliseconds)
Returns true if the thread is running.
void setStackSize(int size)
Definition Thread.h:364
Priority
Thread priorities.
Definition Thread.h:62
@ PRIO_HIGHEST
A higher than normal thread priority.
Definition Thread.h:67
@ PRIO_LOW
The lowest thread priority.
Definition Thread.h:64
@ PRIO_HIGH
The normal thread priority.
Definition Thread.h:66
@ PRIO_LOWEST
Definition Thread.h:63
@ PRIO_NORMAL
A lower than normal thread priority.
Definition Thread.h:65
std::string getName() const
Returns the name of the thread.
Definition Thread.h:308
ThreadImpl::TIDImpl TID
Definition Thread.h:56
Thread & operator=(const Thread &)
void join(long milliseconds)
bool tryJoin(long milliseconds)
void startFunc(Functor &&fn)
Starts the thread with the given functor object or lambda.
Definition Thread.h:164
int id() const
Destroys the thread.
Definition Thread.h:294
@ POLICY_DEFAULT
Definition Thread.h:72
int getStackSize() const
Definition Thread.h:370
static TID currentTid()
Definition Thread.h:376
static void yield()
Definition Thread.h:328
static int uniqueId()
Creates a unique name for a thread.
void clearTLS()
Returns a reference to the thread's local storage.
static int getMaxOSPriority(int policy=POLICY_DEFAULT)
Definition Thread.h:358
~Thread()
Creates a named thread. Call start() to start it.
static void sleep(long milliseconds)
Definition Thread.h:322
static Thread * current()
Yields cpu to other threads.
Definition Thread.h:334
int getOSPriority() const
Definition Thread.h:346
FastMutex _mutex
Definition Thread.h:278
ThreadLocalStorage * _pTLS
Definition Thread.h:276
TID tid() const
Returns the unique thread ID of the thread.
Definition Thread.h:288
Priority getPriority() const
std::string name() const
Returns the native thread ID of the thread.
Definition Thread.h:300
void start(Runnable &target)
void setPriority(Priority prio)
Sets the name of the thread.
static int getMinOSPriority(int policy=POLICY_DEFAULT)
Definition Thread.h:352
ThreadLocalStorage & tls()
Returns the native thread ID for the current thread.
Thread(const Thread &)
static void yieldImpl()
void setStackSizeImpl(int size)
TIDImpl tidImpl() const
void setOSPriorityImpl(int prio, int policy=0)
int getOSPriorityImpl() const
static TIDImpl currentTidImpl()
static int getMaxOSPriorityImpl(int policy)
static void sleepImpl(long milliseconds)
void(* Callable)(void *)
int getStackSizeImpl() const
bool isRunningImpl() const
static int getMinOSPriorityImpl(int policy)
static ThreadImpl * currentImpl()
int getStackSize() const
Definition ThreadPool.h:193
void startWithPriority(Thread::Priority priority, Runnable &target)
void start(Runnable &target)
Returns the number available threads.
const std::string & name() const
Definition ThreadPool.h:199
ThreadVec _threads
Definition ThreadPool.h:179
ThreadPool & operator=(const ThreadPool &pool)
static ThreadPool & defaultPool()
int capacity() const
ThreadPool(int minCapacity=2, int maxCapacity=16, int idleTime=60, int stackSize=POCO_THREAD_STACK_SIZE)
int used() const
Returns the stack size used to create new threads.
PooledThread * getThread()
FastMutex _mutex
Definition ThreadPool.h:180
PooledThread * createThread()
std::string _name
Definition ThreadPool.h:172
int allocated() const
Returns the number of currently used threads.
void setStackSize(int stackSize)
Returns the maximum capacity of threads.
Definition ThreadPool.h:187
ThreadPool(const ThreadPool &pool)
std::vector< PooledThread * > ThreadVec
Definition ThreadPool.h:170
int available() const
Returns the number of currently allocated threads.
void addCapacity(int n)
A class that represents time spans up to microsecond resolution.
Definition Timespan.h:30
int useconds() const
Definition Timespan.h:205
Timespan(const Timespan &timespan)
Creates a Timespan.
int totalMinutes() const
Returns the number of minutes (0 to 59).
Definition Timespan.h:169
static const TimeDiff SECONDS
The number of microseconds in a millisecond.
Definition Timespan.h:132
bool operator>=(TimeDiff microSeconds) const
Definition Timespan.h:271
bool operator>(TimeDiff microSeconds) const
Definition Timespan.h:265
int seconds() const
Returns the total number of minutes.
Definition Timespan.h:175
Timespan(int days, int hours, int minutes, int seconds, int microSeconds)
Timespan & operator=(TimeDiff microseconds)
Assignment operator.
Timespan operator-(TimeDiff microSeconds) const
bool operator<=(const Timespan &ts) const
Definition Timespan.h:247
static const TimeDiff HOURS
The number of microseconds in a minute.
Definition Timespan.h:134
Timespan & assign(long seconds, long microseconds)
Assigns a new span.
bool operator==(const Timespan &ts) const
Swaps the Timespan with another one.
Definition Timespan.h:217
void swap(Timespan &timespan)
bool operator==(TimeDiff microSeconds) const
Definition Timespan.h:253
TimeDiff _span
The number of microseconds in a day.
Definition Timespan.h:138
Timespan & operator-=(TimeDiff microSeconds)
Timespan(long seconds, long microseconds)
Creates a Timespan.
TimeDiff totalMicroseconds() const
Definition Timespan.h:211
int totalHours() const
Returns the number of hours (0 to 23).
Definition Timespan.h:157
Timespan & operator=(const Timespan &timespan)
Destroys the Timespan.
int totalSeconds() const
Returns the number of seconds (0 to 59).
Definition Timespan.h:181
TimeDiff totalMilliseconds() const
Returns the number of milliseconds (0 to 999).
Definition Timespan.h:193
Timespan & operator-=(const Timespan &d)
bool operator>=(const Timespan &ts) const
Definition Timespan.h:235
int hours() const
Returns the number of days.
Definition Timespan.h:151
Timespan(TimeDiff microseconds)
Creates a zero Timespan.
int minutes() const
Returns the total number of hours.
Definition Timespan.h:163
bool operator!=(const Timespan &ts) const
Definition Timespan.h:223
Timespan operator+(TimeDiff microSeconds) const
bool operator>(const Timespan &ts) const
Definition Timespan.h:229
bool operator<(TimeDiff microSeconds) const
Definition Timespan.h:277
int days() const
Definition Timespan.h:145
static const TimeDiff DAYS
The number of microseconds in a hour.
Definition Timespan.h:135
int microseconds() const
Returns the total number of milliseconds.
Definition Timespan.h:199
int milliseconds() const
Returns the total number of seconds.
Definition Timespan.h:187
Timespan & operator+=(TimeDiff microSeconds)
static const TimeDiff MINUTES
The number of microseconds in a second.
Definition Timespan.h:133
~Timespan()
Creates a Timespan from another one.
Definition Timespan.h:295
Timespan & operator+=(const Timespan &d)
static const TimeDiff MILLISECONDS
Returns the total number of microseconds.
Definition Timespan.h:131
bool operator<(const Timespan &ts) const
Definition Timespan.h:241
Timespan operator-(const Timespan &d) const
Timespan & assign(int days, int hours, int minutes, int seconds, int microSeconds)
Assignment operator.
Timespan operator+(const Timespan &d) const
bool operator<=(TimeDiff microSeconds) const
Definition Timespan.h:283
bool operator!=(TimeDiff microSeconds) const
Definition Timespan.h:259
Timestamp & operator=(const Timestamp &other)
Destroys the timestamp.
Timestamp & operator+=(TimeDiff d)
Definition Timestamp.h:210
Timestamp & operator-=(TimeDiff d)
Definition Timestamp.h:217
Timestamp(TimeVal tv)
Creates a timestamp with the current time.
Timestamp & operator=(TimeVal tv)
bool isElapsed(TimeDiff interval) const
Definition Timestamp.h:249
static const TimeVal TIMEVAL_MIN
Difference between two TimeVal values in microseconds.
Definition Timestamp.h:61
TimeVal epochMicroseconds() const
Definition Timestamp.h:236
static Timestamp fromUtcTime(UtcTimeVal val)
Creates a timestamp from a std::time_t.
TimeDiff elapsed() const
Definition Timestamp.h:242
static TimeDiff resolution()
Definition Timestamp.h:257
bool operator<=(const Timestamp &ts) const
Definition Timestamp.h:186
Timestamp operator+(const Timespan &span) const
std::time_t epochTime() const
Definition Timestamp.h:224
~Timestamp()
Copy constructor.
Timestamp operator-(const Timespan &span) const
bool operator==(const Timestamp &ts) const
Updates the Timestamp with the current time.
Definition Timestamp.h:156
bool operator>=(const Timestamp &ts) const
Definition Timestamp.h:174
Timestamp & operator-=(const Timespan &span)
UtcTimeVal utcTime() const
Definition Timestamp.h:230
Timestamp operator+(TimeDiff d) const
Definition Timestamp.h:192
bool operator<(const Timestamp &ts) const
Definition Timestamp.h:180
static Timestamp fromEpochTime(std::time_t t)
Timestamp()
Maximum timestamp value.
bool operator!=(const Timestamp &ts) const
Definition Timestamp.h:162
static const TimeVal TIMEVAL_MAX
Minimum timestamp value.
Definition Timestamp.h:62
TimeDiff operator-(const Timestamp &ts) const
Definition Timestamp.h:204
Timestamp & operator+=(const Timespan &span)
bool operator>(const Timestamp &ts) const
Definition Timestamp.h:168
Timestamp(const Timestamp &other)
void swap(Timestamp &timestamp)
Timestamp operator-(TimeDiff d) const
Definition Timestamp.h:198
TimeVal raw() const
Definition Timestamp.h:269
void update()
Swaps the Timestamp with another one.
const std::string & getHost() const
Sets the user-info part of the URI.
Definition URI.h:385
const std::string & getScheme() const
Definition URI.h:373
URI(const std::string &uri)
Creates an empty URI.
unsigned short getPort() const
Sets the host part of the URI.
std::string getPathAndQuery() const
Returns the encoded path, query and fragment parts of the URI.
FormatError(CStringRef message)
Definition format.h:686
void error(const T &)
int COMP_CTX_get_type(const COMP_CTX *comp)
int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, unsigned char *in, int ilen)
int COMP_get_type(const COMP_METHOD *meth)
int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, unsigned char *in, int ilen)
const COMP_METHOD * COMP_CTX_get_method(const COMP_CTX *ctx)
const char * COMP_get_name(const COMP_METHOD *meth)
COMP_CTX * COMP_CTX_new(COMP_METHOD *meth)
void COMP_CTX_free(COMP_CTX *ctx)
COMP_METHOD * COMP_zlib(void)
int ERR_load_COMP_strings(void)
int ERR_load_CRYPTO_strings(void)
const char * CTLOG_get0_name(const CTLOG *log)
void SCT_print(const SCT *sct, BIO *out, int indent, const CTLOG_STORE *logs)
int SCT_get_signature_nid(const SCT *sct)
int CTLOG_new_from_base64(CTLOG **ct_log, const char *pkey_base64, const char *name)
sct_validation_status_t SCT_get_validation_status(const SCT *sct)
void SCT_LIST_free(STACK_OF(SCT) *a)
SCT * SCT_new(void)
__owur int SCT_set_log_entry_type(SCT *sct, ct_log_entry_type_t entry_type)
X509 * CT_POLICY_EVAL_CTX_get0_issuer(const CT_POLICY_EVAL_CTX *ctx)
X509 * CT_POLICY_EVAL_CTX_get0_cert(const CT_POLICY_EVAL_CTX *ctx)
const CTLOG_STORE * CT_POLICY_EVAL_CTX_get0_log_store(const CT_POLICY_EVAL_CTX *ctx)
uint64_t SCT_get_timestamp(const SCT *sct)
SCT * SCT_new_from_base64(unsigned char version, const char *logid_base64, ct_log_entry_type_t entry_type, uint64_t timestamp, const char *extensions_base64, const char *signature_base64)
const CTLOG * CTLOG_STORE_get0_log_by_id(const CTLOG_STORE *store, const uint8_t *log_id, size_t log_id_len)
const unsigned char ** pp
Definition ct.h:347
const char * SCT_validation_status_string(const SCT *sct)
void CT_POLICY_EVAL_CTX_set_time(CT_POLICY_EVAL_CTX *ctx, uint64_t time_in_ms)
__owur int i2o_SCT(const SCT *sct, unsigned char **out)
size_t SCT_get0_extensions(const SCT *sct, unsigned char **ext)
__owur int i2d_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp)
SCT * o2i_SCT(SCT **psct, const unsigned char **in, size_t len)
__owur int CTLOG_STORE_load_file(CTLOG_STORE *store, const char *file)
size_t SCT_get0_log_id(const SCT *sct, unsigned char **log_id)
__owur int SCT_set_version(SCT *sct, sct_version_t version)
void CTLOG_STORE_free(CTLOG_STORE *store)
__owur int SCT_set_source(SCT *sct, sct_source_t source)
void SCT_set0_signature(SCT *sct, unsigned char *sig, size_t sig_len)
void CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE(CT_POLICY_EVAL_CTX *ctx, CTLOG_STORE *log_store)
CTLOG * CTLOG_new(EVP_PKEY *public_key, const char *name)
int CT_POLICY_EVAL_CTX_set1_issuer(CT_POLICY_EVAL_CTX *ctx, X509 *issuer)
__owur int CTLOG_STORE_load_default_file(CTLOG_STORE *store)
size_t SCT_get0_signature(const SCT *sct, unsigned char **sig)
@ SCT_VERSION_NOT_SET
Definition ct.h:38
@ SCT_VERSION_V1
Definition ct.h:39
__owur int SCT_validate(SCT *sct, const CT_POLICY_EVAL_CTX *ctx)
void SCT_set_timestamp(SCT *sct, uint64_t timestamp)
__owur int SCT_set0_log_id(SCT *sct, unsigned char *log_id, size_t log_id_len)
void SCT_free(SCT *sct)
ct_log_entry_type_t SCT_get_log_entry_type(const SCT *sct)
uint64_t CT_POLICY_EVAL_CTX_get_time(const CT_POLICY_EVAL_CTX *ctx)
sct_source_t SCT_get_source(const SCT *sct)
EVP_PKEY * CTLOG_get0_public_key(const CTLOG *log)
@ SCT_VALIDATION_STATUS_UNKNOWN_VERSION
Definition ct.h:55
@ SCT_VALIDATION_STATUS_UNVERIFIED
Definition ct.h:54
@ SCT_VALIDATION_STATUS_INVALID
Definition ct.h:53
@ SCT_VALIDATION_STATUS_NOT_SET
Definition ct.h:50
@ SCT_VALIDATION_STATUS_UNKNOWN_LOG
Definition ct.h:51
@ SCT_VALIDATION_STATUS_VALID
Definition ct.h:52
__owur int SCT_set_signature_nid(SCT *sct, int nid)
void CTLOG_free(CTLOG *log)
int CT_POLICY_EVAL_CTX_set1_cert(CT_POLICY_EVAL_CTX *ctx, X509 *cert)
sct_version_t SCT_get_version(const SCT *sct)
__owur int SCT_set1_extensions(SCT *sct, const unsigned char *ext, size_t ext_len)
@ CT_LOG_ENTRY_TYPE_PRECERT
Definition ct.h:34
@ CT_LOG_ENTRY_TYPE_X509
Definition ct.h:33
@ CT_LOG_ENTRY_TYPE_NOT_SET
Definition ct.h:32
void CTLOG_get0_log_id(const CTLOG *log, const uint8_t **log_id, size_t *log_id_len)
__owur int i2o_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp)
@ SCT_SOURCE_X509V3_EXTENSION
Definition ct.h:45
@ SCT_SOURCE_UNKNOWN
Definition ct.h:43
@ SCT_SOURCE_TLS_EXTENSION
Definition ct.h:44
@ SCT_SOURCE_OCSP_STAPLED_RESPONSE
Definition ct.h:46
__owur int SCT_set1_log_id(SCT *sct, const unsigned char *log_id, size_t log_id_len)
CT_POLICY_EVAL_CTX * CT_POLICY_EVAL_CTX_new(void)
const unsigned char size_t len
Definition ct.h:348
void SCT_LIST_print(const STACK_OF(SCT) *sct_list, BIO *out, int indent, const char *separator, const CTLOG_STORE *logs)
void CT_POLICY_EVAL_CTX_free(CT_POLICY_EVAL_CTX *ctx)
CTLOG_STORE * CTLOG_STORE_new(void)
void SCT_set0_extensions(SCT *sct, unsigned char *ext, size_t ext_len)
__owur int SCT_LIST_validate(const STACK_OF(SCT) *scts, CT_POLICY_EVAL_CTX *ctx)
__owur int SCT_set1_signature(SCT *sct, const unsigned char *sig, size_t sig_len)
int ERR_load_CT_strings(void)
const BIGNUM * DH_get0_p(const DH *dh)
int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *codes)
#define EVP_PKEY_CTRL_DH_KDF_OUTLEN
Definition dh.h:320
int i2d_DHxparams(const DH *a, unsigned char **pp)
const BIGNUM * DH_get0_priv_key(const DH *dh)
#define EVP_PKEY_CTRL_DH_PAD
Definition dh.h:327
int DH_check_params(const DH *dh, int *ret)
const DH_METHOD * DH_get_default_method(void)
const char * DH_meth_get0_name(const DH_METHOD *dhm)
int i2d_DHparams(const DH *a, unsigned char **pp)
int(*)(unsigned char *key, const BIGNUM *pub_key, DH *dh) DH_meth_get_compute_key(const DH_METHOD *dhm)
Definition dh.h:209
void DH_free(DH *dh)
DH * DHparams_dup(DH *)
int DHparams_print_fp(FILE *fp, const DH *x)
DH * d2i_DHparams(DH **a, const unsigned char **pp, long length)
DH * DH_new_method(ENGINE *engine)
int DH_set_method(DH *dh, const DH_METHOD *meth)
DH * DH_get_2048_224(void)
#define EVP_PKEY_CTRL_DH_KDF_TYPE
Definition dh.h:317
int DH_KDF_X9_42(unsigned char *out, size_t outlen, const unsigned char *Z, size_t Zlen, ASN1_OBJECT *key_oid, const unsigned char *ukm, size_t ukmlen, const EVP_MD *md)
int DH_meth_set_compute_key(DH_METHOD *dhm, int(*compute_key)(unsigned char *key, const BIGNUM *pub_key, DH *dh))
#define EVP_PKEY_CTRL_GET_DH_KDF_MD
Definition dh.h:319
int(*)(DH *) DH_meth_get_finish(const DH_METHOD *dhm)
Definition dh.h:221
int DH_check_pub_key_ex(const DH *dh, const BIGNUM *pub_key)
#define EVP_PKEY_CTRL_DH_KDF_OID
Definition dh.h:324
int DH_meth_get_flags(const DH_METHOD *dhm)
void DH_clear_flags(DH *dh, int flags)
int DH_set_ex_data(DH *d, int idx, void *arg)
int DH_test_flags(const DH *dh, int flags)
#define EVP_PKEY_CTRL_GET_DH_KDF_UKM
Definition dh.h:323
#define EVP_PKEY_CTRL_DH_NID
Definition dh.h:326
int(*)(DH *) DH_meth_get_init(const DH_METHOD *dhm)
Definition dh.h:219
void DH_set_default_method(const DH_METHOD *meth)
void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key)
int DH_security_bits(const DH *dh)
const DH_METHOD * DH_OpenSSL(void)
void DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
DH * DH_new_by_nid(int nid)
int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key)
int DH_meth_set_init(DH_METHOD *dhm, int(*init)(DH *))
DH * DH_get_2048_256(void)
DH * DH_get_1024_160(void)
DH * DH_new(void)
int DH_meth_set_generate_key(DH_METHOD *dhm, int(*generate_key)(DH *))
int DH_bits(const DH *dh)
int DH_meth_set_generate_params(DH_METHOD *dhm, int(*generate_params)(DH *, int, int, BN_GENCB *))
void * DH_get_ex_data(DH *d, int idx)
ENGINE * DH_get0_engine(DH *d)
int DHparams_print(BIO *bp, const DH *x)
const BIGNUM * DH_get0_q(const DH *dh)
int DH_get_nid(const DH *dh)
#define EVP_PKEY_CTRL_GET_DH_KDF_OID
Definition dh.h:325
int DH_meth_set_bn_mod_exp(DH_METHOD *dhm, int(*bn_mod_exp)(const DH *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *))
int DH_size(const DH *dh)
int DH_meth_set1_name(DH_METHOD *dhm, const char *name)
int int BN_GENCB * cb
Definition dh.h:143
int DH_meth_set0_app_data(DH_METHOD *dhm, void *app_data)
DH * d2i_DHxparams(DH **a, const unsigned char **pp, long length)
#define EVP_PKEY_CTRL_DH_KDF_MD
Definition dh.h:318
int DH_meth_set_finish(DH_METHOD *dhm, int(*finish)(DH *))
#define DH_CHECK_P_NOT_SAFE_PRIME
Definition dh.h:73
int int generator
Definition dh.h:142
int(*)(DH *, int, int, BN_GENCB *) DH_meth_get_generate_params(const DH_METHOD *dhm)
Definition dh.h:223
void DH_meth_free(DH_METHOD *dhm)
#define EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR
Definition dh.h:313
int DH_generate_key(DH *dh)
DH_METHOD * DH_meth_new(const char *name, int flags)
#define EVP_PKEY_CTRL_DH_PARAMGEN_TYPE
Definition dh.h:316
int(*)(const DH *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *) DH_meth_get_bn_mod_exp(const DH_METHOD *dhm)
Definition dh.h:213
int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh)
int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g)
#define EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN
Definition dh.h:315
const BIGNUM * DH_get0_pub_key(const DH *dh)
long DH_get_length(const DH *dh)
int(*)(DH *) DH_meth_get_generate_key(const DH_METHOD *dhm)
Definition dh.h:207
int DH_set_length(DH *dh, long length)
#define EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN
Definition dh.h:321
#define EVP_PKEY_CTRL_DH_KDF_UKM
Definition dh.h:322
int DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key, DH *dh)
#define EVP_PKEY_CTRL_DH_RFC5114
Definition dh.h:314
void DH_set_flags(DH *dh, int flags)
#define EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN
Definition dh.h:312
int DH_check(const DH *dh, int *codes)
void * DH_meth_get0_app_data(const DH_METHOD *dhm)
const BIGNUM * DH_get0_g(const DH *dh)
int DH_meth_set_flags(DH_METHOD *dhm, int flags)
int DH_up_ref(DH *dh)
DH_METHOD * DH_meth_dup(const DH_METHOD *dhm)
int DH_check_params_ex(const DH *dh)
int DH_check_ex(const DH *dh)
int prime_len
Definition dh.h:142
int ERR_load_DH_strings(void)
void DSA_meth_free(DSA_METHOD *dsam)
DSA_METHOD * DSA_meth_new(const char *name, int flags)
int DSA_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig, DSA *dsa)
int(*)(DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *) DSA_meth_get_bn_mod_exp(const DSA_METHOD *dsam)
Definition dsa.h:220
int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp)
const BIGNUM * DSA_get0_pub_key(const DSA *d)
int DSA_meth_set_verify(DSA_METHOD *dsam, int(*verify)(const unsigned char *, int, DSA_SIG *, DSA *))
DSA_SIG * DSA_SIG_new(void)
int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key)
int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp)
DSA_SIG * DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa)
int DSA_bits(const DSA *d)
#define DSS_prime_checks
Definition dsa.h:144
int(*)(const unsigned char *, int, DSA_SIG *, DSA *) DSA_meth_get_verify(const DSA_METHOD *dsam)
Definition dsa.h:209
int DSA_verify(int type, const unsigned char *dgst, int dgst_len, const unsigned char *sigbuf, int siglen, DSA *dsa)
int DSA_meth_set_keygen(DSA_METHOD *dsam, int(*keygen)(DSA *))
int DSA_meth_set1_name(DSA_METHOD *dsam, const char *name)
int(*)(DSA *) DSA_meth_get_init(const DSA_METHOD *dsam)
Definition dsa.h:226
int const unsigned char int seed_len
Definition dsa.h:128
int DSA_size(const DSA *)
void DSA_set_default_method(const DSA_METHOD *)
DSA * DSA_new_method(ENGINE *engine)
int const unsigned char * seed
Definition dsa.h:128
const DSA_METHOD * DSA_get_method(DSA *d)
int DSA_meth_set_flags(DSA_METHOD *dsam, int flags)
void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps)
DSA_METHOD * DSA_meth_dup(const DSA_METHOD *dsam)
DSA * d2i_DSAPublicKey(DSA **a, const unsigned char **pp, long length)
int DSA_meth_set_paramgen(DSA_METHOD *dsam, int(*paramgen)(DSA *, int, const unsigned char *, int, int *, unsigned long *, BN_GENCB *))
int(*)(DSA *) DSA_meth_get_keygen(const DSA_METHOD *dsam)
Definition dsa.h:236
void DSA_clear_flags(DSA *d, int flags)
int DSA_security_bits(const DSA *d)
int(*)(DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *) DSA_meth_get_mod_exp(const DSA_METHOD *dsam)
Definition dsa.h:213
#define EVP_PKEY_CTRL_DSA_PARAMGEN_BITS
Definition dsa.h:172
DH * DSA_dup_DH(const DSA *r)
DSA * DSA_new(void)
int DSAparams_print_fp(FILE *fp, const DSA *x)
int DSA_meth_set_bn_mod_exp(DSA_METHOD *dsam, int(*bn_mod_exp)(DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *))
#define EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS
Definition dsa.h:173
const BIGNUM * DSA_get0_q(const DSA *d)
int DSA_up_ref(DSA *r)
const BIGNUM * DSA_get0_g(const DSA *d)
int DSA_meth_set_sign(DSA_METHOD *dsam, DSA_SIG *(*sign)(const unsigned char *, int, DSA *))
int const unsigned char int int unsigned long * h_ret
Definition dsa.h:129
DSA * d2i_DSAparams(DSA **a, const unsigned char **pp, long length)
int DSA_meth_set_finish(DSA_METHOD *dsam, int(*finish)(DSA *))
void * DSA_get_ex_data(DSA *d, int idx)
void DSA_SIG_free(DSA_SIG *a)
int DSAparams_print(BIO *bp, const DSA *x)
DSA * d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length)
int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g)
int DSA_meth_set0_app_data(DSA_METHOD *dsam, void *app_data)
int DSA_meth_set_mod_exp(DSA_METHOD *dsam, int(*mod_exp)(DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *))
const BIGNUM * DSA_get0_priv_key(const DSA *d)
int(*)(DSA *, BN_CTX *, BIGNUM **, BIGNUM **) DSA_meth_get_sign_setup(const DSA_METHOD *dsam)
Definition dsa.h:205
const BIGNUM * DSA_get0_p(const DSA *d)
int DSA_meth_set_sign_setup(DSA_METHOD *dsam, int(*sign_setup)(DSA *, BN_CTX *, BIGNUM **, BIGNUM **))
const char * DSA_meth_get0_name(const DSA_METHOD *dsam)
void DSA_set_flags(DSA *d, int flags)
const DSA_METHOD * DSA_OpenSSL(void)
int i2d_DSAPublicKey(const DSA *a, unsigned char **pp)
int DSA_generate_key(DSA *a)
void * DSA_meth_get0_app_data(const DSA_METHOD *dsam)
int const unsigned char int int * counter_ret
Definition dsa.h:129
int DSA_meth_get_flags(const DSA_METHOD *dsam)
struct DSA_SIG_st DSA_SIG
Definition dsa.h:65
int const unsigned char int int unsigned long BN_GENCB * cb
Definition dsa.h:130
int DSA_print(BIO *bp, const DSA *x, int off)
void DSA_get0_key(const DSA *d, const BIGNUM **pub_key, const BIGNUM **priv_key)
int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s)
int(*)(DSA *) DSA_meth_get_finish(const DSA_METHOD *dsam)
Definition dsa.h:228
int DSA_set_method(DSA *dsa, const DSA_METHOD *)
int DSA_meth_set_init(DSA_METHOD *dsam, int(*init)(DSA *))
int DSA_test_flags(const DSA *d, int flags)
ENGINE * DSA_get0_engine(DSA *d)
int DSA_set_ex_data(DSA *d, int idx, void *arg)
int DSA_print_fp(FILE *bp, const DSA *x, int off)
#define EVP_PKEY_CTRL_DSA_PARAMGEN_MD
Definition dsa.h:174
DSA_SIG * d2i_DSA_SIG(DSA_SIG **v, const unsigned char **pp, long length)
const DSA_METHOD * DSA_get_default_method(void)
int bits
Definition dsa.h:127
void DSA_free(DSA *r)
void DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
int i2d_DSAparams(const DSA *a, unsigned char **pp)
int(*)(DSA *, int, const unsigned char *, int, int *, unsigned long *, BN_GENCB *) DSA_meth_get_paramgen(const DSA_METHOD *dsam)
Definition dsa.h:230
DSA * DSAparams_dup(DSA *x)
int DSA_sign(int type, const unsigned char *dgst, int dlen, unsigned char *sig, unsigned int *siglen, DSA *dsa)
int ERR_load_DSA_strings(void)
#define DTLS1_VERSION
Definition dtls1.h:17
#define DTLS1_2_VERSION
Definition dtls1.h:18
#define ossl_unused
Definition e_os2.h:294
#define ossl_inline
Definition e_os2.h:276
#define ossl_ssize_t
Definition e_os2.h:214
#define __owur
Definition e_os2.h:227
#define ossl_noreturn
Definition e_os2.h:287
int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1, unsigned int *k2, unsigned int *k3)
unsigned EC_KEY_get_enc_flags(const EC_KEY *key)
int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp)
int EC_curve_nist2nid(const char *name)
ECDSA_SIG * d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len)
ECDSA_SIG * ECDSA_SIG_new(void)
EC_GROUP * EC_GROUP_new_from_ecparameters(const ECPARAMETERS *params)
void EC_GROUP_clear_free(EC_GROUP *group)
size_t EC_KEY_priv2oct(const EC_KEY *key, unsigned char *buf, size_t len)
const EC_METHOD * EC_GFp_mont_method(void)
void EC_KEY_METHOD_set_compute_key(EC_KEY_METHOD *meth, int(*ckey)(unsigned char **psec, size_t *pseclen, const EC_POINT *pub_key, const EC_KEY *ecdh))
const EC_POINT * EC_KEY_get0_public_key(const EC_KEY *key)
int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, EC_POINT *points[], BN_CTX *ctx)
size_t EC_POINT_point2buf(const EC_GROUP *group, const EC_POINT *point, point_conversion_form_t form, unsigned char **pbuf, BN_CTX *ctx)
int EC_GROUP_set_curve(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
EC_POINT const BIGNUM const BIGNUM BN_CTX *ctx EC_POINT const BIGNUM int BN_CTX *ctx size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p, point_conversion_form_t form, unsigned char *buf, size_t len, BN_CTX *ctx)
size_t EC_KEY_priv2buf(const EC_KEY *eckey, unsigned char **pbuf)
EC_KEY * d2i_ECParameters(EC_KEY **key, const unsigned char **in, long len)
struct ecpk_parameters_st ECPKPARAMETERS
Definition ec.h:47
int EC_GROUP_get_curve(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, BN_CTX *ctx)
void EC_KEY_METHOD_get_init(const EC_KEY_METHOD *meth, int(**pinit)(EC_KEY *key), void(**pfinish)(EC_KEY *key), int(**pcopy)(EC_KEY *dest, const EC_KEY *src), int(**pset_group)(EC_KEY *key, const EC_GROUP *grp), int(**pset_private)(EC_KEY *key, const BIGNUM *priv_key), int(**pset_public)(EC_KEY *key, const EC_POINT *pub_key))
BIGNUM BIGNUM BIGNUM BN_CTX *ctx BIGNUM BIGNUM BIGNUM BN_CTX *ctx int EC_GROUP_get_degree(const EC_GROUP *group)
void EC_KEY_set_default_method(const EC_KEY_METHOD *meth)
int EC_KEY_up_ref(EC_KEY *key)
void EC_KEY_METHOD_set_init(EC_KEY_METHOD *meth, int(*init)(EC_KEY *key), void(*finish)(EC_KEY *key), int(*copy)(EC_KEY *dest, const EC_KEY *src), int(*set_group)(EC_KEY *key, const EC_GROUP *grp), int(*set_private)(EC_KEY *key, const BIGNUM *priv_key), int(*set_public)(EC_KEY *key, const EC_POINT *pub_key))
void EC_KEY_METHOD_free(EC_KEY_METHOD *meth)
int ECDSA_sign(int type, const unsigned char *dgst, int dgstlen, unsigned char *sig, unsigned int *siglen, EC_KEY *eckey)
ENGINE * EC_KEY_get0_engine(const EC_KEY *eckey)
#define EVP_PKEY_CTRL_EC_KDF_TYPE
Definition ec.h:1456
BN_MONT_CTX * EC_GROUP_get_mont_data(const EC_GROUP *group)
#define EVP_PKEY_CTRL_GET1_ID_LEN
Definition ec.h:1465
int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, size_t num, const EC_POINT *p[], const BIGNUM *m[], BN_CTX *ctx)
int EC_GROUP_order_bits(const EC_GROUP *group)
const BIGNUM * EC_GROUP_get0_order(const EC_GROUP *group)
EC_KEY * o2i_ECPublicKey(EC_KEY **key, const unsigned char **in, long len)
EC_GROUP * EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
const BIGNUM * ECDSA_SIG_get0_r(const ECDSA_SIG *sig)
void EC_KEY_METHOD_get_sign(const EC_KEY_METHOD *meth, int(**psign)(int type, const unsigned char *dgst, int dlen, unsigned char *sig, unsigned int *siglen, const BIGNUM *kinv, const BIGNUM *r, EC_KEY *eckey), int(**psign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp), ECDSA_SIG *(**psign_sig)(const unsigned char *dgst, int dgst_len, const BIGNUM *in_kinv, const BIGNUM *in_r, EC_KEY *eckey))
int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out)
#define EVP_PKEY_CTRL_GET1_ID
Definition ec.h:1464
const EC_METHOD * EC_GFp_nist_method(void)
const BIGNUM * EC_GROUP_get0_cofactor(const EC_GROUP *group)
void EC_KEY_set_conv_form(EC_KEY *eckey, point_conversion_form_t cform)
int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group)
const EC_KEY_METHOD * EC_KEY_OpenSSL(void)
#define EVP_PKEY_ECDH_KDF_X9_63
Definition ec.h:1468
void EC_KEY_clear_flags(EC_KEY *key, int flags)
EC_KEY * EC_KEY_new_by_curve_name(int nid)
int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, const BIGNUM *x, const BIGNUM *y, const BIGNUM *z, BN_CTX *ctx)
#define EVP_PKEY_CTRL_EC_PARAM_ENC
Definition ec.h:1454
int ECParameters_print_fp(FILE *fp, const EC_KEY *key)
unsigned char * EC_GROUP_get0_seed(const EC_GROUP *x)
EC_KEY * EC_KEY_copy(EC_KEY *dst, const EC_KEY *src)
int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p, const unsigned char *buf, size_t len, BN_CTX *ctx)
const BIGNUM * EC_KEY_get0_private_key(const EC_KEY *key)
ECDSA_SIG * ECDSA_do_sign(const unsigned char *dgst, int dgst_len, EC_KEY *eckey)
const BIGNUM * ECDSA_SIG_get0_s(const ECDSA_SIG *sig)
int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x, BIGNUM *y)
const EC_GROUP * EC_KEY_get0_group(const EC_KEY *key)
int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, const EC_POINT *b, BN_CTX *ctx)
struct ec_parameters_st ECPARAMETERS
Definition ec.h:48
void EC_GROUP_set_point_conversion_form(EC_GROUP *group, point_conversion_form_t form)
int ECParameters_print(BIO *bp, const EC_KEY *key)
int i2o_ECPublicKey(const EC_KEY *key, unsigned char **out)
#define EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN
Definition ec.h:1460
const EC_POINT * EC_GROUP_get0_generator(const EC_GROUP *group)
int ECDSA_sign_ex(int type, const unsigned char *dgst, int dgstlen, unsigned char *sig, unsigned int *siglen, const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey)
#define EVP_PKEY_CTRL_EC_KDF_MD
Definition ec.h:1457
int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src)
ECDSA_SIG * ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen, const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey)
int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, const BIGNUM *order, const BIGNUM *cofactor)
int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off)
int EC_POINT_get_affine_coordinates(const EC_GROUP *group, const EC_POINT *p, BIGNUM *x, BIGNUM *y, BN_CTX *ctx)
int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor, BN_CTX *ctx)
size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems)
int EC_KEY_get_flags(const EC_KEY *key)
#define EVP_PKEY_CTRL_EC_KDF_OUTLEN
Definition ec.h:1459
int EC_KEY_set_method(EC_KEY *key, const EC_KEY_METHOD *meth)
int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx)
void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag)
int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx)
char * EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *, point_conversion_form_t form, BN_CTX *)
void EC_KEY_METHOD_get_compute_key(const EC_KEY_METHOD *meth, int(**pck)(unsigned char **psec, size_t *pseclen, const EC_POINT *pub_key, const EC_KEY *ecdh))
EC_GROUP * d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len)
void EC_GROUP_set_curve_name(EC_GROUP *group, int nid)
const char * EC_curve_nid2nist(int nid)
int EC_KEY_generate_key(EC_KEY *key)
#define EVP_PKEY_CTRL_EC_ECDH_COFACTOR
Definition ec.h:1455
struct ECDSA_SIG_st ECDSA_SIG
Definition ec.h:1127
EC_GROUP * EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
BIGNUM BIGNUM * a
Definition ec.h:275
EC_GROUP * EC_GROUP_new_from_ecpkparameters(const ECPKPARAMETERS *params)
int EC_GROUP_get_asn1_flag(const EC_GROUP *group)
int EC_KEY_decoded_from_explicit_params(const EC_KEY *key)
EC_POINT * EC_POINT_bn2point(const EC_GROUP *, const BIGNUM *, EC_POINT *, BN_CTX *)
const EC_METHOD * EC_GFp_simple_method(void)
int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off)
int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx)
int EC_POINT_copy(EC_POINT *dst, const EC_POINT *src)
void EC_GROUP_free(EC_GROUP *group)
void EC_POINT_free(EC_POINT *point)
ECPARAMETERS * EC_GROUP_get_ecparameters(const EC_GROUP *group, ECPARAMETERS *params)
EC_GROUP * EC_GROUP_new_by_curve_name(int nid)
EC_POINT * EC_POINT_new(const EC_GROUP *group)
const EC_METHOD * EC_GF2m_simple_method(void)
EC_KEY * EC_KEY_new(void)
EC_POINT * EC_POINT_hex2point(const EC_GROUP *, const char *, EC_POINT *, BN_CTX *)
int ECDSA_size(const EC_KEY *eckey)
int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx)
const EC_METHOD * EC_POINT_method_of(const EC_POINT *point)
int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p)
BIGNUM * EC_POINT_point2bn(const EC_GROUP *, const EC_POINT *, point_conversion_form_t form, BIGNUM *, BN_CTX *)
int EC_KEY_can_sign(const EC_KEY *eckey)
void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag)
const EC_KEY_METHOD * EC_KEY_get_method(const EC_KEY *key)
void EC_KEY_METHOD_set_verify(EC_KEY_METHOD *meth, int(*verify)(int type, const unsigned char *dgst, int dgst_len, const unsigned char *sigbuf, int sig_len, EC_KEY *eckey), int(*verify_sig)(const unsigned char *dgst, int dgst_len, const ECDSA_SIG *sig, EC_KEY *eckey))
const EC_KEY_METHOD * EC_KEY_get_default_method(void)
int EC_KEY_oct2key(EC_KEY *key, const unsigned char *buf, size_t len, BN_CTX *ctx)
const EC_POINT BIGNUM BIGNUM BN_CTX *ctx int EC_POINT_set_compressed_coordinates(const EC_GROUP *group, EC_POINT *p, const BIGNUM *x, int y_bit, BN_CTX *ctx)
void EC_KEY_METHOD_get_verify(const EC_KEY_METHOD *meth, int(**pverify)(int type, const unsigned char *dgst, int dgst_len, const unsigned char *sigbuf, int sig_len, EC_KEY *eckey), int(**pverify_sig)(const unsigned char *dgst, int dgst_len, const ECDSA_SIG *sig, EC_KEY *eckey))
int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx)
void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps)
EC_GROUP * EC_GROUP_dup(const EC_GROUP *src)
@ POINT_CONVERSION_UNCOMPRESSED
Definition ec.h:38
@ POINT_CONVERSION_COMPRESSED
Definition ec.h:36
@ POINT_CONVERSION_HYBRID
Definition ec.h:41
int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx)
int i2d_ECParameters(EC_KEY *key, unsigned char **out)
int EC_KEY_set_ex_data(EC_KEY *key, int idx, void *arg)
EC_POINT * EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group)
const EC_METHOD * EC_GROUP_method_of(const EC_GROUP *group)
int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, BN_CTX *ctx)
EC_KEY_METHOD * EC_KEY_METHOD_new(const EC_KEY_METHOD *meth)
void EC_KEY_METHOD_set_keygen(EC_KEY_METHOD *meth, int(*keygen)(EC_KEY *key))
const EC_POINT BIGNUM * x
Definition ec.h:545
void EC_KEY_METHOD_get_keygen(const EC_KEY_METHOD *meth, int(**pkeygen)(EC_KEY *key))
#define EVP_PKEY_CTRL_EC_KDF_UKM
Definition ec.h:1461
EC_KEY * d2i_ECPrivateKey(EC_KEY **key, const unsigned char **in, long len)
int EC_GROUP_get_basis_type(const EC_GROUP *)
void EC_POINT_clear_free(EC_POINT *point)
int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, const EC_KEY *ecdh, void *(*KDF)(const void *in, size_t inlen, void *out, size_t *outlen))
int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub)
struct ec_point_st EC_POINT
Definition ec.h:46
int EC_POINT_set_affine_coordinates(const EC_GROUP *group, EC_POINT *p, const BIGNUM *x, const BIGNUM *y, BN_CTX *ctx)
#define EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID
Definition ec.h:1453
BIGNUM * p
Definition ec.h:274
int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point)
void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags)
size_t EC_KEY_key2buf(const EC_KEY *key, point_conversion_form_t form, unsigned char **pbuf, BN_CTX *ctx)
int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, const unsigned char *Z, size_t Zlen, const unsigned char *sinfo, size_t sinfolen, const EVP_MD *md)
int ECDSA_verify(int type, const unsigned char *dgst, int dgstlen, const unsigned char *sig, int siglen, EC_KEY *eckey)
int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off)
int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv)
BIGNUM BIGNUM BIGNUM * b
Definition ec.h:275
struct ec_group_st EC_GROUP
Definition ec.h:45
void * EC_KEY_get_ex_data(const EC_KEY *key, int idx)
ECPKPARAMETERS * EC_GROUP_get_ecpkparameters(const EC_GROUP *group, ECPKPARAMETERS *params)
void ECDSA_SIG_free(ECDSA_SIG *sig)
#define EVP_PKEY_CTRL_SET1_ID
Definition ec.h:1463
point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key)
EC_POINT const BIGNUM const BIGNUM BN_CTX *ctx EC_POINT const BIGNUM int y_bit
Definition ec.h:618
int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group, const EC_POINT *p, BIGNUM *x, BIGNUM *y, BIGNUM *z, BN_CTX *ctx)
int EC_GROUP_get_curve_name(const EC_GROUP *group)
#define EVP_PKEY_CTRL_GET_EC_KDF_MD
Definition ec.h:1458
EC_KEY * EC_KEY_dup(const EC_KEY *src)
int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k)
int EC_METHOD_get_field_type(const EC_METHOD *meth)
int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s)
int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, const ECDSA_SIG *sig, EC_KEY *eckey)
int EC_GROUP_have_precompute_mult(const EC_GROUP *group)
#define EVP_PKEY_CTRL_GET_EC_KDF_UKM
Definition ec.h:1462
int i2d_ECPrivateKey(EC_KEY *key, unsigned char **out)
int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **rp)
struct ec_method_st EC_METHOD
Definition ec.h:44
int EC_KEY_oct2priv(EC_KEY *key, const unsigned char *buf, size_t len)
void EC_KEY_set_flags(EC_KEY *key, int flags)
int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx)
const EC_POINT BIGNUM BIGNUM * y
Definition ec.h:546
int EC_KEY_print(BIO *bp, const EC_KEY *key, int off)
int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx)
void EC_KEY_free(EC_KEY *key)
EC_KEY * EC_KEY_new_method(ENGINE *engine)
int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx)
size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len)
int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, BN_CTX *ctx)
int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, BN_CTX *ctx)
void EC_KEY_METHOD_set_sign(EC_KEY_METHOD *meth, int(*sign)(int type, const unsigned char *dgst, int dlen, unsigned char *sig, unsigned int *siglen, const BIGNUM *kinv, const BIGNUM *r, EC_KEY *eckey), int(*sign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp), ECDSA_SIG *(*sign_sig)(const unsigned char *dgst, int dgst_len, const BIGNUM *in_kinv, const BIGNUM *in_r, EC_KEY *eckey))
point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *)
size_t EC_GROUP_get_seed_len(const EC_GROUP *)
int EC_KEY_check_key(const EC_KEY *key)
EC_GROUP * EC_GROUP_new(const EC_METHOD *meth)
int ERR_load_EC_strings(void)
int(*)(EVP_MD_CTX *ctx) EVP_MD_meth_get_cleanup(const EVP_MD *md)
Definition evp.h:108
int(*)(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl) EVP_CIPHER_meth_get_do_cipher(const EVP_CIPHER *cipher)
Definition evp.h:214
int EVP_MD_meth_set_app_datasize(EVP_MD *md, int datasize)
#define EVP_get_cipherbynid(a)
Definition evp.h:436
#define EVP_PKEY_OP_DECRYPT
Definition evp.h:1262
EVP_MD * EVP_MD_meth_new(int md_type, int pkey_type)
#define EVP_PKEY_EC
Definition evp.h:52
#define EVP_PKEY_DSA
Definition evp.h:45
#define EVP_PKEY_OP_ENCRYPT
Definition evp.h:1261
int(*)(EVP_CIPHER_CTX *ctx, const unsigned char *key, const unsigned char *iv, int enc) EVP_CIPHER_meth_get_init(const EVP_CIPHER *cipher)
Definition evp.h:210
int EVP_MD_meth_get_app_datasize(const EVP_MD *md)
#define EVP_CTRL_AEAD_SET_IVLEN
Definition evp.h:296
#define EVP_CIPH_MODE
Definition evp.h:242
#define EVP_PKEY_OP_KEYGEN
Definition evp.h:1255
int EVP_MD_meth_set_flags(EVP_MD *md, unsigned long flags)
int(*)(EVP_MD_CTX *ctx, const void *data, size_t count) EVP_MD_CTX_update_fn(EVP_MD_CTX *ctx)
Definition evp.h:448
int EVP_MD_meth_set_cleanup(EVP_MD *md, int(*cleanup)(EVP_MD_CTX *ctx))
#define EVP_PKEY_DH
Definition evp.h:50
int EVP_MD_meth_set_ctrl(EVP_MD *md, int(*ctrl)(EVP_MD_CTX *ctx, int cmd, int p1, void *p2))
EVP_MD * EVP_MD_meth_dup(const EVP_MD *md)
int EVP_MD_meth_set_final(EVP_MD *md, int(*final)(EVP_MD_CTX *ctx, unsigned char *md))
int EVP_MD_meth_get_result_size(const EVP_MD *md)
int(*)(EVP_MD_CTX *ctx) EVP_MD_meth_get_init(const EVP_MD *md)
Definition evp.h:100
#define EVP_PKEY_SIPHASH
Definition evp.h:60
unsigned long EVP_MD_meth_get_flags(const EVP_MD *md)
#define EVP_MAX_IV_LENGTH
Definition evp.h:21
#define EVP_PKEY_RSA
Definition evp.h:42
int EVP_MD_meth_set_copy(EVP_MD *md, int(*copy)(EVP_MD_CTX *to, const EVP_MD_CTX *from))
int EVP_MD_meth_set_result_size(EVP_MD *md, int resultsize)
#define EVP_CIPHER_mode(e)
Definition evp.h:467
int(*)(EVP_MD_CTX *ctx, unsigned char *md) EVP_MD_meth_get_final(const EVP_MD *md)
Definition evp.h:104
int EVP_MD_meth_set_init(EVP_MD *md, int(*init)(EVP_MD_CTX *ctx))
#define EVP_PKEY_DHX
Definition evp.h:51
#define EVP_PKEY_OP_VERIFYCTX
Definition evp.h:1260
int EVP_MD_meth_set_update(EVP_MD *md, int(*update)(EVP_MD_CTX *ctx, const void *data, size_t count))
int(*)(EVP_MD_CTX *to, const EVP_MD_CTX *from) EVP_MD_meth_get_copy(const EVP_MD *md)
Definition evp.h:106
#define EVP_PKEY_OP_VERIFY
Definition evp.h:1257
int(*)(EVP_MD_CTX *ctx, const void *data, size_t count) EVP_MD_meth_get_update(const EVP_MD *md)
Definition evp.h:101
#define EVP_PKEY_CTRL_MD
Definition evp.h:1290
int EVP_MD_meth_get_input_blocksize(const EVP_MD *md)
#define EVP_PKEY_CTRL_SET_MAC_KEY
Definition evp.h:1298
#define EVP_PKEY_ALG_CTRL
Definition evp.h:1315
int(*)(EVP_MD_CTX *ctx, int cmd, int p1, void *p2) EVP_MD_meth_get_ctrl(const EVP_MD *md)
Definition evp.h:109
int EVP_MD_meth_set_input_blocksize(EVP_MD *md, int blocksize)
#define OPENSSL_add_all_algorithms_noconf()
Definition evp.h:943
#define EVP_CTRL_AEAD_GET_TAG
Definition evp.h:297
int(*)(EVP_CIPHER_CTX *, int type, int arg, void *ptr) EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher)
Definition evp.h:223
#define EVP_PKEY_OP_TYPE_CRYPT
Definition evp.h:1269
#define EVP_PKEY_OP_SIGN
Definition evp.h:1256
#define EVP_PKEY_OP_VERIFYRECOVER
Definition evp.h:1258
#define EVP_CTRL_AEAD_SET_TAG
Definition evp.h:298
int(*)(EVP_CIPHER_CTX *) EVP_CIPHER_meth_get_cleanup(const EVP_CIPHER *cipher)
Definition evp.h:218
#define EVP_PKEY_RSA_PSS
Definition evp.h:44
void EVP_MD_meth_free(EVP_MD *md)
#define EVP_MD_nid(e)
Definition evp.h:440
#define EVP_PKEY_CTRL_GET_MD
Definition evp.h:1311
#define EVP_PKEY_OP_TYPE_SIG
Definition evp.h:1265
#define EVP_PKEY_OP_DERIVE
Definition evp.h:1263
#define EVP_CTRL_AEAD_SET_IV_FIXED
Definition evp.h:299
#define EVP_get_digestbynid(a)
Definition evp.h:434
#define EVP_PKEY_POLY1305
Definition evp.h:59
#define EVP_PKEY_OP_SIGNCTX
Definition evp.h:1259
#define EVP_PKEY_OP_PARAMGEN
Definition evp.h:1254
int ERR_load_EVP_strings(void)
const void int const EVP_MD ENGINE * impl
Definition hmac.h:34
__owur int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx)
const void int const EVP_MD * md
Definition hmac.h:34
size_t HMAC_size(const HMAC_CTX *e)
void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags)
void HMAC_CTX_free(HMAC_CTX *ctx)
int HMAC_CTX_reset(HMAC_CTX *ctx)
const void * key
Definition hmac.h:33
unsigned char * HMAC(const EVP_MD *evp_md, const void *key, int key_len, const unsigned char *d, size_t n, unsigned char *md, unsigned int *md_len)
const EVP_MD * HMAC_CTX_get_md(const HMAC_CTX *ctx)
const void int len
Definition hmac.h:33
HMAC_CTX * HMAC_CTX_new(void)
int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len)
int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len)
void * OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data)
unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh)
unsigned long OPENSSL_LH_strhash(const char *c)
#define LHASH_OF(type)
Definition lhash.h:119
#define int_implement_lhash_doall(type, argtype, cbargtype)
Definition lhash.h:186
void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg)
void * OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data)
OPENSSL_LHASH * OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c)
void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp)
struct lhash_st OPENSSL_LHASH
Definition lhash.h:29
void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp)
void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load)
void * OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data)
#define DEFINE_LHASH_OF(type)
Definition lhash.h:121
void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func)
void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out)
unsigned long(* OPENSSL_LH_HASHFUNC)(const void *)
Definition lhash.h:26
void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out)
void(* OPENSSL_LH_DOALL_FUNCARG)(void *, void *)
Definition lhash.h:28
void(* OPENSSL_LH_DOALL_FUNC)(void *)
Definition lhash.h:27
int(* OPENSSL_LH_COMPFUNC)(const void *, const void *)
Definition lhash.h:25
struct lhash_node_st OPENSSL_LH_NODE
Definition lhash.h:24
void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out)
int OPENSSL_LH_error(OPENSSL_LHASH *lh)
void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp)
void OPENSSL_LH_free(OPENSSL_LHASH *lh)
unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh)
Definition IBaseApi.h:9
std::unique_ptr< IBaseApi > game_api
Definition IBaseApi.h:25
void Crypto_API uninitializeCrypto()
void Crypto_API initializeCrypto()
std::vector< SocketBuf > SocketBufVec
Definition SocketDefs.h:365
void NetSSL_API initializeSSL()
void Net_API uninitializeNetwork()
void Net_API initializeNetwork()
void NetSSL_API uninitializeSSL()
void swap(Timestamp &s1, Timestamp &s2)
Definition Timestamp.h:263
void swap(SharedPtr< C, RC, RP > &p1, SharedPtr< C, RC, RP > &p2)
Definition SharedPtr.h:467
void swap(DateTime &d1, DateTime &d2)
Definition DateTime.h:434
void swap(Timespan &s1, Timespan &s2)
Definition Timespan.h:289
SharedPtr< T, ReferenceCounter, ReleaseArrayPolicy< T > > makeSharedArray(std::size_t size)
Definition SharedPtr.h:481
MutexImpl FastMutexImpl
Definition Mutex_WIN32.h:44
void swap(AutoPtr< C > &p1, AutoPtr< C > &p2)
Definition AutoPtr.h:401
AutoPtr< T > makeAuto(Args &&... args)
Definition AutoPtr.h:408
SharedPtr< T > makeShared(Args &&... args)
Definition SharedPtr.h:474
BasicFIFOBuffer< char > FIFOBuffer
Definition FIFOBuffer.h:550
Null localtime_s(...)
Definition time.h:60
Null gmtime_r(...)
Definition time.h:61
Null localtime_r(...)
Definition time.h:59
Null gmtime_s(...)
Definition time.h:62
Definition format.h:408
void format_arg(BasicFormatter< char, ArgFormatter > &f, const char *&format_str, const std::tm &tm)
Definition time.h:24
Definition json.hpp:4518
#define NID_rsassaPss
Definition obj_mac.h:574
#define OBJ_id_tc26_sign_constants
Definition obj_mac.h:4291
#define OBJ_itu_t
Definition obj_mac.h:20
#define NID_pkcs7_signed
Definition obj_mac.h:670
#define OBJ_dstu4145le
Definition obj_mac.h:5143
#define OBJ_wap_wsg_idm_ecid
Definition obj_mac.h:442
#define OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik
Definition obj_mac.h:4243
#define OBJ_pkcs3
Definition obj_mac.h:609
#define OBJ_id_tc26_cipher
Definition obj_mac.h:4227
#define OBJ_sigAlgs
Definition obj_mac.h:2984
#define OBJ_id_smime_spq
Definition obj_mac.h:766
#define NID_pkcs7_data
Definition obj_mac.h:666
#define OBJ_iso
Definition obj_mac.h:28
#define OBJ_id_on
Definition obj_mac.h:1374
#define OBJ_set_policy
Definition obj_mac.h:3392
#define OBJ_setAttr_IssCap_Sig
Definition obj_mac.h:3854
#define OBJ_id_pkix_mod
Definition obj_mac.h:1342
#define OBJ_ieee_siswg
Definition obj_mac.h:73
#define OBJ_ecdsa_with_Specified
Definition obj_mac.h:298
#define OBJ_id_tc26_constants
Definition obj_mac.h:4287
#define OBJ_id_tc26_digest
Definition obj_mac.h:4185
#define OBJ_id_pkinit
Definition obj_mac.h:4975
#define OBJ_id_qt
Definition obj_mac.h:1350
#define NID_tls1_prf
Definition obj_mac.h:4967
#define OBJ_id_smime_mod
Definition obj_mac.h:746
#define OBJ_SMIME
Definition obj_mac.h:742
#define OBJ_set_ctype
Definition obj_mac.h:3379
#define OBJ_X9_62_id_fieldType
Definition obj_mac.h:140
#define OBJ_wap
Definition obj_mac.h:82
#define NID_pkcs7_encrypted
Definition obj_mac.h:686
#define NID_pkcs7_signedAndEnveloped
Definition obj_mac.h:678
#define OBJ_X500
Definition obj_mac.h:2134
#define NID_ED448
Definition obj_mac.h:5000
#define OBJ_id_ppl
Definition obj_mac.h:1394
#define OBJ_dsa_with_sha2
Definition obj_mac.h:2974
#define OBJ_holdInstruction
Definition obj_mac.h:3061
#define NID_cmac
Definition obj_mac.h:4776
#define OBJ_X9_62_primeCurve
Definition obj_mac.h:256
#define OBJ_pkcs1
Definition obj_mac.h:531
#define NID_X9_62_id_ecPublicKey
Definition obj_mac.h:169
#define OBJ_pilotObjectClass
Definition obj_mac.h:3104
#define OBJ_id_tc26_mac
Definition obj_mac.h:4213
#define OBJ_wap_wsg
Definition obj_mac.h:86
#define OBJ_ext_key_usage
Definition obj_mac.h:2515
#define OBJ_id_ad
Definition obj_mac.h:1398
#define OBJ_id_pe
Definition obj_mac.h:1346
#define OBJ_id_tc26_agreement
Definition obj_mac.h:4255
#define OBJ_netscape
Definition obj_mac.h:2545
#define NID_siphash
Definition obj_mac.h:5085
#define OBJ_X9cm
Definition obj_mac.h:110
#define OBJ_pkcs7
Definition obj_mac.h:663
#define NID_pkcs7_enveloped
Definition obj_mac.h:674
#define OBJ_id_smime_alg
Definition obj_mac.h:758
#define OBJ_id_regCtrl
Definition obj_mac.h:1706
#define OBJ_Mail
Definition obj_mac.h:2656
#define OBJ_csor
Definition obj_mac.h:2698
#define OBJ_member_body
Definition obj_mac.h:41
#define OBJ_nistAlgorithms
Definition obj_mac.h:2700
#define NID_ED25519
Definition obj_mac.h:4996
#define OBJ_id_regInfo
Definition obj_mac.h:1710
#define OBJ_ISO_UA
Definition obj_mac.h:5104
#define OBJ_netscape_data_type
Definition obj_mac.h:2555
#define NID_dsa
Definition obj_mac.h:127
#define OBJ_set_attr
Definition obj_mac.h:3388
#define NID_dhKeyAgreement
Definition obj_mac.h:612
#define NID_pkcs7_digest
Definition obj_mac.h:682
#define OBJ_id_smime_cti
Definition obj_mac.h:770
#define NID_hkdf
Definition obj_mac.h:4971
#define OBJ_identified_organization
Definition obj_mac.h:45
#define OBJ_id_qcs
Definition obj_mac.h:1386
#define OBJ_X9_62_id_characteristic_two_basis
Definition obj_mac.h:152
#define OBJ_pkcs12_Version1
Definition obj_mac.h:1112
#define OBJ_aes
Definition obj_mac.h:2702
#define OBJ_id_smime_cd
Definition obj_mac.h:762
#define OBJ_X9_62_id_ecSigType
Definition obj_mac.h:286
#define NID_id_scrypt
Definition obj_mac.h:4962
#define OBJ_ua_pki
Definition obj_mac.h:5108
#define OBJ_id_alg
Definition obj_mac.h:1366
#define OBJ_ansi_X9_62
Definition obj_mac.h:138
#define OBJ_id_aca
Definition obj_mac.h:1382
#define OBJ_cryptopro
Definition obj_mac.h:3932
#define OBJ_international_organizations
Definition obj_mac.h:78
#define NID_dsaWithSHA
Definition obj_mac.h:2045
#define NID_dhpublicnumber
Definition obj_mac.h:4816
#define OBJ_ISO_US
Definition obj_mac.h:100
#define OBJ_pkcs5
Definition obj_mac.h:617
#define OBJ_X9_62_id_publicKeyType
Definition obj_mac.h:166
#define OBJ_setAttr_IssCap_T2
Definition obj_mac.h:3850
#define OBJ_org
Definition obj_mac.h:2610
#define OBJ_id_tc26_wrap_gostr3412_2015_magma
Definition obj_mac.h:4271
#define OBJ_setAttr_TokenType
Definition obj_mac.h:3821
#define OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik
Definition obj_mac.h:4279
#define OBJ_pilot
Definition obj_mac.h:3092
#define OBJ_id_tc26_gost_28147_constants
Definition obj_mac.h:4351
#define OBJ_id_tc26_cipher_gostr3412_2015_magma
Definition obj_mac.h:4231
#define OBJ_certicom_arc
Definition obj_mac.h:64
#define OBJ_id_tc26_signwithdigest
Definition obj_mac.h:4199
#define OBJ_ucl
Definition obj_mac.h:3088
#define OBJ_id_it
Definition obj_mac.h:1358
#define OBJ_X9_62_ellipticCurve
Definition obj_mac.h:172
#define OBJ_id_tc26
Definition obj_mac.h:3940
#define OBJ_secg_ellipticCurve
Definition obj_mac.h:316
#define OBJ_camellia
Definition obj_mac.h:4448
#define NID_sm2
Definition obj_mac.h:1169
#define NID_poly1305
Definition obj_mac.h:5081
#define OBJ_certTypes
Definition obj_mac.h:1062
#define OBJ_id_tc26_wrap
Definition obj_mac.h:4267
#define OBJ_ad_OCSP
Definition obj_mac.h:1927
#define OBJ_id_pkip
Definition obj_mac.h:1362
#define OBJ_data
Definition obj_mac.h:3080
#define OBJ_x9_63_scheme
Definition obj_mac.h:4875
#define OBJ_cryptocom
Definition obj_mac.h:3936
#define OBJ_set_brand
Definition obj_mac.h:3401
#define NID_dsaWithSHA1_2
Definition obj_mac.h:2098
#define OBJ_setAttr_IssCap_CVM
Definition obj_mac.h:3846
#define OBJ_pkcs12_BagIds
Definition obj_mac.h:1114
#define OBJ_pilotAttributeType
Definition obj_mac.h:3096
#define OBJ_Private
Definition obj_mac.h:2642
#define OBJ_secg_scheme
Definition obj_mac.h:4877
#define OBJ_id_kp
Definition obj_mac.h:1354
#define OBJ_X9_57
Definition obj_mac.h:105
#define NID_dsaWithSHA1
Definition obj_mac.h:132
#define OBJ_pkcs12
Definition obj_mac.h:1078
#define OBJ_id_cmc
Definition obj_mac.h:1370
#define NID_rsaEncryption
Definition obj_mac.h:534
#define OBJ_id_GostR3410_94
Definition obj_mac.h:3970
#define OBJ_id_tc26_gost_3410_2012_256_constants
Definition obj_mac.h:4295
#define OBJ_certificate_policies
Definition obj_mac.h:2490
#define OBJ_pkcs12_pbeids
Definition obj_mac.h:1080
#define OBJ_dod
Definition obj_mac.h:2615
#define OBJ_Enterprises
Definition obj_mac.h:2661
#define OBJ_set_certExt
Definition obj_mac.h:3397
#define NID_X448
Definition obj_mac.h:4992
#define OBJ_setAttr_Cert
Definition obj_mac.h:3812
#define OBJ_X500algorithms
Definition obj_mac.h:2391
#define OBJ_ntt_ds
Definition obj_mac.h:4446
#define OBJ_X509
Definition obj_mac.h:2138
#define NID_dsa_2
Definition obj_mac.h:2040
#define OBJ_crlTypes
Definition obj_mac.h:1072
#define OBJ_X9_62_characteristic_two_field
Definition obj_mac.h:148
#define OBJ_algorithm
Definition obj_mac.h:2007
#define OBJ_mime_mhs
Definition obj_mac.h:2671
#define NID_undef
Definition obj_mac.h:14
#define OBJ_internet
Definition obj_mac.h:2622
#define OBJ_sm_scheme
Definition obj_mac.h:123
#define OBJ_id_set
Definition obj_mac.h:3374
#define OBJ_id_smime_aa
Definition obj_mac.h:754
#define OBJ_ISO_CN
Definition obj_mac.h:115
#define OBJ_netscape_cert_extension
Definition obj_mac.h:2550
#define NID_rsa
Definition obj_mac.h:2395
#define OBJ_id_smime_ct
Definition obj_mac.h:750
#define OBJ_ieee
Definition obj_mac.h:68
#define OBJ_pss
Definition obj_mac.h:3084
#define OBJ_iana
Definition obj_mac.h:2620
#define OBJ_id_tc26_gost_3410_2012_512_constants
Definition obj_mac.h:4319
#define OBJ_id_tc26_sign
Definition obj_mac.h:4171
#define OBJ_id_tc26_cipher_constants
Definition obj_mac.h:4347
#define NID_X25519
Definition obj_mac.h:4988
#define OBJ_pilotAttributeSyntax
Definition obj_mac.h:3100
#define OBJ_id_tc26_algorithms
Definition obj_mac.h:4167
#define OBJ_X9_62_c_TwoCurve
Definition obj_mac.h:174
#define OBJ_pkcs9
Definition obj_mac.h:691
#define OBJ_id_pkix
Definition obj_mac.h:1338
#define OBJ_aria
Definition obj_mac.h:4579
#define OBJ_nist_hashalgs
Definition obj_mac.h:2892
#define OBJ_set_msgExt
Definition obj_mac.h:3384
#define OBJ_joint_iso_itu_t
Definition obj_mac.h:33
#define OBJ_id_pkix_OCSP
Definition obj_mac.h:1949
#define OBJ_rsadsi
Definition obj_mac.h:522
#define OBJ_setAttr_IssCap
Definition obj_mac.h:3826
#define OBJ_oscca
Definition obj_mac.h:119
#define OBJ_dstu28147
Definition obj_mac.h:5113
#define OBJ_pkcs
Definition obj_mac.h:527
#define OBJ_mime_mhs_headings
Definition obj_mac.h:2676
#define OBJ_id_cct
Definition obj_mac.h:1390
#define NID_hmac
Definition obj_mac.h:4772
#define OBJ_selected_attribute_types
Definition obj_mac.h:91
#define OBJ_id_ce
Definition obj_mac.h:2410
#define OBJ_id_pda
Definition obj_mac.h:1378
#define OBJ_kisa
Definition obj_mac.h:4713
#define OBJ_NAME_TYPE_CIPHER_METH
Definition objects.h:20
int OBJ_new_nid(int num)
int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid)
int OBJ_NAME_new_index(unsigned long(*hash_func)(const char *), int(*cmp_func)(const char *, const char *), void(*free_func)(const char *, int, const char *))
int OBJ_NAME_init(void)
int OBJ_create_objects(BIO *in)
int OBJ_create(const char *oid, const char *sn, const char *ln)
#define _DECLARE_OBJ_BSEARCH_CMP_FN(scope, type1, type2, nm)
Definition objects.h:76
const char * OBJ_NAME_get(const char *name, int type)
const char * OBJ_nid2ln(int n)
void OBJ_sigid_free(void)
int OBJ_obj2nid(const ASN1_OBJECT *o)
int OBJ_add_object(const ASN1_OBJECT *obj)
size_t OBJ_length(const ASN1_OBJECT *obj)
const void * OBJ_bsearch_ex_(const void *key, const void *base, int num, int size, int(*cmp)(const void *, const void *), int flags)
void OBJ_NAME_do_all_sorted(int type, void(*fn)(const OBJ_NAME *, void *arg), void *arg)
const unsigned char * OBJ_get0_data(const ASN1_OBJECT *obj)
int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b)
ASN1_OBJECT * OBJ_txt2obj(const char *s, int no_name)
void OBJ_NAME_cleanup(int type)
int OBJ_txt2nid(const char *s)
int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid)
const void * OBJ_bsearch_(const void *key, const void *base, int num, int size, int(*cmp)(const void *, const void *))
void OBJ_NAME_do_all(int type, void(*fn)(const OBJ_NAME *, void *arg), void *arg)
ASN1_OBJECT * OBJ_nid2obj(int n)
int OBJ_add_sigid(int signid, int dig_id, int pkey_id)
#define OBJ_NAME_TYPE_MD_METH
Definition objects.h:19
int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name)
int OBJ_NAME_remove(const char *name, int type)
int OBJ_NAME_add(const char *name, int type, const char *data)
#define OBJ_NAME_ALIAS
Definition objects.h:25
int OBJ_sn2nid(const char *s)
ASN1_OBJECT * OBJ_dup(const ASN1_OBJECT *o)
const char * OBJ_nid2sn(int n)
int OBJ_ln2nid(const char *s)
int ERR_load_OBJ_strings(void)
BUF_MEM * BUF_MEM_new_ex(unsigned long flags)
void BUF_MEM_free(BUF_MEM *a)
BUF_MEM * BUF_MEM_new(void)
size_t BUF_MEM_grow(BUF_MEM *str, size_t len)
size_t BUF_MEM_grow_clean(BUF_MEM *str, size_t len)
void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz)
int CRYPTO_secure_malloc_done(void)
int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b)
void OPENSSL_thread_stop(void)
void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad)
int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock)
void CRYPTO_EX_new(void *parent, void *ptr, CRYPTO_EX_DATA *ad, int idx, long argl, void *argp)
Definition crypto.h:166
size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz)
int CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock)
void * CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx)
int CRYPTO_mem_ctrl(int mode)
void * CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, const char *file, int line)
void OPENSSL_INIT_set_config_file_flags(OPENSSL_INIT_SETTINGS *settings, unsigned long flags)
int CRYPTO_set_mem_functions(void *(*m)(size_t, const char *, int), void *(*r)(void *, size_t, const char *, int), void(*f)(void *, const char *, int))
#define OPENSSL_INIT_ENGINE_PADLOCK
Definition crypto.h:370
int OPENSSL_gmtime_adj(struct tm *tm, int offset_day, long offset_sec)
#define OPENSSL_INIT_ENGINE_RDRAND
Definition crypto.h:365
#define CRYPTO_EX_INDEX_DH
Definition crypto.h:100
void OPENSSL_cleanse(void *ptr, size_t len)
int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad)
unsigned long OpenSSL_version_num(void)
int OPENSSL_isservice(void)
#define CRYPTO_EX_INDEX_X509_STORE_CTX
Definition crypto.h:99
#define OPENSSL_DIR
Definition crypto.h:161
int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void(*cleanup)(void *))
void CRYPTO_free(void *ptr, const char *file, int line)
int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings, const char *config_filename)
size_t OPENSSL_strnlen(const char *str, size_t maxlen)
int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock)
unsigned char * OPENSSL_hexstr2buf(const char *str, long *len)
int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings)
#define CRYPTO_EX_INDEX_SSL_CTX
Definition crypto.h:95
#define OPENSSL_INIT_LOAD_CRYPTO_STRINGS
Definition crypto.h:357
int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val)
void CRYPTO_get_mem_functions(void *(**m)(size_t, const char *, int), void *(**r)(void *, size_t, const char *, int), void(**f)(void *, const char *, int))
#define OPENSSL_BUILT_ON
Definition crypto.h:159
int OPENSSL_atexit(void(*handler)(void))
#define OPENSSL_CFLAGS
Definition crypto.h:158
void * CRYPTO_malloc(size_t num, const char *file, int line)
int CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key)
int CRYPTO_secure_allocated(const void *ptr)
#define OPENSSL_VERSION
Definition crypto.h:157
#define OPENSSL_strndup(str, n)
Definition crypto.h:133
int CRYPTO_secure_malloc_init(size_t sz, int minsize)
int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void(*init)(void))
char * CRYPTO_strdup(const char *str, const char *file, int line)
char * CRYPTO_strndup(const char *str, size_t s, const char *file, int line)
size_t CRYPTO_secure_actual_size(void *ptr)
void * CRYPTO_secure_malloc(size_t num, const char *file, int line)
#define CRYPTO_ONCE_STATIC_INIT
Definition crypto.h:428
int CRYPTO_free_ex_index(int class_index, int idx)
#define CRYPTO_EX_INDEX_SSL_SESSION
Definition crypto.h:96
#define OPENSSL_INIT_LOAD_CONFIG
Definition crypto.h:362
void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line)
void * CRYPTO_memdup(const void *str, size_t siz, const char *file, int line)
void CRYPTO_EX_free(void *parent, void *ptr, CRYPTO_EX_DATA *ad, int idx, long argl, void *argp)
Definition crypto.h:168
size_t CRYPTO_secure_used(void)
int CRYPTO_EX_dup(CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from, void *from_d, int idx, long argl, void *argp)
Definition crypto.h:170
void CRYPTO_RWLOCK
Definition crypto.h:67
int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock)
#define OPENSSL_INIT_ADD_ALL_DIGESTS
Definition crypto.h:359
void * CRYPTO_secure_zalloc(size_t num, const char *file, int line)
int CRYPTO_memcmp(const void *in_a, const void *in_b, size_t len)
int FIPS_mode(void)
void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings)
CRYPTO_THREAD_ID CRYPTO_THREAD_get_current_id(void)
char * OPENSSL_buf2hexstr(const unsigned char *buffer, long len)
size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz)
#define CRYPTO_EX_INDEX_X509_STORE
Definition crypto.h:98
#define OPENSSL_INIT_ENGINE_CAPI
Definition crypto.h:369
#define CRYPTO_EX_INDEX_X509
Definition crypto.h:97
int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from)
__owur int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func)
#define OPENSSL_strdup(str)
Definition crypto.h:131
void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock)
void OPENSSL_cleanup(void)
#define CRYPTO_EX_INDEX_SSL
Definition crypto.h:94
void * CRYPTO_realloc(void *addr, size_t num, const char *file, int line)
OPENSSL_INIT_SETTINGS * OPENSSL_INIT_new(void)
void OPENSSL_init(void)
void * CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key)
int CRYPTO_set_mem_debug(int flag)
int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *settings, const char *config_appname)
#define OPENSSL_PLATFORM
Definition crypto.h:160
int OPENSSL_hexchar2int(unsigned char c)
#define OPENSSL_memdup(str, s)
Definition crypto.h:129
#define OPENSSL_INIT_ADD_ALL_CIPHERS
Definition crypto.h:358
int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val)
CRYPTO_RWLOCK * CRYPTO_THREAD_lock_new(void)
int OPENSSL_issetugid(void)
#define OPENSSL_INIT_ENGINE_DYNAMIC
Definition crypto.h:366
void CRYPTO_secure_free(void *ptr, const char *file, int line)
void * CRYPTO_zalloc(size_t num, const char *file, int line)
#define CRYPTO_EX_INDEX_BIO
Definition crypto.h:106
int CRYPTO_secure_malloc_initialized(void)
ossl_noreturn void OPENSSL_die(const char *assertion, const char *file, int line)
#define CRYPTO_EX_INDEX_EC_KEY
Definition crypto.h:102
#define CRYPTO_EX_INDEX_DSA
Definition crypto.h:101
int OPENSSL_gmtime_diff(int *pday, int *psec, const struct tm *from, const struct tm *to)
const char * OpenSSL_version(int type)
#define OPENSSL_INIT_ENGINE_CRYPTODEV
Definition crypto.h:368
struct tm * OPENSSL_gmtime(const time_t *timer, struct tm *result)
void CRYPTO_secure_clear_free(void *ptr, size_t num, const char *file, int line)
#define CRYPTO_EX_INDEX_RSA
Definition crypto.h:103
int FIPS_mode_set(int r)
#define OPENSSL_EXPORT_VAR_AS_FUNCTION
#define OPENSSL_API_COMPAT
#define DEPRECATEDIN_1_1_0(f)
#define OPENSSL_MIN_API
#define OPENSSL_NO_RC5
Definition opensslconf.h:34
#define OPENSSL_THREADS
Definition opensslconf.h:37
#define DECLARE_DEPRECATED(f)
#define OPENSSL_FILE
#define DEPRECATEDIN_0_9_8(f)
#define OPENSSL_NO_HEARTBEATS
Definition opensslconf.h:73
#define OPENSSL_NO_EC_NISTP_64_GCC_128
Definition opensslconf.h:58
#define OPENSSL_NO_SCTP
Definition opensslconf.h:79
#define OPENSSL_NO_UNIT_TEST
Definition opensslconf.h:97
#define OPENSSL_NO_CRYPTO_MDEBUG
Definition opensslconf.h:49
#define OPENSSL_NO_MD2
Definition opensslconf.h:31
#define OPENSSL_NO_SSL3_METHOD
Definition opensslconf.h:88
#define OPENSSL_LINE
#define OPENSSL_NO_SSL_TRACE
Definition opensslconf.h:82
#define DEPRECATEDIN_1_2_0(f)
#define SIXTY_FOUR_BIT
#define OPENSSL_VERSION_NUMBER
Definition opensslv.h:42
struct bignum_ctx BN_CTX
Definition ossl_typ.h:81
struct x509_lookup_method_st X509_LOOKUP_METHOD
Definition ossl_typ.h:133
struct asn1_string_st ASN1_PRINTABLESTRING
Definition ossl_typ.h:44
struct asn1_string_st ASN1_IA5STRING
Definition ossl_typ.h:46
long ossl_intmax_t
Definition ossl_typ.h:190
struct evp_md_ctx_st EVP_MD_CTX
Definition ossl_typ.h:92
struct ocsp_response_st OCSP_RESPONSE
Definition ossl_typ.h:167
struct asn1_string_st ASN1_UNIVERSALSTRING
Definition ossl_typ.h:48
struct ssl_ctx_st SSL_CTX
Definition ossl_typ.h:149
struct asn1_string_st ASN1_T61STRING
Definition ossl_typ.h:45
struct conf_st CONF
Definition ossl_typ.h:141
struct sct_st SCT
Definition ossl_typ.h:170
struct AUTHORITY_KEYID_st AUTHORITY_KEYID
Definition ossl_typ.h:159
struct ctlog_store_st CTLOG_STORE
Definition ossl_typ.h:173
struct evp_pkey_st EVP_PKEY
Definition ossl_typ.h:93
struct bn_blinding_st BN_BLINDING
Definition ossl_typ.h:82
struct v3_ext_ctx X509V3_CTX
Definition ossl_typ.h:140
struct x509_store_st X509_STORE
Definition ossl_typ.h:128
struct X509_POLICY_TREE_st X509_POLICY_TREE
Definition ossl_typ.h:156
struct DIST_POINT_st DIST_POINT
Definition ossl_typ.h:160
struct asn1_string_st ASN1_ENUMERATED
Definition ossl_typ.h:41
struct x509_st X509
Definition ossl_typ.h:121
struct X509_POLICY_NODE_st X509_POLICY_NODE
Definition ossl_typ.h:154
struct evp_cipher_st EVP_CIPHER
Definition ossl_typ.h:89
struct rsa_meth_st RSA_METHOD
Definition ossl_typ.h:111
struct dh_st DH
Definition ossl_typ.h:104
struct X509_name_st X509_NAME
Definition ossl_typ.h:126
struct dh_method DH_METHOD
Definition ossl_typ.h:105
struct sct_ctx_st SCT_CTX
Definition ossl_typ.h:171
struct bn_recp_ctx_st BN_RECP_CTX
Definition ossl_typ.h:84
struct dsa_method DSA_METHOD
Definition ossl_typ.h:108
struct asn1_sctx_st ASN1_SCTX
Definition ossl_typ.h:64
struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS
Definition ossl_typ.h:162
struct ui_st UI
Definition ossl_typ.h:144
struct bignum_st BIGNUM
Definition ossl_typ.h:80
struct ssl_st SSL
Definition ossl_typ.h:148
struct evp_Encode_Ctx_st EVP_ENCODE_CTX
Definition ossl_typ.h:100
struct asn1_string_st ASN1_GENERALSTRING
Definition ossl_typ.h:47
struct ec_key_st EC_KEY
Definition ossl_typ.h:114
struct ossl_store_info_st OSSL_STORE_INFO
Definition ossl_typ.h:176
struct rsa_pss_params_st RSA_PSS_PARAMS
Definition ossl_typ.h:112
struct evp_pkey_method_st EVP_PKEY_METHOD
Definition ossl_typ.h:97
struct x509_revoked_st X509_REVOKED
Definition ossl_typ.h:125
struct crypto_ex_data_st CRYPTO_EX_DATA
Definition ossl_typ.h:164
struct asn1_pctx_st ASN1_PCTX
Definition ossl_typ.h:63
struct ocsp_responder_id_st OCSP_RESPID
Definition ossl_typ.h:168
struct ct_policy_eval_ctx_st CT_POLICY_EVAL_CTX
Definition ossl_typ.h:174
struct ctlog_st CTLOG
Definition ossl_typ.h:172
struct X509_pubkey_st X509_PUBKEY
Definition ossl_typ.h:127
struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL
Definition ossl_typ.h:155
struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT
Definition ossl_typ.h:161
struct comp_ctx_st COMP_CTX
Definition ossl_typ.h:151
struct rsa_st RSA
Definition ossl_typ.h:110
struct ossl_init_settings_st OPENSSL_INIT_SETTINGS
Definition ossl_typ.h:142
struct comp_method_st COMP_METHOD
Definition ossl_typ.h:152
struct hmac_ctx_st HMAC_CTX
Definition ossl_typ.h:102
struct dsa_st DSA
Definition ossl_typ.h:107
struct X509_algor_st X509_ALGOR
Definition ossl_typ.h:122
struct evp_pkey_ctx_st EVP_PKEY_CTX
Definition ossl_typ.h:98
struct evp_cipher_ctx_st EVP_CIPHER_CTX
Definition ossl_typ.h:90
struct buf_mem_st BUF_MEM
Definition ossl_typ.h:87
struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO
Definition ossl_typ.h:138
int ASN1_BOOLEAN
Definition ossl_typ.h:56
struct engine_st ENGINE
Definition ossl_typ.h:147
struct x509_crl_method_st X509_CRL_METHOD
Definition ossl_typ.h:124
struct asn1_string_st ASN1_BMPSTRING
Definition ossl_typ.h:49
struct asn1_string_st ASN1_GENERALIZEDTIME
Definition ossl_typ.h:52
struct ossl_store_search_st OSSL_STORE_SEARCH
Definition ossl_typ.h:177
struct X509_crl_st X509_CRL
Definition ossl_typ.h:123
struct X509_POLICY_CACHE_st X509_POLICY_CACHE
Definition ossl_typ.h:157
struct ssl_dane_st SSL_DANE
Definition ossl_typ.h:120
struct asn1_string_st ASN1_STRING
Definition ossl_typ.h:55
struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD
Definition ossl_typ.h:95
struct asn1_string_st ASN1_UTF8STRING
Definition ossl_typ.h:54
struct X509_VERIFY_PARAM_st X509_VERIFY_PARAM
Definition ossl_typ.h:134
struct x509_object_st X509_OBJECT
Definition ossl_typ.h:131
struct asn1_string_st ASN1_TIME
Definition ossl_typ.h:51
struct rand_drbg_st RAND_DRBG
Definition ossl_typ.h:118
struct evp_md_st EVP_MD
Definition ossl_typ.h:91
struct bn_gencb_st BN_GENCB
Definition ossl_typ.h:85
struct ui_method_st UI_METHOD
Definition ossl_typ.h:145
struct asn1_object_st ASN1_OBJECT
Definition ossl_typ.h:60
struct x509_store_ctx_st X509_STORE_CTX
Definition ossl_typ.h:129
unsigned long ossl_uintmax_t
Definition ossl_typ.h:191
struct ASN1_ITEM_st ASN1_ITEM
Definition ossl_typ.h:62
struct rand_meth_st RAND_METHOD
Definition ossl_typ.h:117
struct bn_mont_ctx_st BN_MONT_CTX
Definition ossl_typ.h:83
struct x509_sig_info_st X509_SIG_INFO
Definition ossl_typ.h:136
int ASN1_NULL
Definition ossl_typ.h:57
struct bio_st BIO
Definition ossl_typ.h:79
struct asn1_string_st ASN1_INTEGER
Definition ossl_typ.h:40
struct asn1_string_st ASN1_BIT_STRING
Definition ossl_typ.h:42
struct ocsp_req_ctx_st OCSP_REQ_CTX
Definition ossl_typ.h:166
struct asn1_string_st ASN1_UTCTIME
Definition ossl_typ.h:50
struct asn1_string_st ASN1_OCTET_STRING
Definition ossl_typ.h:43
struct ec_key_method_st EC_KEY_METHOD
Definition ossl_typ.h:115
struct asn1_string_st ASN1_VISIBLESTRING
Definition ossl_typ.h:53
struct x509_lookup_st X509_LOOKUP
Definition ossl_typ.h:132
EVP_PKEY * d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u)
EVP_PKEY * b2i_PrivateKey(const unsigned char **in, long length)
int PEM_write_PKCS8PrivateKey_nid(FILE *fp, EVP_PKEY *x, int nid, char *kstr, int klen, pem_password_cb *cb, void *u)
int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, EVP_PKEY *x, int nid, char *kstr, int klen, pem_password_cb *cb, void *u)
#define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1)
Definition pem.h:98
EVP_PKEY * b2i_PublicKey_bio(BIO *in)
int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher)
int PEM_write_bio_Parameters(BIO *bp, EVP_PKEY *x)
#define DECLARE_PEM_read(name, type)
Definition pem.h:219
void PEM_proc_type(char *buf, int type)
#define IMPLEMENT_PEM_read(name, type, str, asn1)
Definition pem.h:156
int PEM_read_bio_ex(BIO *bp, char **name, char **header, unsigned char **data, long *len, unsigned int flags)
int PEM_def_callback(char *buf, int num, int rwflag, void *userdata)
#define IMPLEMENT_PEM_write_const(name, type, str, asn1)
Definition pem.h:144
int pem_password_cb(char *buf, int size, int rwflag, void *userdata)
Definition pem.h:231
int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, EVP_PKEY *x, int nid, char *kstr, int klen, pem_password_cb *cb, void *u)
#define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1)
Definition pem.h:90
int PEM_read(FILE *fp, char **name, char **header, unsigned char **data, long *len)
#define DECLARE_PEM_write_cb_fp(name, type)
Definition pem.h:191
EVP_PKEY * b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u)
int PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cd, void *u)
#define DECLARE_PEM_write_const(name, type)
Definition pem.h:213
EVP_PKEY * PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x)
int PEM_write_bio(BIO *bp, const char *name, const char *hdr, const unsigned char *data, long len)
#define IMPLEMENT_PEM_write_cb(name, type, str, asn1)
Definition pem.h:148
void * PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, pem_password_cb *cb, void *u)
int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, void *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u)
#define IMPLEMENT_PEM_write_bio(name, type, str, asn1)
Definition pem.h:114
int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp, void *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *callback, void *u)
int PEM_write(FILE *fp, const char *name, const char *hdr, const unsigned char *data, long len)
int PEM_write_bio_PKCS8PrivateKey(BIO *, EVP_PKEY *, const EVP_CIPHER *, char *, int, pem_password_cb *, void *)
int PEM_write_PKCS8PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, char *kstr, int klen, pem_password_cb *cd, void *u)
pem_password_cb * cb
Definition pem.h:259
#define DECLARE_PEM_write_bio(name, type)
Definition pem.h:200
int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, EVP_PKEY *x, int nid, char *kstr, int klen, pem_password_cb *cb, void *u)
#define DECLARE_PEM_rw(name, type)
Definition pem.h:222
#define IMPLEMENT_PEM_write_bio_const(name, type, str, asn1)
Definition pem.h:120
#define IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1)
Definition pem.h:126
#define DECLARE_PEM_write_fp_const(name, type)
Definition pem.h:188
#define DECLARE_PEM_write_cb(name, type)
Definition pem.h:216
void PEM_dek_info(char *buf, const char *type, int len, char *str)
#define IMPLEMENT_PEM_read_fp(name, type, str, asn1)
Definition pem.h:72
int i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel, pem_password_cb *cb, void *u)
int PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm, const char *name, BIO *bp, pem_password_cb *cb, void *u)
int i2b_PublicKey_bio(BIO *out, EVP_PKEY *pk)
EVP_PKEY * b2i_PublicKey(const unsigned char **in, long length)
int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *len, pem_password_cb *callback, void *u)
#define DECLARE_PEM_rw_cb(name, type)
Definition pem.h:228
int PEM_bytes_read_bio_secmem(unsigned char **pdata, long *plen, char **pnm, const char *name, BIO *bp, pem_password_cb *cb, void *u)
#define IMPLEMENT_PEM_read_bio(name, type, str, asn1)
Definition pem.h:108
#define DECLARE_PEM_write(name, type)
Definition pem.h:210
#define DECLARE_PEM_read_bio(name, type)
Definition pem.h:197
int PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type)
#define DECLARE_PEM_read_fp(name, type)
Definition pem.h:182
#define IMPLEMENT_PEM_write(name, type, str, asn1)
Definition pem.h:140
int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, unsigned int *siglen, EVP_PKEY *pkey)
#define DECLARE_PEM_write_fp(name, type)
Definition pem.h:185
pem_password_cb void * u
Definition pem.h:259
#define IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1)
Definition pem.h:133
int PEM_read_bio(BIO *bp, char **name, char **header, unsigned char **data, long *len)
#define DECLARE_PEM_rw_const(name, type)
Definition pem.h:225
int i2b_PrivateKey_bio(BIO *out, EVP_PKEY *pk)
EVP_PKEY * d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, void *u)
int PEM_SignUpdate(EVP_MD_CTX *ctx, unsigned char *d, unsigned int cnt)
X509 X509_REQ PKCS7 X509_SIG RSA RSA DSA EC_GROUP EC_KEY DH EVP_PKEY int PEM_write_bio_PrivateKey_traditional(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u)
EVP_PKEY * b2i_PrivateKey_bio(BIO *in)
void * PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, void **x, pem_password_cb *cb, void *u)
int i2d_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, char *kstr, int klen, pem_password_cb *cb, void *u)
int i2d_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, char *kstr, int klen, pem_password_cb *cb, void *u)
#define IMPLEMENT_PEM_write_fp(name, type, str, asn1)
Definition pem.h:78
#define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1)
Definition pem.h:84
#define DECLARE_PEM_write_bio_const(name, type)
Definition pem.h:203
#define DECLARE_PEM_write_cb_bio(name, type)
Definition pem.h:206
int ERR_load_PEM_strings(void)
int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t)
int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags)
int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg)
int PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, void *value)
#define PKCS7_type_is_signed(a)
Definition pkcs7.h:154
int PKCS7_final(PKCS7 *p7, BIO *data, int flags)
#define PKCS7_OP_GET_DETACHED_SIGNATURE
Definition pkcs7.h:149
ASN1_TYPE * PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid)
#define PKCS7_NOATTR
Definition pkcs7.h:179
BIO * PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert)
int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, STACK_OF(X509_ALGOR) *cap)
int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, int flags)
int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri)
#define PKCS7_NOCERTS
Definition pkcs7.h:172
int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7)
int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, STACK_OF(X509_ATTRIBUTE) *sk)
PKCS7_SIGNER_INFO * PKCS7_add_signature(PKCS7 *p7, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst)
int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags)
#define PKCS7_NOINTERN
Definition pkcs7.h:175
int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md)
BIO * PKCS7_dataInit(PKCS7 *p7, BIO *bio)
#define PKCS7_get_detached(p)
Definition pkcs7.h:164
int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags)
int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, X509 *x509)
#define PKCS7_BINARY
Definition pkcs7.h:178
int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, const EVP_MD *type, unsigned char *md, unsigned int *len)
PKCS7 * PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, int flags)
int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid)
int i2d_PKCS7_bio(BIO *bp, PKCS7 *p7)
int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si, STACK_OF(X509_ATTRIBUTE) *sk)
#define PKCS7_NOCHAIN
Definition pkcs7.h:174
#define PKCS7_NOVERIFY
Definition pkcs7.h:176
int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data)
PKCS7 * PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, int flags)
PKCS7 * d2i_PKCS7_fp(FILE *fp, PKCS7 **p7)
void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc)
int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si)
int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, const EVP_MD *dgst)
int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other)
PKCS7 * d2i_PKCS7_bio(BIO *bp, PKCS7 **p7)
PKCS7_RECIP_INFO * PKCS7_add_recipient(PKCS7 *p7, X509 *x509)
ASN1_TYPE * PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid)
PKCS7 * PKCS7_dup(PKCS7 *p7)
PKCS7_ISSUER_AND_SERIAL * PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx)
int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, BIO *indata, BIO *out, int flags)
int PKCS7_add_certificate(PKCS7 *p7, X509 *x509)
BIO * BIO_new_PKCS7(BIO *out, PKCS7 *p7)
PKCS7 * SMIME_read_PKCS7(BIO *bio, BIO **bcont)
#define PKCS7_TEXT
Definition pkcs7.h:171
int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509)
#define PKCS7_DETACHED
Definition pkcs7.h:177
int i2d_PKCS7_fp(FILE *fp, PKCS7 *p7)
int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i)
void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk, X509_ALGOR **pdig, X509_ALGOR **psig)
int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher)
int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509)
int flags
Definition pkcs7.h:295
ASN1_OCTET_STRING * PKCS7_digest_from_attributes(STACK_OF(X509_ATTRIBUTE) *sk)
long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg)
int PKCS7_content_new(PKCS7 *p7, int nid)
int PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
int PKCS7_set_type(PKCS7 *p7, int type)
int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si)
PKCS7_SIGNER_INFO * PKCS7_sign_add_signer(PKCS7 *p7, X509 *signcert, EVP_PKEY *pkey, const EVP_MD *md, int flags)
int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si, const unsigned char *md, int mdlen)
int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int type, void *data)
X509 * PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si)
#define PKCS7_OP_SET_DETACHED_SIGNATURE
Definition pkcs7.h:148
#define PKCS7_NOSIGS
Definition pkcs7.h:173
int ERR_load_PKCS7_strings(void)
int(*)(RSA *rsa) RSA_meth_get_finish(const RSA_METHOD *meth)
Definition rsa.h:475
#define EVP_PKEY_CTRL_GET_RSA_PADDING
Definition rsa.h:172
#define EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN
Definition rsa.h:173
#define EVP_PKEY_CTRL_RSA_OAEP_MD
Definition rsa.h:176
#define RSA_FLAG_NO_CONSTTIME
Definition rsa.h:79
#define EVP_PKEY_CTRL_RSA_KEYGEN_BITS
Definition rsa.h:168
int(*)(int type, const unsigned char *m, unsigned int m_length, unsigned char *sigret, unsigned int *siglen, const RSA *rsa) RSA_meth_get_sign(const RSA_METHOD *meth)
Definition rsa.h:477
#define EVP_PKEY_CTRL_GET_RSA_MGF1_MD
Definition rsa.h:174
int(*)(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb) RSA_meth_get_keygen(const RSA_METHOD *meth)
Definition rsa.h:496
int(*)(int flen, const unsigned char *from, unsigned char *to, RSA *rsa, int padding) RSA_meth_get_pub_enc(const RSA_METHOD *meth)
Definition rsa.h:430
#define EVP_PKEY_CTRL_RSA_MGF1_MD
Definition rsa.h:170
#define EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP
Definition rsa.h:169
#define EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL
Definition rsa.h:180
#define EVP_PKEY_CTRL_RSA_OAEP_LABEL
Definition rsa.h:177
#define EVP_PKEY_CTRL_RSA_KEYGEN_PRIMES
Definition rsa.h:182
#define EVP_PKEY_CTRL_RSA_PSS_SALTLEN
Definition rsa.h:166
int(*)(int flen, const unsigned char *from, unsigned char *to, RSA *rsa, int padding) RSA_meth_get_pub_dec(const RSA_METHOD *meth)
Definition rsa.h:437
#define EVP_PKEY_CTRL_RSA_PADDING
Definition rsa.h:165
#define EVP_PKEY_CTRL_GET_RSA_OAEP_MD
Definition rsa.h:179
int ERR_load_RSA_strings(void)
char * OPENSSL_STRING
Definition safestack.h:149
#define DEFINE_SPECIAL_STACK_OF(t1, t2)
Definition safestack.h:129
#define SKM_DEFINE_STACK_OF(t1, t2, t3)
Definition safestack.h:22
const char * OPENSSL_CSTRING
Definition safestack.h:150
#define DEFINE_STACK_OF(t)
Definition safestack.h:130
#define DEFINE_SPECIAL_STACK_OF_CONST(t1, t2)
Definition safestack.h:131
void * OPENSSL_BLOCK
Definition safestack.h:166
#define STACK_OF(type)
Definition safestack.h:20
#define DEFINE_STACK_OF_CONST(t)
Definition safestack.h:133
#define SHA_LONG
Definition sha.h:25
#define SHA_LONG64
Definition sha.h:87
#define SHA512_CBLOCK
Definition sha.h:79
#define SHA_CBLOCK
Definition sha.h:28
#define SHA_LBLOCK
Definition sha.h:27
#define SHA256_DIGEST_LENGTH
Definition sha.h:65
__owur int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles)
__owur int SSL_set_tlsext_use_srtp(SSL *ssl, const char *profiles)
__owur SRTP_PROTECTION_PROFILE * SSL_get_selected_srtp_profile(SSL *s)
#define SSL3_CK_DHE_RSA_DES_40_CBC_SHA
Definition ssl3.h:59
#define SSL3_AD_HANDSHAKE_FAILURE
Definition ssl3.h:244
#define SSL3_AD_NO_CERTIFICATE
Definition ssl3.h:245
#define SSL3_AD_CLOSE_NOTIFY
Definition ssl3.h:240
#define SSL3_AD_UNSUPPORTED_CERTIFICATE
Definition ssl3.h:247
#define SSL3_RT_HEADER_LENGTH
Definition ssl3.h:133
#define SSL3_CK_DHE_DSS_DES_40_CBC_SHA
Definition ssl3.h:53
#define SSL3_AD_CERTIFICATE_UNKNOWN
Definition ssl3.h:250
#define SSL3_AD_BAD_RECORD_MAC
Definition ssl3.h:242
#define SSL3_AD_CERTIFICATE_EXPIRED
Definition ssl3.h:249
#define SSL3_CC_SERVER
Definition ssl3.h:330
#define SSL3_AD_DECOMPRESSION_FAILURE
Definition ssl3.h:243
#define SSL3_CK_DHE_DSS_DES_192_CBC3_SHA
Definition ssl3.h:57
#define SSL3_RT_MAX_COMPRESSED_OVERHEAD
Definition ssl3.h:173
#define SSL3_RT_MAX_COMPRESSED_LENGTH
Definition ssl3.h:196
#define SSL3_CC_CLIENT
Definition ssl3.h:329
#define SSL3_CT_NUMBER
Definition ssl3.h:268
#define SSL3_RT_MAX_ENCRYPTED_LENGTH
Definition ssl3.h:199
#define TLS1_RT_CRYPTO
Definition ssl3.h:220
#define SSL3_AD_ILLEGAL_PARAMETER
Definition ssl3.h:251
#define SSL3_RT_MAX_PLAIN_LENGTH
Definition ssl3.h:171
#define SSL3_AD_BAD_CERTIFICATE
Definition ssl3.h:246
#define SSL3_AD_UNEXPECTED_MESSAGE
Definition ssl3.h:241
#define SSL3_AD_CERTIFICATE_REVOKED
Definition ssl3.h:248
#define SSL3_CC_WRITE
Definition ssl3.h:328
#define SSL3_CK_DHE_DSS_DES_64_CBC_SHA
Definition ssl3.h:55
#define TLS1_FLAGS_ENCRYPT_THEN_MAC_READ
Definition ssl3.h:285
#define SSL3_RT_MAX_TLS13_ENCRYPTED_OVERHEAD
Definition ssl3.h:181
#define SSL3_CC_READ
Definition ssl3.h:327
#define SSL_RT_MAX_CIPHER_BLOCK_SIZE
Definition ssl3.h:166
#define SSL3_RT_MAX_MD_SIZE
Definition ssl3.h:160
#define SSL3_CK_DHE_RSA_DES_64_CBC_SHA
Definition ssl3.h:61
#define SSL3_RT_MAX_ENCRYPTED_OVERHEAD
Definition ssl3.h:180
#define SSL3_CK_DHE_RSA_DES_192_CBC3_SHA
Definition ssl3.h:63
#define SSL_get_shared_group(s, n)
void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, SSL_psk_client_cb_func cb)
void(* SSL_custom_ext_free_cb_ex)(SSL *s, unsigned int ext_type, unsigned int context, const unsigned char *out, void *add_arg)
Definition ssl.h:281
#define SSL_CTRL_GET_TOTAL_RENEGOTIATIONS
#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG
#define SSL_VERIFY_NONE
Definition ssl.h:1099
#define SSL_SECOP_OTHER_CURVE
Definition ssl.h:2274
#define SSL_CTRL_CERT_FLAGS
#define SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS
Definition ssl.h:326
#define SSL_CTRL_SET_TMP_DH
void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, int(*new_session_cb)(struct ssl_st *ssl, SSL_SESSION *sess))
__owur int SSL_CTX_set_client_cert_engine(SSL_CTX *ctx, ENGINE *e)
#define SSL_CTX_set1_groups(ctx, glist, glistlen)
#define SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB
void(* SSL_CTX_keylog_cb_func)(const SSL *ssl, const char *line)
Definition ssl.h:916
#define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG
__owur int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos, unsigned int protos_len)
__owur int SSL_extension_supported(unsigned int ext_type)
#define DTLS_CTRL_SET_LINK_MTU
#define SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE
int SSL_in_before(const SSL *s)
#define SSL_CTRL_GET_RI_SUPPORT
#define SSL_CTRL_SET_TMP_ECDH
#define SSL_OP_NO_TLSv1_3
Definition ssl.h:381
#define SSL_CTRL_CHAIN_CERT
#define SSL_CTRL_SET_SPLIT_SEND_FRAGMENT
unsigned long SSL_CTX_clear_options(SSL_CTX *ctx, unsigned long op)
#define SSL_CTRL_SET_CLIENT_CERT_TYPES
int(*)(const SSL *s, const SSL_CTX *ctx, int op, int bits, int nid, void *other, void *ex) SSL_get_security_callback(const SSL *s)
Definition ssl.h:2333
void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx, int(*client_cert_cb)(SSL *ssl, X509 **x509, EVP_PKEY **pkey))
#define SSL_CTRL_GET_RAW_CIPHERLIST
#define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB
#define SSL_CTRL_CLEAR_CERT_FLAGS
__owur int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, unsigned int ext_type, custom_ext_add_cb add_cb, custom_ext_free_cb free_cb, void *add_arg, custom_ext_parse_cb parse_cb, void *parse_arg)
#define SSL_CTRL_GET_NUM_RENEGOTIATIONS
#define SSL_OP_TLSEXT_PADDING
Definition ssl.h:307
#define SSL_CTX_set1_groups_list(ctx, s)
#define SSL_OP_NO_DTLSv1_2
Definition ssl.h:384
uint32_t SSL_get_recv_max_early_data(const SSL *s)
#define SSL_CTRL_SET_SIGALGS
void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx, void(*remove_session_cb)(struct ssl_ctx_st *ctx, SSL_SESSION *sess))
int SSL_in_init(const SSL *s)
#define SSL_WRITING
Definition ssl.h:893
__owur int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, unsigned int protos_len)
#define SSL_set1_groups_list(s, str)
#define SSL_CTRL_EXTRA_CHAIN_CERT
void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, unsigned *len)
#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE
#define SSL_CTRL_GET_PEER_SIGNATURE_NID
void SSL_CTX_set_stateless_cookie_generate_cb(SSL_CTX *ctx, int(*gen_stateless_cookie_cb)(SSL *ssl, unsigned char *cookie, size_t *cookie_len))
#define SSL_CTRL_GET_CLIENT_CERT_TYPES
struct ssl_conf_ctx_st SSL_CONF_CTX
Definition ssl.h:215
#define SSL_VERIFY_FAIL_IF_NO_PEER_CERT
Definition ssl.h:1101
void SSL_CTX_set_stateless_cookie_verify_cb(SSL_CTX *ctx, int(*verify_stateless_cookie_cb)(SSL *ssl, const unsigned char *cookie, size_t cookie_len))
void SSL_set_psk_server_callback(SSL *ssl, SSL_psk_server_cb_func cb)
void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s, SSL_CTX_npn_select_cb_func cb, void *arg)
#define SSL_CTRL_SESS_HIT
#define SSL_CTRL_GET_TLSEXT_TICKET_KEYS
void SSL_set_psk_client_callback(SSL *ssl, SSL_psk_client_cb_func cb)
#define SSL_CTX_set_read_ahead(ctx, m)
Definition ssl.h:2039
int SSL_CTX_set_recv_max_early_data(SSL_CTX *ctx, uint32_t recv_max_early_data)
#define SSL_CTRL_SESS_TIMEOUTS
#define SSL_CTRL_MODE
#define SSL_OP_SAFARI_ECDHE_ECDSA_BUG
Definition ssl.h:309
#define SSL_CTRL_GET_TMP_KEY
size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count)
int(* SSL_psk_find_session_cb_func)(SSL *ssl, const unsigned char *identity, size_t identity_len, SSL_SESSION **sess)
Definition ssl.h:845
size_t SSL_get_finished(const SSL *s, void *buf, size_t count)
#define SSL_CTRL_SET_VERIFY_CERT_STORE
struct ssl_comp_st SSL_COMP
Definition ssl.h:216
int(* SSL_custom_ext_parse_cb_ex)(SSL *s, unsigned int ext_type, unsigned int context, const unsigned char *in, size_t inlen, X509 *x, size_t chainidx, int *al, void *parse_arg)
Definition ssl.h:286
#define SSL_CTRL_SET_SESS_CACHE_SIZE
#define SSL_ASYNC_PAUSED
Definition ssl.h:896
#define SSL_CTRL_GET_CHAIN_CERTS
#define SSL_SECOP_OTHER_NONE
Definition ssl.h:2272
#define SSL_CTRL_SESS_ACCEPT
#define SSL_OP_LEGACY_SERVER_CONNECT
Definition ssl.h:304
#define SSL_CTRL_SET_MAX_SEND_FRAGMENT
struct ssl_cipher_st SSL_CIPHER
Definition ssl.h:212
__owur int SSL_select_next_proto(unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, const unsigned char *client, unsigned int client_len)
#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB
#define SSL_SECOP_OTHER_PKEY
Definition ssl.h:2276
#define SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP
#define SSL_CTRL_SESS_CONNECT_GOOD
#define SSL_READING
Definition ssl.h:894
void SSL_set_psk_use_session_callback(SSL *s, SSL_psk_use_session_cb_func cb)
int SSL_CTX_set_max_early_data(SSL_CTX *ctx, uint32_t max_early_data)
#define SSL_SECOP_OTHER_CERT
Definition ssl.h:2278
#define SSL_CTRL_SET_READ_AHEAD
#define SSL_NOTHING
Definition ssl.h:892
#define SSL_SECOP_OTHER_CIPHER
Definition ssl.h:2273
unsigned int(* SSL_psk_client_cb_func)(SSL *ssl, const char *hint, char *identity, unsigned int max_identity_len, unsigned char *psk, unsigned int max_psk_len)
Definition ssl.h:823
#define SSL_CTRL_GET_SESS_CACHE_MODE
#define SSL_get1_groups(s, glist)
int(* GEN_SESSION_CB)(SSL *ssl, unsigned char *id, unsigned int *id_len)
Definition ssl.h:669
int(* SSL_psk_use_session_cb_func)(SSL *ssl, const EVP_MD *md, const unsigned char **id, size_t *idlen, SSL_SESSION **sess)
Definition ssl.h:849
#define SSL_CB_READ
Definition ssl.h:1059
int(* SSL_CTX_npn_advertised_cb_func)(SSL *ssl, const unsigned char **out, unsigned int *outlen, void *arg)
Definition ssl.h:766
void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data, unsigned int *len)
__owur int SSL_CTX_has_client_custom_ext(const SSL_CTX *ctx, unsigned int ext_type)
#define SSL_set0_chain(s, sk)
__owur int SSL_SRP_CTX_init(SSL *s)
#define SSL_CTRL_GET_SHARED_GROUP
int SSL_SRP_CTX_free(SSL *ctx)
struct tls_session_ticket_ext_st TLS_SESSION_TICKET_EXT
Definition ssl.h:210
@ TLS_ST_CW_KEY_UPDATE
Definition ssl.h:1035
@ TLS_ST_CR_SRVR_HELLO
Definition ssl.h:995
@ TLS_ST_CR_HELLO_REQ
Definition ssl.h:1033
@ TLS_ST_BEFORE
Definition ssl.h:992
@ TLS_ST_SR_KEY_UPDATE
Definition ssl.h:1036
@ TLS_ST_CW_CERT
Definition ssl.h:1005
@ TLS_ST_SR_CERT
Definition ssl.h:1019
@ TLS_ST_CW_CLNT_HELLO
Definition ssl.h:1004
@ TLS_ST_SR_NEXT_PROTO
Definition ssl.h:1022
@ TLS_ST_SW_KEY_UPDATE
Definition ssl.h:1034
@ TLS_ST_SR_CHANGE
Definition ssl.h:1023
@ TLS_ST_SW_CERT_STATUS
Definition ssl.h:1026
@ DTLS_ST_SW_HELLO_VERIFY_REQUEST
Definition ssl.h:1013
@ TLS_ST_CW_CERT_VRFY
Definition ssl.h:1007
@ TLS_ST_SW_SESSION_TICKET
Definition ssl.h:1025
@ TLS_ST_CR_KEY_EXCH
Definition ssl.h:998
@ TLS_ST_SR_FINISHED
Definition ssl.h:1024
@ TLS_ST_PENDING_EARLY_DATA_END
Definition ssl.h:1039
@ TLS_ST_SW_CERT_REQ
Definition ssl.h:1017
@ TLS_ST_CR_KEY_UPDATE
Definition ssl.h:1037
@ TLS_ST_CR_CHANGE
Definition ssl.h:1002
@ TLS_ST_SR_CLNT_HELLO
Definition ssl.h:1012
@ DTLS_ST_CR_HELLO_VERIFY_REQUEST
Definition ssl.h:994
@ TLS_ST_SW_SRVR_HELLO
Definition ssl.h:1014
@ TLS_ST_SW_FINISHED
Definition ssl.h:1028
@ TLS_ST_CR_CERT_REQ
Definition ssl.h:999
@ TLS_ST_CR_ENCRYPTED_EXTENSIONS
Definition ssl.h:1030
@ TLS_ST_CW_END_OF_EARLY_DATA
Definition ssl.h:1040
@ TLS_ST_SW_SRVR_DONE
Definition ssl.h:1018
@ TLS_ST_CR_SRVR_DONE
Definition ssl.h:1000
@ TLS_ST_CR_CERT_STATUS
Definition ssl.h:997
@ TLS_ST_SW_HELLO_REQ
Definition ssl.h:1011
@ TLS_ST_SR_CERT_VRFY
Definition ssl.h:1021
@ TLS_ST_CR_CERT
Definition ssl.h:996
@ TLS_ST_OK
Definition ssl.h:993
@ TLS_ST_SR_KEY_EXCH
Definition ssl.h:1020
@ TLS_ST_SW_CERT_VRFY
Definition ssl.h:1032
@ TLS_ST_CW_NEXT_PROTO
Definition ssl.h:1009
@ TLS_ST_CW_KEY_EXCH
Definition ssl.h:1006
@ TLS_ST_CR_FINISHED
Definition ssl.h:1003
@ TLS_ST_CR_CERT_VRFY
Definition ssl.h:1031
@ TLS_ST_SW_KEY_EXCH
Definition ssl.h:1016
@ TLS_ST_CR_SESSION_TICKET
Definition ssl.h:1001
@ TLS_ST_CW_FINISHED
Definition ssl.h:1010
@ TLS_ST_EARLY_DATA
Definition ssl.h:1038
@ TLS_ST_SW_CERT
Definition ssl.h:1015
@ TLS_ST_SW_CHANGE
Definition ssl.h:1027
@ TLS_ST_CW_CHANGE
Definition ssl.h:1008
@ TLS_ST_SW_ENCRYPTED_EXTENSIONS
Definition ssl.h:1029
@ TLS_ST_SR_END_OF_EARLY_DATA
Definition ssl.h:1041
#define SSL_CTRL_SET_TLSEXT_HOSTNAME
#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP
#define SSL_VERIFY_PEER
Definition ssl.h:1100
#define SSL_CB_EXIT
Definition ssl.h:1058
#define SSL_CTRL_GET_READ_AHEAD
struct ssl_method_st SSL_METHOD
Definition ssl.h:211
#define SSL_ST_ACCEPT
Definition ssl.h:1053
__owur int SSL_srp_server_param_with_username(SSL *s, int *ad)
#define SSL_OP_NO_TLSv1
Definition ssl.h:378
__owur int SSL_CTX_add_custom_ext(SSL_CTX *ctx, unsigned int ext_type, unsigned int context, SSL_custom_ext_add_cb_ex add_cb, SSL_custom_ext_free_cb_ex free_cb, void *add_arg, SSL_custom_ext_parse_cb_ex parse_cb, void *parse_arg)
#define SSL_CTRL_SESS_CB_HIT
void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, SSL_psk_server_cb_func cb)
int(*)(struct ssl_st *ssl, SSL_SESSION *sess) SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)
Definition ssl.h:712
#define SSL_SESS_CACHE_NO_INTERNAL_LOOKUP
Definition ssl.h:678
void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, int(*app_gen_cookie_cb)(SSL *ssl, unsigned char *cookie, unsigned int *cookie_len))
#define SSL_VERIFY_CLIENT_ONCE
Definition ssl.h:1102
__owur int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *identity_hint)
#define SSL_CTRL_SET_TLSEXT_DEBUG_ARG
#define SSL_CTRL_SET_CURRENT_CERT
#define SSL_get_peer_tmp_key(s, pk)
#define SSL_OP_CRYPTOPRO_TLSEXT_BUG
Definition ssl.h:398
#define SSL_CTRL_SET_MAX_PROTO_VERSION
struct ssl_st * ssl_crock_st
Definition ssl.h:209
int(* tls_session_ticket_ext_cb_fn)(SSL *s, const unsigned char *data, int len, void *arg)
Definition ssl.h:229
#define DTLS_CTRL_GET_LINK_MIN_MTU
#define SSL_SECOP_EE_KEY
Definition ssl.h:2315
#define SSL_CTRL_SESS_CONNECT
#define DTLS_CTRL_GET_TIMEOUT
void SSL_CTX_set_info_callback(SSL_CTX *ctx, void(*cb)(const SSL *ssl, int type, int val))
uint32_t SSL_CTX_get_recv_max_early_data(const SSL_CTX *ctx)
unsigned long SSL_set_options(SSL *s, unsigned long op)
uint32_t SSL_get_max_early_data(const SSL *s)
#define SSL_CTRL_GET_PEER_TMP_KEY
#define SSL_CTRL_GET_GROUPS
#define SSL_CTRL_SESS_NUMBER
struct ssl_session_st SSL_SESSION
Definition ssl.h:213
#define SSL_SECOP_PEER
Definition ssl.h:2281
void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *s, SSL_CTX_npn_advertised_cb_func cb, void *arg)
void SSL_CTX_set_msg_callback(SSL_CTX *ctx, void(*cb)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg))
#define SSL_OP_NO_TLSv1_2
Definition ssl.h:379
#define SSL_CTX_set0_chain(ctx, sk)
#define SSL_CTRL_GET_EXTRA_CHAIN_CERTS
int(* SSL_CTX_alpn_select_cb_func)(SSL *ssl, const unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, void *arg)
Definition ssl.h:804
#define SSL_SECOP_CA_MD
Definition ssl.h:2319
#define DTLS_CTRL_HANDLE_TIMEOUT
#define SSL_CTRL_SET_SESS_CACHE_MODE
#define SSL_CTRL_SET_CLIENT_SIGALGS_LIST
unsigned long SSL_get_options(const SSL *s)
#define SSL_CLIENT_HELLO_CB
Definition ssl.h:898
void SSL_set_msg_callback(SSL *ssl, void(*cb)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg))
void SSL_CTX_set_psk_use_session_callback(SSL_CTX *ctx, SSL_psk_use_session_cb_func cb)
#define SSL_CB_WRITE
Definition ssl.h:1060
int(*)(SSL *ssl, X509 **x509, EVP_PKEY **pkey) SSL_CTX_get_client_cert_cb(SSL_CTX *ctx)
Definition ssl.h:736
#define SSL_OP_NO_SSLv3
Definition ssl.h:377
#define SSL_ST_CONNECT
Definition ssl.h:1052
unsigned long SSL_CTX_set_options(SSL_CTX *ctx, unsigned long op)
#define SSL_CTRL_GET_MIN_PROTO_VERSION
void(* custom_ext_free_cb)(SSL *s, unsigned int ext_type, const unsigned char *out, void *add_arg)
Definition ssl.h:266
const char * SSL_get_psk_identity(const SSL *s)
#define SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG
#define SSL_CTRL_SESS_CACHE_FULL
#define SSL_CTRL_SET_TLSEXT_TICKET_KEYS
#define SSL_CTRL_GET_MAX_CERT_LIST
void(*)(const SSL *ssl, int type, int val) SSL_CTX_get_info_callback(SSL_CTX *ctx)
Definition ssl.h:731
const char * SSL_get_psk_identity_hint(const SSL *s)
#define SSL_CB_LOOP
Definition ssl.h:1057
#define SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS
int SSL_is_init_finished(const SSL *s)
#define SSL_CTRL_GET_MAX_PROTO_VERSION
#define SSL_CTRL_SELECT_CURRENT_CERT
#define SSL_CTRL_SESS_ACCEPT_GOOD
#define SSL_CTX_get_read_ahead(ctx)
Definition ssl.h:2037
#define SSL_CTRL_GET_SIGNATURE_NID
#define SSL_CTRL_CHAIN
#define SSL_CTRL_SESS_ACCEPT_RENEGOTIATE
#define SSL_CTRL_SESS_MISSES
#define SSL_CTRL_SET_MSG_CALLBACK_ARG
#define SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS
#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS
int(* custom_ext_parse_cb)(SSL *s, unsigned int ext_type, const unsigned char *in, size_t inlen, int *al, void *parse_arg)
Definition ssl.h:269
#define SSL_CTRL_SET_SIGALGS_LIST
SSL_CTX_keylog_cb_func SSL_CTX_get_keylog_callback(const SSL_CTX *ctx)
#define SSL_CTRL_SET_GROUPS_LIST
void SSL_set_psk_find_session_callback(SSL *s, SSL_psk_find_session_cb_func cb)
#define SSL_SESS_CACHE_SERVER
Definition ssl.h:674
void SSL_CTX_set_keylog_callback(SSL_CTX *ctx, SSL_CTX_keylog_cb_func cb)
#define SSL_CTRL_SESS_CONNECT_RENEGOTIATE
#define SSL_CTRL_SET_GROUPS
#define SSL_CTRL_SET_MAX_CERT_LIST
#define SSL_CTRL_GET_EC_POINT_FORMATS
void(*)(struct ssl_ctx_st *ctx, SSL_SESSION *sess) SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)
Definition ssl.h:718
#define SSL_SESS_CACHE_NO_INTERNAL_STORE
Definition ssl.h:679
#define SSL_X509_LOOKUP
Definition ssl.h:895
#define SSL_CTRL_SET_CLIENT_SIGALGS
int(* SSL_custom_ext_add_cb_ex)(SSL *s, unsigned int ext_type, unsigned int context, const unsigned char **out, size_t *outlen, X509 *x, size_t chainidx, int *al, void *add_arg)
Definition ssl.h:274
void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx, SSL_SESSION *(*get_session_cb)(struct ssl_st *ssl, const unsigned char *data, int len, int *copy))
#define SSL_CTRL_GET_SESS_CACHE_SIZE
#define SSL_CTRL_SET_MIN_PROTO_VERSION
unsigned long SSL_CTX_get_options(const SSL_CTX *ctx)
#define SSL_CTRL_BUILD_CERT_CHAIN
int(* tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, STACK_OF(SSL_CIPHER) *peer_ciphers, const SSL_CIPHER **cipher, void *arg)
Definition ssl.h:231
__owur int SRP_Calc_A_param(SSL *s)
#define SSL_CTRL_CLEAR_MODE
struct tls_sigalgs_st TLS_SIGALGS
Definition ssl.h:214
void SSL_CTX_set_psk_find_session_callback(SSL_CTX *ctx, SSL_psk_find_session_cb_func cb)
uint32_t SSL_CTX_get_max_early_data(const SSL_CTX *ctx)
unsigned long SSL_clear_options(SSL *s, unsigned long op)
int SSL_set_recv_max_early_data(SSL *s, uint32_t recv_max_early_data)
#define SSL_CTRL_SET_CHAIN_CERT_STORE
#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS
#define SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS
#define SSL_ASYNC_NO_JOBS
Definition ssl.h:897
unsigned int(* SSL_psk_server_cb_func)(SSL *ssl, const char *identity, unsigned char *psk, unsigned int max_psk_len)
Definition ssl.h:832
__owur int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, unsigned int ext_type, custom_ext_add_cb add_cb, custom_ext_free_cb free_cb, void *add_arg, custom_ext_parse_cb parse_cb, void *parse_arg)
#define SSL_OP_NO_DTLSv1
Definition ssl.h:383
void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, int(*app_verify_cookie_cb)(SSL *ssl, const unsigned char *cookie, unsigned int cookie_len))
#define SSL_CTRL_SET_MAX_PIPELINES
void(*)(const SSL *ssl, int type, int val) SSL_get_info_callback(const SSL *ssl)
Definition ssl.h:1993
#define SSL_library_init()
Definition ssl.h:1956
#define SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS
#define SSL_CTRL_SET_MTU
__owur int SSL_CTX_SRP_CTX_init(SSL_CTX *ctx)
#define SSL_CTRL_SET_DH_AUTO
#define SSL_CTRL_SET_TLSEXT_DEBUG_CB
#define OPENSSL_INIT_LOAD_SSL_STRINGS
Definition ssl.h:2357
void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, SSL_CTX_alpn_select_cb_func cb, void *arg)
#define SSL_CTRL_SET_TLSEXT_SERVERNAME_CB
int SSL_set_max_early_data(SSL *s, uint32_t max_early_data)
int(* custom_ext_add_cb)(SSL *s, unsigned int ext_type, const unsigned char **out, size_t *outlen, int *al, void *add_arg)
Definition ssl.h:262
#define SSL_CTRL_GET_EXTMS_SUPPORT
int(* SSL_CTX_npn_select_cb_func)(SSL *s, unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, void *arg)
Definition ssl.h:775
#define SSL_OP_NO_TLSv1_1
Definition ssl.h:380
#define SSL_SECOP_OTHER_SIGALG
Definition ssl.h:2277
#define SSL_set1_groups(s, glist, glistlen)
#define SSL_SECOP_CA_KEY
Definition ssl.h:2317
int SSL_CTX_SRP_CTX_free(SSL_CTX *ctx)
__owur int SSL_use_psk_identity_hint(SSL *s, const char *identity_hint)
#define SSL_SESS_CACHE_CLIENT
Definition ssl.h:673
int(* SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx)
Definition ssl.h:294
#define SSL_CB_ALERT
Definition ssl.h:1061
int ERR_load_SSL_strings(void)
void(* OPENSSL_sk_freefunc)(void *)
Definition stack.h:20
void * OPENSSL_sk_delete_ptr(OPENSSL_STACK *st, const void *p)
void * OPENSSL_sk_delete(OPENSSL_STACK *st, int loc)
int OPENSSL_sk_reserve(OPENSSL_STACK *st, int n)
void OPENSSL_sk_zero(OPENSSL_STACK *st)
OPENSSL_STACK * OPENSSL_sk_deep_copy(const OPENSSL_STACK *, OPENSSL_sk_copyfunc c, OPENSSL_sk_freefunc f)
int OPENSSL_sk_is_sorted(const OPENSSL_STACK *st)
OPENSSL_STACK * OPENSSL_sk_new(OPENSSL_sk_compfunc cmp)
OPENSSL_STACK * OPENSSL_sk_new_null(void)
struct stack_st OPENSSL_STACK
Definition stack.h:17
int OPENSSL_sk_find(OPENSSL_STACK *st, const void *data)
int(* OPENSSL_sk_compfunc)(const void *, const void *)
Definition stack.h:19
OPENSSL_sk_compfunc OPENSSL_sk_set_cmp_func(OPENSSL_STACK *sk, OPENSSL_sk_compfunc cmp)
OPENSSL_STACK * OPENSSL_sk_dup(const OPENSSL_STACK *st)
int OPENSSL_sk_insert(OPENSSL_STACK *sk, const void *data, int where)
void * OPENSSL_sk_set(OPENSSL_STACK *st, int i, const void *data)
int OPENSSL_sk_push(OPENSSL_STACK *st, const void *data)
int OPENSSL_sk_unshift(OPENSSL_STACK *st, const void *data)
void * OPENSSL_sk_pop(OPENSSL_STACK *st)
int OPENSSL_sk_find_ex(OPENSSL_STACK *st, const void *data)
int OPENSSL_sk_num(const OPENSSL_STACK *)
void *(* OPENSSL_sk_copyfunc)(const void *)
Definition stack.h:21
void OPENSSL_sk_pop_free(OPENSSL_STACK *st, void(*func)(void *))
void * OPENSSL_sk_shift(OPENSSL_STACK *st)
void OPENSSL_sk_sort(OPENSSL_STACK *st)
OPENSSL_STACK * OPENSSL_sk_new_reserve(OPENSSL_sk_compfunc c, int n)
void * OPENSSL_sk_value(const OPENSSL_STACK *, int)
void OPENSSL_sk_free(OPENSSL_STACK *)
std::function< void(bool, std::string)> callback
Definition Requests.cpp:41
unsigned char * enc
Definition asn1.h:165
const char * sname
Definition asn1.h:486
const char * lname
Definition asn1.h:485
const char * comment
Definition ec.h:406
NotifyAsyncParams(const void *pSend, const TArgs &a)
Family
Possible address families for socket addresses.
Definition SocketDefs.h:373
std::string privateKeyFile
Initializes the struct with default values.
Definition Context.h:134
std::string certificateFile
Definition Context.h:138
VerificationMode verificationMode
Definition Context.h:149
HTTP proxy server configuration.
std::string nonProxyHosts
Proxy server password.
std::string username
Proxy server TCP port.
std::string password
Proxy server username.
Poco::UInt16 port
Proxy server host name or IP address.
static std::string escape(const std::string &s, bool strictJSON=false)
ASN1_TYPE * parameter
Definition x509.h:61
ASN1_OBJECT * algorithm
Definition x509.h:60
ASN1_TIME * notBefore
Definition x509.h:67
ASN1_TIME * notAfter
Definition x509.h:68
long flags
Definition asn1.h:155
unsigned char * data
Definition asn1.h:149
unsigned long flags
Definition asn1.h:191
unsigned long mask
Definition asn1.h:190
ASN1_GENERALIZEDTIME * generalizedtime
Definition asn1.h:462
ASN1_UNIVERSALSTRING * universalstring
Definition asn1.h:460
ASN1_STRING * sequence
Definition asn1.h:470
ASN1_STRING * asn1_string
Definition asn1.h:449
ASN1_VALUE * asn1_value
Definition asn1.h:471
ASN1_STRING * set
Definition asn1.h:469
ASN1_UTF8STRING * utf8string
Definition asn1.h:464
ASN1_PRINTABLESTRING * printablestring
Definition asn1.h:455
ASN1_OCTET_STRING * octet_string
Definition asn1.h:454
ASN1_VISIBLESTRING * visiblestring
Definition asn1.h:463
ASN1_BMPSTRING * bmpstring
Definition asn1.h:459
ASN1_T61STRING * t61string
Definition asn1.h:456
ASN1_BIT_STRING * bit_string
Definition asn1.h:453
ASN1_GENERALSTRING * generalstring
Definition asn1.h:458
char * ptr
Definition asn1.h:447
ASN1_UTCTIME * utctime
Definition asn1.h:461
ASN1_OBJECT * object
Definition asn1.h:450
int type
Definition asn1.h:445
ASN1_INTEGER * integer
Definition asn1.h:451
ASN1_IA5STRING * ia5string
Definition asn1.h:457
ASN1_ENUMERATED * enumerated
Definition asn1.h:452
ASN1_BOOLEAN boolean
Definition asn1.h:448
unsigned long flags
Definition buffer.h:42
size_t max
Definition buffer.h:41
size_t length
Definition buffer.h:39
char * data
Definition buffer.h:40
const char * name
Definition objects.h:38
int alias
Definition objects.h:37
const char * data
Definition objects.h:39
X509_ALGOR * md
Definition pkcs7.h:99
struct pkcs7_st * contents
Definition pkcs7.h:100
ASN1_INTEGER * version
Definition pkcs7.h:98
ASN1_OCTET_STRING * digest
Definition pkcs7.h:101
ASN1_OBJECT * content_type
Definition pkcs7.h:75
ASN1_OCTET_STRING * enc_data
Definition pkcs7.h:77
const EVP_CIPHER * cipher
Definition pkcs7.h:78
X509_ALGOR * algorithm
Definition pkcs7.h:76
ASN1_INTEGER * version
Definition pkcs7.h:105
PKCS7_ENC_CONTENT * enc_data
Definition pkcs7.h:106
PKCS7_ENC_CONTENT * enc_data
Definition pkcs7.h:84
ASN1_INTEGER * version
Definition pkcs7.h:82
ASN1_INTEGER * serial
Definition pkcs7.h:34
ASN1_OCTET_STRING * enc_key
Definition pkcs7.h:55
ASN1_INTEGER * version
Definition pkcs7.h:52
PKCS7_ISSUER_AND_SERIAL * issuer_and_serial
Definition pkcs7.h:53
X509_ALGOR * key_enc_algor
Definition pkcs7.h:54
struct pkcs7_st * contents
Definition pkcs7.h:67
ASN1_INTEGER * version
Definition pkcs7.h:62
PKCS7_ENC_CONTENT * enc_data
Definition pkcs7.h:93
ASN1_INTEGER * version
Definition pkcs7.h:88
X509_ALGOR * digest_alg
Definition pkcs7.h:40
ASN1_OCTET_STRING * enc_digest
Definition pkcs7.h:43
PKCS7_ISSUER_AND_SERIAL * issuer_and_serial
Definition pkcs7.h:39
ASN1_INTEGER * version
Definition pkcs7.h:38
EVP_PKEY * pkey
Definition pkcs7.h:46
X509_ALGOR * digest_enc_alg
Definition pkcs7.h:42
PKCS7_ENVELOPE * enveloped
Definition pkcs7.h:134
PKCS7_DIGEST * digest
Definition pkcs7.h:138
int state
Definition pkcs7.h:119
long length
Definition pkcs7.h:115
PKCS7_ENCRYPT * encrypted
Definition pkcs7.h:140
char * ptr
Definition pkcs7.h:128
ASN1_TYPE * other
Definition pkcs7.h:142
ASN1_OCTET_STRING * data
Definition pkcs7.h:130
int detached
Definition pkcs7.h:120
unsigned char * asn1
Definition pkcs7.h:114
ASN1_OBJECT * type
Definition pkcs7.h:121
PKCS7_SIGNED * sign
Definition pkcs7.h:132
PKCS7_SIGN_ENVELOPE * signed_and_enveloped
Definition pkcs7.h:136
const char * name
Definition ssl.h:223
unsigned long id
Definition ssl.h:224
unsigned short length
Definition tls1.h:1230
char * name
Definition x509.h:107
int(* check_trust)(struct x509_trust_st *, X509 *, int)
Definition x509.h:106
int trust
Definition x509.h:104
int flags
Definition x509.h:105
void * arg2
Definition x509.h:109
#define TLS1_AD_RECORD_OVERFLOW
Definition tls1.h:52
__owur int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen, const char *label, size_t llen, const unsigned char *context, size_t contextlen, int use_context)
#define TLS1_AD_EXPORT_RESTRICTION
Definition tls1.h:57
#define TLS1_3_VERSION
Definition tls1.h:30
int SSL_get_signature_type_nid(const SSL *s, int *pnid)
int SSL_get_peer_signature_type_nid(const SSL *s, int *pnid)
#define TLS1_AD_UNKNOWN_CA
Definition tls1.h:53
#define TLS13_AD_MISSING_EXTENSION
Definition tls1.h:65
__owur int SSL_check_chain(SSL *s, X509 *x, EVP_PKEY *pk, STACK_OF(X509) *chain)
#define TLS1_AD_NO_RENEGOTIATION
Definition tls1.h:63
#define TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE
Definition tls1.h:71
#define TLS1_AD_UNKNOWN_PSK_IDENTITY
Definition tls1.h:73
#define TLS1_AD_INSUFFICIENT_SECURITY
Definition tls1.h:59
#define TLS1_AD_PROTOCOL_VERSION
Definition tls1.h:58
#define TLS1_AD_USER_CANCELLED
Definition tls1.h:62
__owur int SSL_export_keying_material_early(SSL *s, unsigned char *out, size_t olen, const char *label, size_t llen, const unsigned char *context, size_t contextlen)
int SSL_get_sigalgs(SSL *s, int idx, int *psign, int *phash, int *psignandhash, unsigned char *rsig, unsigned char *rhash)
#define TLS1_AD_INTERNAL_ERROR
Definition tls1.h:60
#define TLS1_AD_NO_APPLICATION_PROTOCOL
Definition tls1.h:74
#define TLSEXT_TYPE_supported_groups
Definition tls1.h:96
#define TLS1_AD_CERTIFICATE_UNOBTAINABLE
Definition tls1.h:69
int SSL_get_shared_sigalgs(SSL *s, int idx, int *psign, int *phash, int *psignandhash, unsigned char *rsig, unsigned char *rhash)
#define TLS1_AD_UNSUPPORTED_EXTENSION
Definition tls1.h:68
#define TLS1_AD_ACCESS_DENIED
Definition tls1.h:54
#define TLS_CT_NUMBER
Definition tls1.h:1145
__owur const char * SSL_get_servername(const SSL *s, const int type)
#define TLS1_AD_DECODE_ERROR
Definition tls1.h:55
__owur int SSL_get_servername_type(const SSL *s)
#define TLS1_AD_UNRECOGNIZED_NAME
Definition tls1.h:70
int SSL_CTX_set_tlsext_max_fragment_length(SSL_CTX *ctx, uint8_t mode)
#define TLSEXT_NAMETYPE_host_name
Definition tls1.h:157
#define TLS1_AD_DECRYPT_ERROR
Definition tls1.h:56
#define TLS13_AD_CERTIFICATE_REQUIRED
Definition tls1.h:66
#define TLS1_AD_INAPPROPRIATE_FALLBACK
Definition tls1.h:61
int SSL_set_tlsext_max_fragment_length(SSL *ssl, uint8_t mode)
#define TLS1_AD_DECRYPTION_FAILED
Definition tls1.h:51
#define TLS1_AD_BAD_CERTIFICATE_HASH_VALUE
Definition tls1.h:72
#define TLS1_VERSION_MAJOR
Definition tls1.h:36
#define FMT_THROW(x)
Definition format.h:222
#define FMT_NULL
Definition format.h:273
#define X509_FILETYPE_PEM
Definition x509.h:44
#define X509_FILETYPE_ASN1
Definition x509.h:45
struct X509_name_entry_st X509_NAME_ENTRY
Definition x509.h:73
#define XN_FLAG_DUMP_UNKNOWN_FIELDS
Definition x509.h:194
struct X509_req_info_st X509_REQ_INFO
Definition x509.h:91
#define XN_FLAG_DN_REV
Definition x509.h:176
#define XN_FLAG_FN_SN
Definition x509.h:182
struct X509_req_st X509_REQ
Definition x509.h:93
#define XN_FLAG_SEP_CPLUS_SPC
Definition x509.h:172
#define XN_FLAG_SEP_MULTILINE
Definition x509.h:174
struct x509_cinf_st X509_CINF
Definition x509.h:97
#define XN_FLAG_SPC_EQ
Definition x509.h:187
#define XN_FLAG_FN_LN
Definition x509.h:183
struct X509_sig_st X509_SIG
Definition x509.h:71
struct X509_extension_st X509_EXTENSION
Definition x509.h:81
struct x509_cert_aux_st X509_CERT_AUX
Definition x509.h:95
#define XN_FLAG_FN_ALIGN
Definition x509.h:196
struct x509_attributes_st X509_ATTRIBUTE
Definition x509.h:87
#define XN_FLAG_SEP_COMMA_PLUS
Definition x509.h:171
int(*)(int, X509 *, int) X509_TRUST_set_default(int(*trust)(int, X509 *, int))
Definition x509.h:580
void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, unsigned int flags)
int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param)
int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx)
X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(X509_STORE_CTX *ctx)
void X509_STORE_set_check_crl(X509_STORE *ctx, X509_STORE_CTX_check_crl_fn check_crl)
void(*)(X509_LOOKUP *ctx) X509_LOOKUP_meth_get_free(const X509_LOOKUP_METHOD *method)
Definition x509_vfy.h:413
int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type)
#define X509_V_FLAG_EXPLICIT_POLICY
Definition x509_vfy.h:212
int X509_VERIFY_PARAM_get_count(void)
void X509_STORE_set_lookup_certs(X509_STORE *ctx, X509_STORE_CTX_lookup_certs_fn lookup_certs)
int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, const char *str, int len, X509_OBJECT *ret)
#define X509_L_FILE_LOAD
Definition x509_vfy.h:90
int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, long argl, char **ret)
X509_POLICY_LEVEL * X509_policy_tree_get0_level(const X509_POLICY_TREE *tree, int i)
void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk)
void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s)
int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, const char *name, size_t namelen)
X509_STORE_CTX_check_revocation_fn X509_STORE_get_check_revocation(X509_STORE *ctx)
X509_LOOKUP_METHOD * X509_LOOKUP_hash_dir(void)
void X509_policy_tree_free(X509_POLICY_TREE *tree)
X509_POLICY_NODE * X509_policy_level_get0_node(X509_POLICY_LEVEL *level, int i)
X509_OBJECT * X509_OBJECT_new(void)
X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(X509_STORE *ctx)
X509_LOOKUP_ctrl_fn X509_LOOKUP_meth_get_ctrl(const X509_LOOKUP_METHOD *method)
int X509_STORE_CTX_get_by_subject(X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, X509_NAME *name, X509_OBJECT *ret)
void X509_STORE_set_cleanup(X509_STORE *ctx, X509_STORE_CTX_cleanup_fn cleanup)
int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, X509_NAME *name, X509_OBJECT *ret)
X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(X509_STORE_CTX *ctx)
#define X509_V_FLAG_POLICY_CHECK
Definition x509_vfy.h:210
void X509_VERIFY_PARAM_move_peername(X509_VERIFY_PARAM *, X509_VERIFY_PARAM *)
int(* X509_LOOKUP_get_by_issuer_serial_fn)(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, X509_NAME *name, ASN1_INTEGER *serial, X509_OBJECT *ret)
Definition x509_vfy.h:387
int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose)
X509_OBJECT * X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h, X509_LOOKUP_TYPE type, X509_NAME *name)
X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(X509_STORE *ctx)
int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy, STACK_OF(X509) *certs, STACK_OF(ASN1_OBJECT) *policy_oids, unsigned int flags)
int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx)
const ASN1_OBJECT * X509_policy_node_get0_policy(const X509_POLICY_NODE *node)
int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose)
void X509_STORE_set_get_issuer(X509_STORE *ctx, X509_STORE_CTX_get_issuer_fn get_issuer)
X509_CRL * X509_OBJECT_get0_X509_CRL(X509_OBJECT *a)
int(* X509_STORE_CTX_verify_cb)(int, X509_STORE_CTX *)
Definition x509_vfy.h:63
int(* X509_STORE_CTX_get_issuer_fn)(X509 **issuer, X509_STORE_CTX *ctx, X509 *x)
Definition x509_vfy.h:65
int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, const char *email, size_t emaillen)
int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name)
void * X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx)
int(* X509_LOOKUP_ctrl_fn)(X509_LOOKUP *ctx, int cmd, const char *argc, long argl, char **ret)
Definition x509_vfy.h:381
void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags)
char * X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *)
int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, unsigned long flags)
int(* X509_STORE_CTX_check_crl_fn)(X509_STORE_CTX *ctx, X509_CRL *crl)
Definition x509_vfy.h:72
int X509_STORE_unlock(X509_STORE *ctx)
const X509_VERIFY_PARAM * X509_VERIFY_PARAM_lookup(const char *name)
void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth)
int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to, const X509_VERIFY_PARAM *from)
int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx)
int X509_VERIFY_PARAM_set_inh_flags(X509_VERIFY_PARAM *param, uint32_t flags)
int(* X509_LOOKUP_get_by_alias_fn)(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, const char *str, int len, X509_OBJECT *ret)
Definition x509_vfy.h:397
const X509_POLICY_NODE * X509_policy_node_get0_parent(const X509_POLICY_NODE *node)
void X509_STORE_set_check_policy(X509_STORE *ctx, X509_STORE_CTX_check_policy_fn check_policy)
int X509_LOOKUP_meth_set_get_by_subject(X509_LOOKUP_METHOD *method, X509_LOOKUP_get_by_subject_fn fn)
#define X509_V_FLAG_INHIBIT_MAP
Definition x509_vfy.h:216
X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(X509_STORE_CTX *ctx)
int X509_LOOKUP_meth_set_shutdown(X509_LOOKUP_METHOD *method, int(*shutdown)(X509_LOOKUP *ctx))
int(* X509_STORE_CTX_check_policy_fn)(X509_STORE_CTX *ctx)
Definition x509_vfy.h:75
int X509_VERIFY_PARAM_get_auth_level(const X509_VERIFY_PARAM *param)
int(* X509_LOOKUP_get_by_fingerprint_fn)(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, const unsigned char *bytes, int len, X509_OBJECT *ret)
Definition x509_vfy.h:392
void X509_STORE_set_get_crl(X509_STORE *ctx, X509_STORE_CTX_get_crl_fn get_crl)
int(* X509_STORE_CTX_cleanup_fn)(X509_STORE_CTX *ctx)
Definition x509_vfy.h:80
int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags)
const char * X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param)
X509_NAME * nm
Definition x509_vfy.h:77
int X509_STORE_CTX_get_num_untrusted(X509_STORE_CTX *ctx)
X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(X509_STORE *ctx)
int(*)(X509_LOOKUP *ctx) X509_LOOKUP_meth_get_init(const X509_LOOKUP_METHOD *method)
Definition x509_vfy.h:418
X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(X509_STORE_CTX *ctx)
int(* X509_STORE_CTX_cert_crl_fn)(X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x)
Definition x509_vfy.h:73
X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(X509_STORE *ctx)
int X509_STORE_set_purpose(X509_STORE *ctx, int purpose)
void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c, STACK_OF(X509_CRL) *sk)
void X509_STORE_CTX_set_error_depth(X509_STORE_CTX *ctx, int depth)
void X509_LOOKUP_free(X509_LOOKUP *ctx)
@ X509_LU_NONE
Definition x509_vfy.h:48
@ X509_LU_CRL
Definition x509_vfy.h:49
@ X509_LU_X509
Definition x509_vfy.h:49
void X509_STORE_CTX_set_cert(X509_STORE_CTX *c, X509 *x)
void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify)
int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, const char *ipasc)
int X509_LOOKUP_shutdown(X509_LOOKUP *ctx)
int(*)(X509_LOOKUP *ctx) X509_LOOKUP_meth_get_new_item(const X509_LOOKUP_METHOD *method)
Definition x509_vfy.h:408
X509_STORE_CTX_lookup_crls_fn X509_STORE_CTX_get_lookup_crls(X509_STORE_CTX *ctx)
void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify)
X509_VERIFY_PARAM * X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx)
int(* X509_STORE_CTX_check_issued_fn)(X509_STORE_CTX *ctx, X509 *x, X509 *issuer)
Definition x509_vfy.h:67
int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, unsigned long flags)
int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust)
X509_LOOKUP * X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m)
void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth)
int X509_STORE_load_locations(X509_STORE *ctx, const char *file, const char *dir)
X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(X509_STORE_CTX *ctx)
int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data)
int X509_STORE_add_cert(X509_STORE *ctx, X509 *x)
X509_STORE * X509_STORE_new(void)
void X509_OBJECT_free(X509_OBJECT *a)
X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(X509_STORE_CTX *ctx)
void X509_STORE_CTX_free(X509_STORE_CTX *ctx)
X509_LOOKUP_get_by_fingerprint_fn X509_LOOKUP_meth_get_get_by_fingerprint(const X509_LOOKUP_METHOD *method)
int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj)
X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(X509_STORE *ctx)
X509_LOOKUP_TYPE X509_OBJECT_get_type(const X509_OBJECT *a)
X509_STORE * X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx)
void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk)
X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(X509_STORE_CTX *ctx)
int X509_LOOKUP_meth_set_get_by_issuer_serial(X509_LOOKUP_METHOD *method, X509_LOOKUP_get_by_issuer_serial_fn fn)
X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(X509_STORE_CTX *ctx)
X509_STORE * X509_LOOKUP_get_store(const X509_LOOKUP *ctx)
X509_LOOKUP_METHOD * X509_LOOKUP_meth_new(const char *name)
unsigned long X509_VERIFY_PARAM_get_flags(X509_VERIFY_PARAM *param)
int X509_LOOKUP_init(X509_LOOKUP *ctx)
void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx)
X509_LOOKUP_get_by_subject_fn X509_LOOKUP_meth_get_get_by_subject(const X509_LOOKUP_METHOD *method)
void X509_VERIFY_PARAM_table_cleanup(void)
X509_CRL * X509_STORE_CTX_get0_current_crl(X509_STORE_CTX *ctx)
int(* X509_STORE_CTX_verify_fn)(X509_STORE_CTX *)
Definition x509_vfy.h:64
X509 * X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx)
void * X509_STORE_get_ex_data(X509_STORE *ctx, int idx)
void X509_STORE_set_check_revocation(X509_STORE *ctx, X509_STORE_CTX_check_revocation_fn check_revocation)
X509_STORE_CTX * X509_STORE_CTX_new(void)
X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias(const X509_LOOKUP_METHOD *method)
X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(X509_STORE *ctx)
void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk)
void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level)
void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param)
int(* X509_STORE_CTX_check_revocation_fn)(X509_STORE_CTX *ctx)
Definition x509_vfy.h:69
X509_STORE_CTX_verify_fn X509_STORE_get_verify(X509_STORE *ctx)
X509_STORE_CTX_lookup_certs_fn X509_STORE_CTX_get_lookup_certs(X509_STORE_CTX *ctx)
X509_LOOKUP_get_by_issuer_serial_fn X509_LOOKUP_meth_get_get_by_issuer_serial(const X509_LOOKUP_METHOD *method)
int X509_LOOKUP_meth_set_init(X509_LOOKUP_METHOD *method, int(*init)(X509_LOOKUP *ctx))
int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, X509_NAME *name, ASN1_INTEGER *serial, X509_OBJECT *ret)
int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, X509 *x509, STACK_OF(X509) *chain)
int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj)
int X509_STORE_set_depth(X509_STORE *store, int depth)
X509 * X509_OBJECT_get0_X509(const X509_OBJECT *a)
unsigned int X509_VERIFY_PARAM_get_hostflags(const X509_VERIFY_PARAM *param)
int X509_STORE_lock(X509_STORE *ctx)
void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_cb verify)
int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, const char *name, size_t namelen)
void X509_STORE_set_lookup_crls(X509_STORE *ctx, X509_STORE_CTX_lookup_crls_fn lookup_crls)
X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(X509_STORE *ctx)
void * X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx)
int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *pm)
int(* X509_STORE_CTX_get_crl_fn)(X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x)
Definition x509_vfy.h:70
X509 * X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx)
const X509_VERIFY_PARAM * X509_VERIFY_PARAM_get0(int id)
int X509_policy_level_node_count(X509_POLICY_LEVEL *level)
X509_OBJECT * X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h, X509_OBJECT *x)
X509_STORE_CTX * X509_STORE_CTX_get0_parent_ctx(X509_STORE_CTX *ctx)
void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, time_t t)
int X509_OBJECT_up_ref_count(X509_OBJECT *a)
int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x)
void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t)
int X509_LOOKUP_set_method_data(X509_LOOKUP *ctx, void *data)
int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name)
int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param, ASN1_OBJECT *policy)
int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, X509_LOOKUP_TYPE type, X509_NAME *name)
int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type)
void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param)
int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x)
int X509_STORE_up_ref(X509_STORE *v)
int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust)
X509 * X509_STORE_CTX_get0_cert(X509_STORE_CTX *ctx)
void X509_STORE_CTX_set_current_cert(X509_STORE_CTX *ctx, X509 *x)
X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(X509_STORE *ctx)
int(* X509_LOOKUP_get_by_subject_fn)(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, X509_NAME *name, X509_OBJECT *ret)
Definition x509_vfy.h:383
int X509_LOOKUP_meth_set_get_by_alias(X509_LOOKUP_METHOD *method, X509_LOOKUP_get_by_alias_fn fn)
X509_STORE_CTX_check_policy_fn X509_STORE_CTX_get_check_policy(X509_STORE_CTX *ctx)
X509_POLICY_TREE * X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx)
int X509_LOOKUP_meth_set_ctrl(X509_LOOKUP_METHOD *method, X509_LOOKUP_ctrl_fn ctrl_fn)
uint32_t X509_VERIFY_PARAM_get_inh_flags(const X509_VERIFY_PARAM *param)
int X509_policy_tree_level_count(const X509_POLICY_TREE *tree)
X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(X509_STORE *ctx)
X509_LOOKUP_METHOD * X509_LOOKUP_file(void)
int X509_STORE_set_trust(X509_STORE *ctx, int trust)
X509_OBJECT * X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, X509_NAME *name)
void X509_STORE_set_verify_cb(X509_STORE *ctx, X509_STORE_CTX_verify_cb verify_cb)
void X509_STORE_free(X509_STORE *v)
int X509_LOOKUP_meth_set_free(X509_LOOKUP_METHOD *method, void(*free_fn)(X509_LOOKUP *ctx))
int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to, const X509_VERIFY_PARAM *from)
void X509_STORE_set_check_issued(X509_STORE *ctx, X509_STORE_CTX_check_issued_fn check_issued)
void X509_STORE_set_cert_crl(X509_STORE *ctx, X509_STORE_CTX_cert_crl_fn cert_crl)
int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param)
time_t X509_VERIFY_PARAM_get_time(const X509_VERIFY_PARAM *param)
int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, const unsigned char *ip, size_t iplen)
int(*)(X509_LOOKUP *ctx) X509_LOOKUP_meth_get_shutdown(const X509_LOOKUP_METHOD *method)
Definition x509_vfy.h:423
int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data)
void X509_LOOKUP_meth_free(X509_LOOKUP_METHOD *method)
int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, STACK_OF(ASN1_OBJECT) *policies)
void X509_STORE_CTX_set0_dane(X509_STORE_CTX *ctx, SSL_DANE *dane)
X509_VERIFY_PARAM * X509_VERIFY_PARAM_new(void)
int X509_STORE_set_default_paths(X509_STORE *ctx)
int X509_LOOKUP_meth_set_new_item(X509_LOOKUP_METHOD *method, int(*new_item)(X509_LOOKUP *ctx))
int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, int purpose, int trust)
int X509_LOOKUP_meth_set_get_by_fingerprint(X509_LOOKUP_METHOD *method, X509_LOOKUP_get_by_fingerprint_fn fn)
X509_VERIFY_PARAM * X509_STORE_get0_param(X509_STORE *ctx)
int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type)
#define X509_L_ADD_DIR
Definition x509_vfy.h:91
X509_STORE_CTX_verify_cb X509_STORE_CTX_get_verify_cb(X509_STORE_CTX *ctx)
X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(X509_STORE *ctx)
X509_LOOKUP * X509_LOOKUP_new(X509_LOOKUP_METHOD *method)
#define X509_V_FLAG_INHIBIT_ANY
Definition x509_vfy.h:214
int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, const unsigned char *bytes, int len, X509_OBJECT *ret)
int ERR_load_X509_strings(void)