Missing files.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4556 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
parent
234d597083
commit
dc87c26b99
2
Makefile
2
Makefile
@ -718,7 +718,7 @@ iosdebug-ipa: out/tildefriends-debug.ipa
|
|||||||
iosrelease-ipa: out/tildefriends-release.ipa
|
iosrelease-ipa: out/tildefriends-release.ipa
|
||||||
.PHONY: iossimdebug-app iossimrelease-app iosdebug-app iosrelease-app
|
.PHONY: iossimdebug-app iossimrelease-app iosdebug-app iosrelease-app
|
||||||
|
|
||||||
iosdebuggo: out/tildefriends-iosdebug.app/tildefriends
|
ios%go: out/tildefriends-ios%.app/tildefriends
|
||||||
ideviceinstaller -i $(realpath $(dir $<))
|
ideviceinstaller -i $(realpath $(dir $<))
|
||||||
|
|
||||||
iossimdebuggo: out/tildefriends-iossimdebug.app/tildefriends
|
iossimdebuggo: out/tildefriends-iossimdebug.app/tildefriends
|
||||||
|
22
deps/openssl/mingw64/include/openssl/__DECC_INCLUDE_EPILOGUE.H
vendored
Normal file
22
deps/openssl/mingw64/include/openssl/__DECC_INCLUDE_EPILOGUE.H
vendored
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is only used by HP C/C++ on VMS, and is included automatically
|
||||||
|
* after each header file from this directory
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The C++ compiler doesn't understand these pragmas, even though it
|
||||||
|
* understands the corresponding command line qualifier.
|
||||||
|
*/
|
||||||
|
#ifndef __cplusplus
|
||||||
|
/* restore state. Must correspond to the save in __decc_include_prologue.h */
|
||||||
|
# pragma names restore
|
||||||
|
#endif
|
26
deps/openssl/mingw64/include/openssl/__DECC_INCLUDE_PROLOGUE.H
vendored
Normal file
26
deps/openssl/mingw64/include/openssl/__DECC_INCLUDE_PROLOGUE.H
vendored
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is only used by HP C/C++ on VMS, and is included automatically
|
||||||
|
* after each header file from this directory
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The C++ compiler doesn't understand these pragmas, even though it
|
||||||
|
* understands the corresponding command line qualifier.
|
||||||
|
*/
|
||||||
|
#ifndef __cplusplus
|
||||||
|
/* save state */
|
||||||
|
# pragma names save
|
||||||
|
/* have the compiler shorten symbols larger than 31 chars to 23 chars
|
||||||
|
* followed by a 8 hex char CRC
|
||||||
|
*/
|
||||||
|
# pragma names as_is,shortened
|
||||||
|
#endif
|
964
deps/openssl/mingw64/include/openssl/asn1.h.in
vendored
Normal file
964
deps/openssl/mingw64/include/openssl/asn1.h.in
vendored
Normal file
@ -0,0 +1,964 @@
|
|||||||
|
/*
|
||||||
|
* {- join("\n * ", @autowarntext) -}
|
||||||
|
*
|
||||||
|
* Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
{-
|
||||||
|
use OpenSSL::stackhash qw(generate_stack_macros);
|
||||||
|
-}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_ASN1_H
|
||||||
|
# define OPENSSL_ASN1_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/macros.h>
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# define HEADER_ASN1_H
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
# include <stdio.h>
|
||||||
|
# endif
|
||||||
|
# include <time.h>
|
||||||
|
# include <openssl/e_os2.h>
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
# include <openssl/bio.h>
|
||||||
|
# include <openssl/safestack.h>
|
||||||
|
# include <openssl/asn1err.h>
|
||||||
|
# include <openssl/symhacks.h>
|
||||||
|
|
||||||
|
# include <openssl/types.h>
|
||||||
|
# include <openssl/bn.h>
|
||||||
|
|
||||||
|
# ifdef OPENSSL_BUILD_SHLIBCRYPTO
|
||||||
|
# undef OPENSSL_EXTERN
|
||||||
|
# define OPENSSL_EXTERN OPENSSL_EXPORT
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
# define V_ASN1_UNIVERSAL 0x00
|
||||||
|
# define V_ASN1_APPLICATION 0x40
|
||||||
|
# define V_ASN1_CONTEXT_SPECIFIC 0x80
|
||||||
|
# define V_ASN1_PRIVATE 0xc0
|
||||||
|
|
||||||
|
# define V_ASN1_CONSTRUCTED 0x20
|
||||||
|
# define V_ASN1_PRIMITIVE_TAG 0x1f
|
||||||
|
# define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG
|
||||||
|
|
||||||
|
# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */
|
||||||
|
# define V_ASN1_OTHER -3/* used in ASN1_TYPE */
|
||||||
|
# define V_ASN1_ANY -4/* used in ASN1 template code */
|
||||||
|
|
||||||
|
# define V_ASN1_UNDEF -1
|
||||||
|
/* ASN.1 tag values */
|
||||||
|
# define V_ASN1_EOC 0
|
||||||
|
# define V_ASN1_BOOLEAN 1 /**/
|
||||||
|
# define V_ASN1_INTEGER 2
|
||||||
|
# define V_ASN1_BIT_STRING 3
|
||||||
|
# define V_ASN1_OCTET_STRING 4
|
||||||
|
# define V_ASN1_NULL 5
|
||||||
|
# define V_ASN1_OBJECT 6
|
||||||
|
# define V_ASN1_OBJECT_DESCRIPTOR 7
|
||||||
|
# define V_ASN1_EXTERNAL 8
|
||||||
|
# define V_ASN1_REAL 9
|
||||||
|
# define V_ASN1_ENUMERATED 10
|
||||||
|
# define V_ASN1_UTF8STRING 12
|
||||||
|
# define V_ASN1_SEQUENCE 16
|
||||||
|
# define V_ASN1_SET 17
|
||||||
|
# define V_ASN1_NUMERICSTRING 18 /**/
|
||||||
|
# define V_ASN1_PRINTABLESTRING 19
|
||||||
|
# define V_ASN1_T61STRING 20
|
||||||
|
# define V_ASN1_TELETEXSTRING 20/* alias */
|
||||||
|
# define V_ASN1_VIDEOTEXSTRING 21 /**/
|
||||||
|
# define V_ASN1_IA5STRING 22
|
||||||
|
# define V_ASN1_UTCTIME 23
|
||||||
|
# define V_ASN1_GENERALIZEDTIME 24 /**/
|
||||||
|
# define V_ASN1_GRAPHICSTRING 25 /**/
|
||||||
|
# define V_ASN1_ISO64STRING 26 /**/
|
||||||
|
# define V_ASN1_VISIBLESTRING 26/* alias */
|
||||||
|
# define V_ASN1_GENERALSTRING 27 /**/
|
||||||
|
# define V_ASN1_UNIVERSALSTRING 28 /**/
|
||||||
|
# define V_ASN1_BMPSTRING 30
|
||||||
|
|
||||||
|
/*
|
||||||
|
* NB the constants below are used internally by ASN1_INTEGER
|
||||||
|
* and ASN1_ENUMERATED to indicate the sign. They are *not* on
|
||||||
|
* the wire tag values.
|
||||||
|
*/
|
||||||
|
|
||||||
|
# define V_ASN1_NEG 0x100
|
||||||
|
# define V_ASN1_NEG_INTEGER (2 | V_ASN1_NEG)
|
||||||
|
# define V_ASN1_NEG_ENUMERATED (10 | V_ASN1_NEG)
|
||||||
|
|
||||||
|
/* For use with d2i_ASN1_type_bytes() */
|
||||||
|
# define B_ASN1_NUMERICSTRING 0x0001
|
||||||
|
# define B_ASN1_PRINTABLESTRING 0x0002
|
||||||
|
# define B_ASN1_T61STRING 0x0004
|
||||||
|
# define B_ASN1_TELETEXSTRING 0x0004
|
||||||
|
# define B_ASN1_VIDEOTEXSTRING 0x0008
|
||||||
|
# define B_ASN1_IA5STRING 0x0010
|
||||||
|
# define B_ASN1_GRAPHICSTRING 0x0020
|
||||||
|
# define B_ASN1_ISO64STRING 0x0040
|
||||||
|
# define B_ASN1_VISIBLESTRING 0x0040
|
||||||
|
# define B_ASN1_GENERALSTRING 0x0080
|
||||||
|
# define B_ASN1_UNIVERSALSTRING 0x0100
|
||||||
|
# define B_ASN1_OCTET_STRING 0x0200
|
||||||
|
# define B_ASN1_BIT_STRING 0x0400
|
||||||
|
# define B_ASN1_BMPSTRING 0x0800
|
||||||
|
# define B_ASN1_UNKNOWN 0x1000
|
||||||
|
# define B_ASN1_UTF8STRING 0x2000
|
||||||
|
# define B_ASN1_UTCTIME 0x4000
|
||||||
|
# define B_ASN1_GENERALIZEDTIME 0x8000
|
||||||
|
# define B_ASN1_SEQUENCE 0x10000
|
||||||
|
/* For use with ASN1_mbstring_copy() */
|
||||||
|
# define MBSTRING_FLAG 0x1000
|
||||||
|
# define MBSTRING_UTF8 (MBSTRING_FLAG)
|
||||||
|
# define MBSTRING_ASC (MBSTRING_FLAG|1)
|
||||||
|
# define MBSTRING_BMP (MBSTRING_FLAG|2)
|
||||||
|
# define MBSTRING_UNIV (MBSTRING_FLAG|4)
|
||||||
|
# define SMIME_OLDMIME 0x400
|
||||||
|
# define SMIME_CRLFEOL 0x800
|
||||||
|
# define SMIME_STREAM 0x1000
|
||||||
|
|
||||||
|
/* Stacks for types not otherwise defined in this header */
|
||||||
|
{-
|
||||||
|
generate_stack_macros("X509_ALGOR");
|
||||||
|
-}
|
||||||
|
|
||||||
|
|
||||||
|
# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */
|
||||||
|
/*
|
||||||
|
* This indicates that the ASN1_STRING is not a real value but just a place
|
||||||
|
* holder for the location where indefinite length constructed data should be
|
||||||
|
* inserted in the memory buffer
|
||||||
|
*/
|
||||||
|
# define ASN1_STRING_FLAG_NDEF 0x010
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This flag is used by the CMS code to indicate that a string is not
|
||||||
|
* complete and is a place holder for content when it had all been accessed.
|
||||||
|
* The flag will be reset when content has been written to it.
|
||||||
|
*/
|
||||||
|
|
||||||
|
# define ASN1_STRING_FLAG_CONT 0x020
|
||||||
|
/*
|
||||||
|
* This flag is used by ASN1 code to indicate an ASN1_STRING is an MSTRING
|
||||||
|
* type.
|
||||||
|
*/
|
||||||
|
# define ASN1_STRING_FLAG_MSTRING 0x040
|
||||||
|
/* String is embedded and only content should be freed */
|
||||||
|
# define ASN1_STRING_FLAG_EMBED 0x080
|
||||||
|
/* String should be parsed in RFC 5280's time format */
|
||||||
|
# define ASN1_STRING_FLAG_X509_TIME 0x100
|
||||||
|
/* This is the base type that holds just about everything :-) */
|
||||||
|
struct asn1_string_st {
|
||||||
|
int length;
|
||||||
|
int type;
|
||||||
|
unsigned char *data;
|
||||||
|
/*
|
||||||
|
* The value of the following field depends on the type being held. It
|
||||||
|
* is mostly being used for BIT_STRING so if the input data has a
|
||||||
|
* non-zero 'unused bits' value, it will be handled correctly
|
||||||
|
*/
|
||||||
|
long flags;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ASN1_ENCODING structure: this is used to save the received encoding of an
|
||||||
|
* ASN1 type. This is useful to get round problems with invalid encodings
|
||||||
|
* which can break signatures.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef struct ASN1_ENCODING_st {
|
||||||
|
unsigned char *enc; /* DER encoding */
|
||||||
|
long len; /* Length of encoding */
|
||||||
|
int modified; /* set to 1 if 'enc' is invalid */
|
||||||
|
} ASN1_ENCODING;
|
||||||
|
|
||||||
|
/* Used with ASN1 LONG type: if a long is set to this it is omitted */
|
||||||
|
# define ASN1_LONG_UNDEF 0x7fffffffL
|
||||||
|
|
||||||
|
# define STABLE_FLAGS_MALLOC 0x01
|
||||||
|
/*
|
||||||
|
* A zero passed to ASN1_STRING_TABLE_new_add for the flags is interpreted
|
||||||
|
* as "don't change" and STABLE_FLAGS_MALLOC is always set. By setting
|
||||||
|
* STABLE_FLAGS_MALLOC only we can clear the existing value. Use the alias
|
||||||
|
* STABLE_FLAGS_CLEAR to reflect this.
|
||||||
|
*/
|
||||||
|
# define STABLE_FLAGS_CLEAR STABLE_FLAGS_MALLOC
|
||||||
|
# define STABLE_NO_MASK 0x02
|
||||||
|
# define DIRSTRING_TYPE \
|
||||||
|
(B_ASN1_PRINTABLESTRING|B_ASN1_T61STRING|B_ASN1_BMPSTRING|B_ASN1_UTF8STRING)
|
||||||
|
# define PKCS9STRING_TYPE (DIRSTRING_TYPE|B_ASN1_IA5STRING)
|
||||||
|
|
||||||
|
struct asn1_string_table_st {
|
||||||
|
int nid;
|
||||||
|
long minsize;
|
||||||
|
long maxsize;
|
||||||
|
unsigned long mask;
|
||||||
|
unsigned long flags;
|
||||||
|
};
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_stack_macros("ASN1_STRING_TABLE");
|
||||||
|
-}
|
||||||
|
|
||||||
|
/* size limits: this stuff is taken straight from RFC2459 */
|
||||||
|
|
||||||
|
# define ub_name 32768
|
||||||
|
# define ub_common_name 64
|
||||||
|
# define ub_locality_name 128
|
||||||
|
# define ub_state_name 128
|
||||||
|
# define ub_organization_name 64
|
||||||
|
# define ub_organization_unit_name 64
|
||||||
|
# define ub_title 64
|
||||||
|
# define ub_email_address 128
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Declarations for template structures: for full definitions see asn1t.h
|
||||||
|
*/
|
||||||
|
typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE;
|
||||||
|
typedef struct ASN1_TLC_st ASN1_TLC;
|
||||||
|
/* This is just an opaque pointer */
|
||||||
|
typedef struct ASN1_VALUE_st ASN1_VALUE;
|
||||||
|
|
||||||
|
/* Declare ASN1 functions: the implement macro in in asn1t.h */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The mysterious 'extern' that's passed to some macros is innocuous,
|
||||||
|
* and is there to quiet pre-C99 compilers that may complain about empty
|
||||||
|
* arguments in macro calls.
|
||||||
|
*/
|
||||||
|
|
||||||
|
# define DECLARE_ASN1_FUNCTIONS_attr(attr, type) \
|
||||||
|
DECLARE_ASN1_FUNCTIONS_name_attr(attr, type, type)
|
||||||
|
# define DECLARE_ASN1_FUNCTIONS(type) \
|
||||||
|
DECLARE_ASN1_FUNCTIONS_attr(extern, type)
|
||||||
|
|
||||||
|
# define DECLARE_ASN1_ALLOC_FUNCTIONS_attr(attr, type) \
|
||||||
|
DECLARE_ASN1_ALLOC_FUNCTIONS_name_attr(attr, type, type)
|
||||||
|
# define DECLARE_ASN1_ALLOC_FUNCTIONS(type) \
|
||||||
|
DECLARE_ASN1_ALLOC_FUNCTIONS_attr(extern, type)
|
||||||
|
|
||||||
|
# define DECLARE_ASN1_FUNCTIONS_name_attr(attr, type, name) \
|
||||||
|
DECLARE_ASN1_ALLOC_FUNCTIONS_name_attr(attr, type, name) \
|
||||||
|
DECLARE_ASN1_ENCODE_FUNCTIONS_name_attr(attr, type, name)
|
||||||
|
# define DECLARE_ASN1_FUNCTIONS_name(type, name) \
|
||||||
|
DECLARE_ASN1_FUNCTIONS_name_attr(extern, type, name)
|
||||||
|
|
||||||
|
# define DECLARE_ASN1_ENCODE_FUNCTIONS_attr(attr, type, itname, name) \
|
||||||
|
DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(attr, type, name) \
|
||||||
|
DECLARE_ASN1_ITEM_attr(attr, itname)
|
||||||
|
# define DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) \
|
||||||
|
DECLARE_ASN1_ENCODE_FUNCTIONS_attr(extern, type, itname, name)
|
||||||
|
|
||||||
|
# define DECLARE_ASN1_ENCODE_FUNCTIONS_name_attr(attr, type, name) \
|
||||||
|
DECLARE_ASN1_ENCODE_FUNCTIONS_attr(attr, type, name, name)
|
||||||
|
# define DECLARE_ASN1_ENCODE_FUNCTIONS_name(type, name) \
|
||||||
|
DECLARE_ASN1_ENCODE_FUNCTIONS_name_attr(extern, type, name)
|
||||||
|
|
||||||
|
# define DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(attr, type, name) \
|
||||||
|
attr type *d2i_##name(type **a, const unsigned char **in, long len); \
|
||||||
|
attr int i2d_##name(const type *a, unsigned char **out);
|
||||||
|
# define DECLARE_ASN1_ENCODE_FUNCTIONS_only(type, name) \
|
||||||
|
DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(extern, type, name)
|
||||||
|
|
||||||
|
# define DECLARE_ASN1_NDEF_FUNCTION_attr(attr, name) \
|
||||||
|
attr int i2d_##name##_NDEF(const name *a, unsigned char **out);
|
||||||
|
# define DECLARE_ASN1_NDEF_FUNCTION(name) \
|
||||||
|
DECLARE_ASN1_NDEF_FUNCTION_attr(extern, name)
|
||||||
|
|
||||||
|
# define DECLARE_ASN1_ALLOC_FUNCTIONS_name_attr(attr, type, name) \
|
||||||
|
attr type *name##_new(void); \
|
||||||
|
attr void name##_free(type *a);
|
||||||
|
# define DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \
|
||||||
|
DECLARE_ASN1_ALLOC_FUNCTIONS_name_attr(extern, type, name)
|
||||||
|
|
||||||
|
# define DECLARE_ASN1_DUP_FUNCTION_attr(attr, type) \
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION_name_attr(attr, type, type)
|
||||||
|
# define DECLARE_ASN1_DUP_FUNCTION(type) \
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION_attr(extern, type)
|
||||||
|
|
||||||
|
# define DECLARE_ASN1_DUP_FUNCTION_name_attr(attr, type, name) \
|
||||||
|
attr type *name##_dup(const type *a);
|
||||||
|
# define DECLARE_ASN1_DUP_FUNCTION_name(type, name) \
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION_name_attr(extern, type, name)
|
||||||
|
|
||||||
|
# define DECLARE_ASN1_PRINT_FUNCTION_attr(attr, stname) \
|
||||||
|
DECLARE_ASN1_PRINT_FUNCTION_fname_attr(attr, stname, stname)
|
||||||
|
# define DECLARE_ASN1_PRINT_FUNCTION(stname) \
|
||||||
|
DECLARE_ASN1_PRINT_FUNCTION_attr(extern, stname)
|
||||||
|
|
||||||
|
# define DECLARE_ASN1_PRINT_FUNCTION_fname_attr(attr, stname, fname) \
|
||||||
|
attr int fname##_print_ctx(BIO *out, const stname *x, int indent, \
|
||||||
|
const ASN1_PCTX *pctx);
|
||||||
|
# define DECLARE_ASN1_PRINT_FUNCTION_fname(stname, fname) \
|
||||||
|
DECLARE_ASN1_PRINT_FUNCTION_fname_attr(extern, stname, fname)
|
||||||
|
|
||||||
|
# define D2I_OF(type) type *(*)(type **,const unsigned char **,long)
|
||||||
|
# define I2D_OF(type) int (*)(const type *,unsigned char **)
|
||||||
|
|
||||||
|
# define CHECKED_D2I_OF(type, d2i) \
|
||||||
|
((d2i_of_void*) (1 ? d2i : ((D2I_OF(type))0)))
|
||||||
|
# define CHECKED_I2D_OF(type, i2d) \
|
||||||
|
((i2d_of_void*) (1 ? i2d : ((I2D_OF(type))0)))
|
||||||
|
# define CHECKED_NEW_OF(type, xnew) \
|
||||||
|
((void *(*)(void)) (1 ? xnew : ((type *(*)(void))0)))
|
||||||
|
# define CHECKED_PTR_OF(type, p) \
|
||||||
|
((void*) (1 ? p : (type*)0))
|
||||||
|
# define CHECKED_PPTR_OF(type, p) \
|
||||||
|
((void**) (1 ? p : (type**)0))
|
||||||
|
|
||||||
|
# define TYPEDEF_D2I_OF(type) typedef type *d2i_of_##type(type **,const unsigned char **,long)
|
||||||
|
# define TYPEDEF_I2D_OF(type) typedef int i2d_of_##type(const type *,unsigned char **)
|
||||||
|
# define TYPEDEF_D2I2D_OF(type) TYPEDEF_D2I_OF(type); TYPEDEF_I2D_OF(type)
|
||||||
|
|
||||||
|
typedef void *d2i_of_void(void **, const unsigned char **, long);
|
||||||
|
typedef int i2d_of_void(const void *, unsigned char **);
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* The following macros and typedefs allow an ASN1_ITEM
|
||||||
|
* to be embedded in a structure and referenced. Since
|
||||||
|
* the ASN1_ITEM pointers need to be globally accessible
|
||||||
|
* (possibly from shared libraries) they may exist in
|
||||||
|
* different forms. On platforms that support it the
|
||||||
|
* ASN1_ITEM structure itself will be globally exported.
|
||||||
|
* Other platforms will export a function that returns
|
||||||
|
* an ASN1_ITEM pointer.
|
||||||
|
*
|
||||||
|
* To handle both cases transparently the macros below
|
||||||
|
* should be used instead of hard coding an ASN1_ITEM
|
||||||
|
* pointer in a structure.
|
||||||
|
*
|
||||||
|
* The structure will look like this:
|
||||||
|
*
|
||||||
|
* typedef struct SOMETHING_st {
|
||||||
|
* ...
|
||||||
|
* ASN1_ITEM_EXP *iptr;
|
||||||
|
* ...
|
||||||
|
* } SOMETHING;
|
||||||
|
*
|
||||||
|
* It would be initialised as e.g.:
|
||||||
|
*
|
||||||
|
* SOMETHING somevar = {...,ASN1_ITEM_ref(X509),...};
|
||||||
|
*
|
||||||
|
* and the actual pointer extracted with:
|
||||||
|
*
|
||||||
|
* const ASN1_ITEM *it = ASN1_ITEM_ptr(somevar.iptr);
|
||||||
|
*
|
||||||
|
* Finally an ASN1_ITEM pointer can be extracted from an
|
||||||
|
* appropriate reference with: ASN1_ITEM_rptr(X509). This
|
||||||
|
* would be used when a function takes an ASN1_ITEM * argument.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Platforms that can't easily handle shared global variables are declared as
|
||||||
|
* functions returning ASN1_ITEM pointers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ASN1_ITEM pointer exported type */
|
||||||
|
typedef const ASN1_ITEM *ASN1_ITEM_EXP (void);
|
||||||
|
|
||||||
|
/* Macro to obtain ASN1_ITEM pointer from exported type */
|
||||||
|
# define ASN1_ITEM_ptr(iptr) (iptr())
|
||||||
|
|
||||||
|
/* Macro to include ASN1_ITEM pointer from base type */
|
||||||
|
# define ASN1_ITEM_ref(iptr) (iptr##_it)
|
||||||
|
|
||||||
|
# define ASN1_ITEM_rptr(ref) (ref##_it())
|
||||||
|
|
||||||
|
# define DECLARE_ASN1_ITEM_attr(attr, name) \
|
||||||
|
attr const ASN1_ITEM * name##_it(void);
|
||||||
|
# define DECLARE_ASN1_ITEM(name) \
|
||||||
|
DECLARE_ASN1_ITEM_attr(extern, name)
|
||||||
|
|
||||||
|
/* Parameters used by ASN1_STRING_print_ex() */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* These determine which characters to escape: RFC2253 special characters,
|
||||||
|
* control characters and MSB set characters
|
||||||
|
*/
|
||||||
|
|
||||||
|
# define ASN1_STRFLGS_ESC_2253 1
|
||||||
|
# define ASN1_STRFLGS_ESC_CTRL 2
|
||||||
|
# define ASN1_STRFLGS_ESC_MSB 4
|
||||||
|
|
||||||
|
/* Lower 8 bits are reserved as an output type specifier */
|
||||||
|
# define ASN1_DTFLGS_TYPE_MASK 0x0FUL
|
||||||
|
# define ASN1_DTFLGS_RFC822 0x00UL
|
||||||
|
# define ASN1_DTFLGS_ISO8601 0x01UL
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This flag determines how we do escaping: normally RC2253 backslash only,
|
||||||
|
* set this to use backslash and quote.
|
||||||
|
*/
|
||||||
|
|
||||||
|
# define ASN1_STRFLGS_ESC_QUOTE 8
|
||||||
|
|
||||||
|
/* These three flags are internal use only. */
|
||||||
|
|
||||||
|
/* Character is a valid PrintableString character */
|
||||||
|
# define CHARTYPE_PRINTABLESTRING 0x10
|
||||||
|
/* Character needs escaping if it is the first character */
|
||||||
|
# define CHARTYPE_FIRST_ESC_2253 0x20
|
||||||
|
/* Character needs escaping if it is the last character */
|
||||||
|
# define CHARTYPE_LAST_ESC_2253 0x40
|
||||||
|
|
||||||
|
/*
|
||||||
|
* NB the internal flags are safely reused below by flags handled at the top
|
||||||
|
* level.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If this is set we convert all character strings to UTF8 first
|
||||||
|
*/
|
||||||
|
|
||||||
|
# define ASN1_STRFLGS_UTF8_CONVERT 0x10
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If this is set we don't attempt to interpret content: just assume all
|
||||||
|
* strings are 1 byte per character. This will produce some pretty odd
|
||||||
|
* looking output!
|
||||||
|
*/
|
||||||
|
|
||||||
|
# define ASN1_STRFLGS_IGNORE_TYPE 0x20
|
||||||
|
|
||||||
|
/* If this is set we include the string type in the output */
|
||||||
|
# define ASN1_STRFLGS_SHOW_TYPE 0x40
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This determines which strings to display and which to 'dump' (hex dump of
|
||||||
|
* content octets or DER encoding). We can only dump non character strings or
|
||||||
|
* everything. If we don't dump 'unknown' they are interpreted as character
|
||||||
|
* strings with 1 octet per character and are subject to the usual escaping
|
||||||
|
* options.
|
||||||
|
*/
|
||||||
|
|
||||||
|
# define ASN1_STRFLGS_DUMP_ALL 0x80
|
||||||
|
# define ASN1_STRFLGS_DUMP_UNKNOWN 0x100
|
||||||
|
|
||||||
|
/*
|
||||||
|
* These determine what 'dumping' does, we can dump the content octets or the
|
||||||
|
* DER encoding: both use the RFC2253 #XXXXX notation.
|
||||||
|
*/
|
||||||
|
|
||||||
|
# define ASN1_STRFLGS_DUMP_DER 0x200
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This flag specifies that RC2254 escaping shall be performed.
|
||||||
|
*/
|
||||||
|
#define ASN1_STRFLGS_ESC_2254 0x400
|
||||||
|
|
||||||
|
/*
|
||||||
|
* All the string flags consistent with RFC2253, escaping control characters
|
||||||
|
* isn't essential in RFC2253 but it is advisable anyway.
|
||||||
|
*/
|
||||||
|
|
||||||
|
# define ASN1_STRFLGS_RFC2253 (ASN1_STRFLGS_ESC_2253 | \
|
||||||
|
ASN1_STRFLGS_ESC_CTRL | \
|
||||||
|
ASN1_STRFLGS_ESC_MSB | \
|
||||||
|
ASN1_STRFLGS_UTF8_CONVERT | \
|
||||||
|
ASN1_STRFLGS_DUMP_UNKNOWN | \
|
||||||
|
ASN1_STRFLGS_DUMP_DER)
|
||||||
|
|
||||||
|
|
||||||
|
struct asn1_type_st {
|
||||||
|
int type;
|
||||||
|
union {
|
||||||
|
char *ptr;
|
||||||
|
ASN1_BOOLEAN boolean;
|
||||||
|
ASN1_STRING *asn1_string;
|
||||||
|
ASN1_OBJECT *object;
|
||||||
|
ASN1_INTEGER *integer;
|
||||||
|
ASN1_ENUMERATED *enumerated;
|
||||||
|
ASN1_BIT_STRING *bit_string;
|
||||||
|
ASN1_OCTET_STRING *octet_string;
|
||||||
|
ASN1_PRINTABLESTRING *printablestring;
|
||||||
|
ASN1_T61STRING *t61string;
|
||||||
|
ASN1_IA5STRING *ia5string;
|
||||||
|
ASN1_GENERALSTRING *generalstring;
|
||||||
|
ASN1_BMPSTRING *bmpstring;
|
||||||
|
ASN1_UNIVERSALSTRING *universalstring;
|
||||||
|
ASN1_UTCTIME *utctime;
|
||||||
|
ASN1_GENERALIZEDTIME *generalizedtime;
|
||||||
|
ASN1_VISIBLESTRING *visiblestring;
|
||||||
|
ASN1_UTF8STRING *utf8string;
|
||||||
|
/*
|
||||||
|
* set and sequence are left complete and still contain the set or
|
||||||
|
* sequence bytes
|
||||||
|
*/
|
||||||
|
ASN1_STRING *set;
|
||||||
|
ASN1_STRING *sequence;
|
||||||
|
ASN1_VALUE *asn1_value;
|
||||||
|
} value;
|
||||||
|
};
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_stack_macros("ASN1_TYPE");
|
||||||
|
-}
|
||||||
|
|
||||||
|
typedef STACK_OF(ASN1_TYPE) ASN1_SEQUENCE_ANY;
|
||||||
|
|
||||||
|
DECLARE_ASN1_ENCODE_FUNCTIONS_name(ASN1_SEQUENCE_ANY, ASN1_SEQUENCE_ANY)
|
||||||
|
DECLARE_ASN1_ENCODE_FUNCTIONS_name(ASN1_SEQUENCE_ANY, ASN1_SET_ANY)
|
||||||
|
|
||||||
|
/* This is used to contain a list of bit names */
|
||||||
|
typedef struct BIT_STRING_BITNAME_st {
|
||||||
|
int bitnum;
|
||||||
|
const char *lname;
|
||||||
|
const char *sname;
|
||||||
|
} BIT_STRING_BITNAME;
|
||||||
|
|
||||||
|
# define B_ASN1_TIME \
|
||||||
|
B_ASN1_UTCTIME | \
|
||||||
|
B_ASN1_GENERALIZEDTIME
|
||||||
|
|
||||||
|
# define B_ASN1_PRINTABLE \
|
||||||
|
B_ASN1_NUMERICSTRING| \
|
||||||
|
B_ASN1_PRINTABLESTRING| \
|
||||||
|
B_ASN1_T61STRING| \
|
||||||
|
B_ASN1_IA5STRING| \
|
||||||
|
B_ASN1_BIT_STRING| \
|
||||||
|
B_ASN1_UNIVERSALSTRING|\
|
||||||
|
B_ASN1_BMPSTRING|\
|
||||||
|
B_ASN1_UTF8STRING|\
|
||||||
|
B_ASN1_SEQUENCE|\
|
||||||
|
B_ASN1_UNKNOWN
|
||||||
|
|
||||||
|
# define B_ASN1_DIRECTORYSTRING \
|
||||||
|
B_ASN1_PRINTABLESTRING| \
|
||||||
|
B_ASN1_TELETEXSTRING|\
|
||||||
|
B_ASN1_BMPSTRING|\
|
||||||
|
B_ASN1_UNIVERSALSTRING|\
|
||||||
|
B_ASN1_UTF8STRING
|
||||||
|
|
||||||
|
# define B_ASN1_DISPLAYTEXT \
|
||||||
|
B_ASN1_IA5STRING| \
|
||||||
|
B_ASN1_VISIBLESTRING| \
|
||||||
|
B_ASN1_BMPSTRING|\
|
||||||
|
B_ASN1_UTF8STRING
|
||||||
|
|
||||||
|
DECLARE_ASN1_ALLOC_FUNCTIONS_name(ASN1_TYPE, ASN1_TYPE)
|
||||||
|
DECLARE_ASN1_ENCODE_FUNCTIONS(ASN1_TYPE, ASN1_ANY, ASN1_TYPE)
|
||||||
|
|
||||||
|
int ASN1_TYPE_get(const ASN1_TYPE *a);
|
||||||
|
void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value);
|
||||||
|
int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value);
|
||||||
|
int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b);
|
||||||
|
|
||||||
|
ASN1_TYPE *ASN1_TYPE_pack_sequence(const ASN1_ITEM *it, void *s, ASN1_TYPE **t);
|
||||||
|
void *ASN1_TYPE_unpack_sequence(const ASN1_ITEM *it, const ASN1_TYPE *t);
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_stack_macros("ASN1_OBJECT");
|
||||||
|
-}
|
||||||
|
|
||||||
|
DECLARE_ASN1_FUNCTIONS(ASN1_OBJECT)
|
||||||
|
|
||||||
|
ASN1_STRING *ASN1_STRING_new(void);
|
||||||
|
void ASN1_STRING_free(ASN1_STRING *a);
|
||||||
|
void ASN1_STRING_clear_free(ASN1_STRING *a);
|
||||||
|
int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str);
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(ASN1_STRING)
|
||||||
|
ASN1_STRING *ASN1_STRING_type_new(int type);
|
||||||
|
int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b);
|
||||||
|
/*
|
||||||
|
* Since this is used to store all sorts of things, via macros, for now,
|
||||||
|
* make its data void *
|
||||||
|
*/
|
||||||
|
int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len);
|
||||||
|
void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len);
|
||||||
|
int ASN1_STRING_length(const ASN1_STRING *x);
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
OSSL_DEPRECATEDIN_3_0 void ASN1_STRING_length_set(ASN1_STRING *x, int n);
|
||||||
|
# endif
|
||||||
|
int ASN1_STRING_type(const ASN1_STRING *x);
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
OSSL_DEPRECATEDIN_1_1_0 unsigned char *ASN1_STRING_data(ASN1_STRING *x);
|
||||||
|
# endif
|
||||||
|
const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x);
|
||||||
|
|
||||||
|
DECLARE_ASN1_FUNCTIONS(ASN1_BIT_STRING)
|
||||||
|
int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, int length);
|
||||||
|
int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value);
|
||||||
|
int ASN1_BIT_STRING_get_bit(const ASN1_BIT_STRING *a, int n);
|
||||||
|
int ASN1_BIT_STRING_check(const ASN1_BIT_STRING *a,
|
||||||
|
const unsigned char *flags, int flags_len);
|
||||||
|
|
||||||
|
int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs,
|
||||||
|
BIT_STRING_BITNAME *tbl, int indent);
|
||||||
|
int ASN1_BIT_STRING_num_asc(const char *name, BIT_STRING_BITNAME *tbl);
|
||||||
|
int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, const char *name, int value,
|
||||||
|
BIT_STRING_BITNAME *tbl);
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_stack_macros("ASN1_INTEGER");
|
||||||
|
-}
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE_ASN1_FUNCTIONS(ASN1_INTEGER)
|
||||||
|
ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp,
|
||||||
|
long length);
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(ASN1_INTEGER)
|
||||||
|
int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y);
|
||||||
|
|
||||||
|
DECLARE_ASN1_FUNCTIONS(ASN1_ENUMERATED)
|
||||||
|
|
||||||
|
int ASN1_UTCTIME_check(const ASN1_UTCTIME *a);
|
||||||
|
ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t);
|
||||||
|
ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t,
|
||||||
|
int offset_day, long offset_sec);
|
||||||
|
int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str);
|
||||||
|
int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t);
|
||||||
|
|
||||||
|
int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a);
|
||||||
|
ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s,
|
||||||
|
time_t t);
|
||||||
|
ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s,
|
||||||
|
time_t t, int offset_day,
|
||||||
|
long offset_sec);
|
||||||
|
int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str);
|
||||||
|
|
||||||
|
int ASN1_TIME_diff(int *pday, int *psec,
|
||||||
|
const ASN1_TIME *from, const ASN1_TIME *to);
|
||||||
|
|
||||||
|
DECLARE_ASN1_FUNCTIONS(ASN1_OCTET_STRING)
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(ASN1_OCTET_STRING)
|
||||||
|
int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a,
|
||||||
|
const ASN1_OCTET_STRING *b);
|
||||||
|
int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data,
|
||||||
|
int len);
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_stack_macros("ASN1_UTF8STRING");
|
||||||
|
-}
|
||||||
|
|
||||||
|
DECLARE_ASN1_FUNCTIONS(ASN1_VISIBLESTRING)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(ASN1_UNIVERSALSTRING)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(ASN1_UTF8STRING)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(ASN1_NULL)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(ASN1_BMPSTRING)
|
||||||
|
|
||||||
|
int UTF8_getc(const unsigned char *str, int len, unsigned long *val);
|
||||||
|
int UTF8_putc(unsigned char *str, int len, unsigned long value);
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_stack_macros("ASN1_GENERALSTRING");
|
||||||
|
-}
|
||||||
|
|
||||||
|
DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, ASN1_PRINTABLE)
|
||||||
|
|
||||||
|
DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DIRECTORYSTRING)
|
||||||
|
DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DISPLAYTEXT)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(ASN1_PRINTABLESTRING)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(ASN1_T61STRING)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(ASN1_IA5STRING)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(ASN1_GENERALSTRING)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(ASN1_UTCTIME)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(ASN1_GENERALIZEDTIME)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(ASN1_TIME)
|
||||||
|
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(ASN1_TIME)
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(ASN1_UTCTIME)
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(ASN1_GENERALIZEDTIME)
|
||||||
|
|
||||||
|
DECLARE_ASN1_ITEM(ASN1_OCTET_STRING_NDEF)
|
||||||
|
|
||||||
|
ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t);
|
||||||
|
ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t,
|
||||||
|
int offset_day, long offset_sec);
|
||||||
|
int ASN1_TIME_check(const ASN1_TIME *t);
|
||||||
|
ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(const ASN1_TIME *t,
|
||||||
|
ASN1_GENERALIZEDTIME **out);
|
||||||
|
int ASN1_TIME_set_string(ASN1_TIME *s, const char *str);
|
||||||
|
int ASN1_TIME_set_string_X509(ASN1_TIME *s, const char *str);
|
||||||
|
int ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm);
|
||||||
|
int ASN1_TIME_normalize(ASN1_TIME *s);
|
||||||
|
int ASN1_TIME_cmp_time_t(const ASN1_TIME *s, time_t t);
|
||||||
|
int ASN1_TIME_compare(const ASN1_TIME *a, const ASN1_TIME *b);
|
||||||
|
|
||||||
|
int i2a_ASN1_INTEGER(BIO *bp, const ASN1_INTEGER *a);
|
||||||
|
int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size);
|
||||||
|
int i2a_ASN1_ENUMERATED(BIO *bp, const ASN1_ENUMERATED *a);
|
||||||
|
int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size);
|
||||||
|
int i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *a);
|
||||||
|
int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size);
|
||||||
|
int i2a_ASN1_STRING(BIO *bp, const ASN1_STRING *a, int type);
|
||||||
|
int i2t_ASN1_OBJECT(char *buf, int buf_len, const ASN1_OBJECT *a);
|
||||||
|
|
||||||
|
int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num);
|
||||||
|
ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data, int len,
|
||||||
|
const char *sn, const char *ln);
|
||||||
|
|
||||||
|
int ASN1_INTEGER_get_int64(int64_t *pr, const ASN1_INTEGER *a);
|
||||||
|
int ASN1_INTEGER_set_int64(ASN1_INTEGER *a, int64_t r);
|
||||||
|
int ASN1_INTEGER_get_uint64(uint64_t *pr, const ASN1_INTEGER *a);
|
||||||
|
int ASN1_INTEGER_set_uint64(ASN1_INTEGER *a, uint64_t r);
|
||||||
|
|
||||||
|
int ASN1_INTEGER_set(ASN1_INTEGER *a, long v);
|
||||||
|
long ASN1_INTEGER_get(const ASN1_INTEGER *a);
|
||||||
|
ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai);
|
||||||
|
BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn);
|
||||||
|
|
||||||
|
int ASN1_ENUMERATED_get_int64(int64_t *pr, const ASN1_ENUMERATED *a);
|
||||||
|
int ASN1_ENUMERATED_set_int64(ASN1_ENUMERATED *a, int64_t r);
|
||||||
|
|
||||||
|
|
||||||
|
int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v);
|
||||||
|
long ASN1_ENUMERATED_get(const ASN1_ENUMERATED *a);
|
||||||
|
ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(const BIGNUM *bn, ASN1_ENUMERATED *ai);
|
||||||
|
BIGNUM *ASN1_ENUMERATED_to_BN(const ASN1_ENUMERATED *ai, BIGNUM *bn);
|
||||||
|
|
||||||
|
/* General */
|
||||||
|
/* given a string, return the correct type, max is the maximum length */
|
||||||
|
int ASN1_PRINTABLE_type(const unsigned char *s, int max);
|
||||||
|
|
||||||
|
unsigned long ASN1_tag2bit(int tag);
|
||||||
|
|
||||||
|
/* SPECIALS */
|
||||||
|
int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag,
|
||||||
|
int *pclass, long omax);
|
||||||
|
int ASN1_check_infinite_end(unsigned char **p, long len);
|
||||||
|
int ASN1_const_check_infinite_end(const unsigned char **p, long len);
|
||||||
|
void ASN1_put_object(unsigned char **pp, int constructed, int length,
|
||||||
|
int tag, int xclass);
|
||||||
|
int ASN1_put_eoc(unsigned char **pp);
|
||||||
|
int ASN1_object_size(int constructed, int length, int tag);
|
||||||
|
|
||||||
|
/* Used to implement other functions */
|
||||||
|
void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, const void *x);
|
||||||
|
|
||||||
|
# define ASN1_dup_of(type,i2d,d2i,x) \
|
||||||
|
((type*)ASN1_dup(CHECKED_I2D_OF(type, i2d), \
|
||||||
|
CHECKED_D2I_OF(type, d2i), \
|
||||||
|
CHECKED_PTR_OF(const type, x)))
|
||||||
|
|
||||||
|
void *ASN1_item_dup(const ASN1_ITEM *it, const void *x);
|
||||||
|
int ASN1_item_sign_ex(const ASN1_ITEM *it, X509_ALGOR *algor1,
|
||||||
|
X509_ALGOR *algor2, ASN1_BIT_STRING *signature,
|
||||||
|
const void *data, const ASN1_OCTET_STRING *id,
|
||||||
|
EVP_PKEY *pkey, const EVP_MD *md, OSSL_LIB_CTX *libctx,
|
||||||
|
const char *propq);
|
||||||
|
int ASN1_item_verify_ex(const ASN1_ITEM *it, const X509_ALGOR *alg,
|
||||||
|
const ASN1_BIT_STRING *signature, const void *data,
|
||||||
|
const ASN1_OCTET_STRING *id, EVP_PKEY *pkey,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
|
||||||
|
/* ASN1 alloc/free macros for when a type is only used internally */
|
||||||
|
|
||||||
|
# define M_ASN1_new_of(type) (type *)ASN1_item_new(ASN1_ITEM_rptr(type))
|
||||||
|
# define M_ASN1_free_of(x, type) \
|
||||||
|
ASN1_item_free(CHECKED_PTR_OF(type, x), ASN1_ITEM_rptr(type))
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
void *ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in, void **x);
|
||||||
|
|
||||||
|
# define ASN1_d2i_fp_of(type,xnew,d2i,in,x) \
|
||||||
|
((type*)ASN1_d2i_fp(CHECKED_NEW_OF(type, xnew), \
|
||||||
|
CHECKED_D2I_OF(type, d2i), \
|
||||||
|
in, \
|
||||||
|
CHECKED_PPTR_OF(type, x)))
|
||||||
|
|
||||||
|
void *ASN1_item_d2i_fp_ex(const ASN1_ITEM *it, FILE *in, void *x,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x);
|
||||||
|
int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, const void *x);
|
||||||
|
|
||||||
|
# define ASN1_i2d_fp_of(type,i2d,out,x) \
|
||||||
|
(ASN1_i2d_fp(CHECKED_I2D_OF(type, i2d), \
|
||||||
|
out, \
|
||||||
|
CHECKED_PTR_OF(const type, x)))
|
||||||
|
|
||||||
|
int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, const void *x);
|
||||||
|
int ASN1_STRING_print_ex_fp(FILE *fp, const ASN1_STRING *str, unsigned long flags);
|
||||||
|
# endif
|
||||||
|
|
||||||
|
int ASN1_STRING_to_UTF8(unsigned char **out, const ASN1_STRING *in);
|
||||||
|
|
||||||
|
void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in, void **x);
|
||||||
|
|
||||||
|
# define ASN1_d2i_bio_of(type,xnew,d2i,in,x) \
|
||||||
|
((type*)ASN1_d2i_bio( CHECKED_NEW_OF(type, xnew), \
|
||||||
|
CHECKED_D2I_OF(type, d2i), \
|
||||||
|
in, \
|
||||||
|
CHECKED_PPTR_OF(type, x)))
|
||||||
|
|
||||||
|
void *ASN1_item_d2i_bio_ex(const ASN1_ITEM *it, BIO *in, void *pval,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *pval);
|
||||||
|
int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, const void *x);
|
||||||
|
|
||||||
|
# define ASN1_i2d_bio_of(type,i2d,out,x) \
|
||||||
|
(ASN1_i2d_bio(CHECKED_I2D_OF(type, i2d), \
|
||||||
|
out, \
|
||||||
|
CHECKED_PTR_OF(const type, x)))
|
||||||
|
|
||||||
|
int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, const void *x);
|
||||||
|
BIO *ASN1_item_i2d_mem_bio(const ASN1_ITEM *it, const ASN1_VALUE *val);
|
||||||
|
int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a);
|
||||||
|
int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a);
|
||||||
|
int ASN1_TIME_print(BIO *bp, const ASN1_TIME *tm);
|
||||||
|
int ASN1_TIME_print_ex(BIO *bp, const ASN1_TIME *tm, unsigned long flags);
|
||||||
|
int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v);
|
||||||
|
int ASN1_STRING_print_ex(BIO *out, const ASN1_STRING *str, unsigned long flags);
|
||||||
|
int ASN1_buf_print(BIO *bp, const unsigned char *buf, size_t buflen, int off);
|
||||||
|
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);
|
||||||
|
int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent,
|
||||||
|
int dump);
|
||||||
|
const char *ASN1_tag2str(int tag);
|
||||||
|
|
||||||
|
/* Used to load and write Netscape format cert */
|
||||||
|
|
||||||
|
int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s);
|
||||||
|
|
||||||
|
int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len);
|
||||||
|
int ASN1_TYPE_get_octetstring(const ASN1_TYPE *a, unsigned char *data, int max_len);
|
||||||
|
int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num,
|
||||||
|
unsigned char *data, int len);
|
||||||
|
int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num,
|
||||||
|
unsigned char *data, int max_len);
|
||||||
|
|
||||||
|
void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it);
|
||||||
|
|
||||||
|
ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it,
|
||||||
|
ASN1_OCTET_STRING **oct);
|
||||||
|
|
||||||
|
void ASN1_STRING_set_default_mask(unsigned long mask);
|
||||||
|
int ASN1_STRING_set_default_mask_asc(const char *p);
|
||||||
|
unsigned long ASN1_STRING_get_default_mask(void);
|
||||||
|
int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len,
|
||||||
|
int inform, unsigned long mask);
|
||||||
|
int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len,
|
||||||
|
int inform, unsigned long mask,
|
||||||
|
long minsize, long maxsize);
|
||||||
|
|
||||||
|
ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out,
|
||||||
|
const unsigned char *in, int inlen,
|
||||||
|
int inform, int nid);
|
||||||
|
ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid);
|
||||||
|
int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long);
|
||||||
|
void ASN1_STRING_TABLE_cleanup(void);
|
||||||
|
|
||||||
|
/* ASN1 template functions */
|
||||||
|
|
||||||
|
/* Old API compatible functions */
|
||||||
|
ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it);
|
||||||
|
ASN1_VALUE *ASN1_item_new_ex(const ASN1_ITEM *it, OSSL_LIB_CTX *libctx,
|
||||||
|
const char *propq);
|
||||||
|
void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it);
|
||||||
|
ASN1_VALUE *ASN1_item_d2i_ex(ASN1_VALUE **val, const unsigned char **in,
|
||||||
|
long len, const ASN1_ITEM *it,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in,
|
||||||
|
long len, const ASN1_ITEM *it);
|
||||||
|
int ASN1_item_i2d(const ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it);
|
||||||
|
int ASN1_item_ndef_i2d(const ASN1_VALUE *val, unsigned char **out,
|
||||||
|
const ASN1_ITEM *it);
|
||||||
|
|
||||||
|
void ASN1_add_oid_module(void);
|
||||||
|
void ASN1_add_stable_module(void);
|
||||||
|
|
||||||
|
ASN1_TYPE *ASN1_generate_nconf(const char *str, CONF *nconf);
|
||||||
|
ASN1_TYPE *ASN1_generate_v3(const char *str, X509V3_CTX *cnf);
|
||||||
|
int ASN1_str2mask(const char *str, unsigned long *pmask);
|
||||||
|
|
||||||
|
/* ASN1 Print flags */
|
||||||
|
|
||||||
|
/* Indicate missing OPTIONAL fields */
|
||||||
|
# define ASN1_PCTX_FLAGS_SHOW_ABSENT 0x001
|
||||||
|
/* Mark start and end of SEQUENCE */
|
||||||
|
# define ASN1_PCTX_FLAGS_SHOW_SEQUENCE 0x002
|
||||||
|
/* Mark start and end of SEQUENCE/SET OF */
|
||||||
|
# define ASN1_PCTX_FLAGS_SHOW_SSOF 0x004
|
||||||
|
/* Show the ASN1 type of primitives */
|
||||||
|
# define ASN1_PCTX_FLAGS_SHOW_TYPE 0x008
|
||||||
|
/* Don't show ASN1 type of ANY */
|
||||||
|
# define ASN1_PCTX_FLAGS_NO_ANY_TYPE 0x010
|
||||||
|
/* Don't show ASN1 type of MSTRINGs */
|
||||||
|
# define ASN1_PCTX_FLAGS_NO_MSTRING_TYPE 0x020
|
||||||
|
/* Don't show field names in SEQUENCE */
|
||||||
|
# define ASN1_PCTX_FLAGS_NO_FIELD_NAME 0x040
|
||||||
|
/* Show structure names of each SEQUENCE field */
|
||||||
|
# define ASN1_PCTX_FLAGS_SHOW_FIELD_STRUCT_NAME 0x080
|
||||||
|
/* Don't show structure name even at top level */
|
||||||
|
# define ASN1_PCTX_FLAGS_NO_STRUCT_NAME 0x100
|
||||||
|
|
||||||
|
int ASN1_item_print(BIO *out, const ASN1_VALUE *ifld, int indent,
|
||||||
|
const ASN1_ITEM *it, const ASN1_PCTX *pctx);
|
||||||
|
ASN1_PCTX *ASN1_PCTX_new(void);
|
||||||
|
void ASN1_PCTX_free(ASN1_PCTX *p);
|
||||||
|
unsigned long ASN1_PCTX_get_flags(const ASN1_PCTX *p);
|
||||||
|
void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags);
|
||||||
|
unsigned long ASN1_PCTX_get_nm_flags(const ASN1_PCTX *p);
|
||||||
|
void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags);
|
||||||
|
unsigned long ASN1_PCTX_get_cert_flags(const ASN1_PCTX *p);
|
||||||
|
void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags);
|
||||||
|
unsigned long ASN1_PCTX_get_oid_flags(const ASN1_PCTX *p);
|
||||||
|
void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags);
|
||||||
|
unsigned long ASN1_PCTX_get_str_flags(const ASN1_PCTX *p);
|
||||||
|
void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags);
|
||||||
|
|
||||||
|
ASN1_SCTX *ASN1_SCTX_new(int (*scan_cb) (ASN1_SCTX *ctx));
|
||||||
|
void ASN1_SCTX_free(ASN1_SCTX *p);
|
||||||
|
const ASN1_ITEM *ASN1_SCTX_get_item(ASN1_SCTX *p);
|
||||||
|
const ASN1_TEMPLATE *ASN1_SCTX_get_template(ASN1_SCTX *p);
|
||||||
|
unsigned long ASN1_SCTX_get_flags(ASN1_SCTX *p);
|
||||||
|
void ASN1_SCTX_set_app_data(ASN1_SCTX *p, void *data);
|
||||||
|
void *ASN1_SCTX_get_app_data(ASN1_SCTX *p);
|
||||||
|
|
||||||
|
const BIO_METHOD *BIO_f_asn1(void);
|
||||||
|
|
||||||
|
/* cannot constify val because of CMS_stream() */
|
||||||
|
BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it);
|
||||||
|
|
||||||
|
int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags,
|
||||||
|
const ASN1_ITEM *it);
|
||||||
|
int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags,
|
||||||
|
const char *hdr, const ASN1_ITEM *it);
|
||||||
|
/* cannot constify val because of CMS_dataFinal() */
|
||||||
|
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);
|
||||||
|
int SMIME_write_ASN1_ex(BIO *bio, ASN1_VALUE *val, BIO *data, int flags,
|
||||||
|
int ctype_nid, int econt_nid,
|
||||||
|
STACK_OF(X509_ALGOR) *mdalgs, const ASN1_ITEM *it,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it);
|
||||||
|
ASN1_VALUE *SMIME_read_ASN1_ex(BIO *bio, int flags, BIO **bcont,
|
||||||
|
const ASN1_ITEM *it, ASN1_VALUE **x,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
int SMIME_crlf_copy(BIO *in, BIO *out, int flags);
|
||||||
|
int SMIME_text(BIO *in, BIO *out);
|
||||||
|
|
||||||
|
const ASN1_ITEM *ASN1_ITEM_lookup(const char *name);
|
||||||
|
const ASN1_ITEM *ASN1_ITEM_get(size_t i);
|
||||||
|
|
||||||
|
/* Legacy compatibility */
|
||||||
|
# define DECLARE_ASN1_FUNCTIONS_fname(type, itname, name) \
|
||||||
|
DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \
|
||||||
|
DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name)
|
||||||
|
# define DECLARE_ASN1_FUNCTIONS_const(type) DECLARE_ASN1_FUNCTIONS(type)
|
||||||
|
# define DECLARE_ASN1_ENCODE_FUNCTIONS_const(type, name) \
|
||||||
|
DECLARE_ASN1_ENCODE_FUNCTIONS(type, name)
|
||||||
|
# define I2D_OF_const(type) I2D_OF(type)
|
||||||
|
# define ASN1_dup_of_const(type,i2d,d2i,x) ASN1_dup_of(type,i2d,d2i,x)
|
||||||
|
# define ASN1_i2d_fp_of_const(type,i2d,out,x) ASN1_i2d_fp_of(type,i2d,out,x)
|
||||||
|
# define ASN1_i2d_bio_of_const(type,i2d,out,x) ASN1_i2d_bio_of(type,i2d,out,x)
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
#endif
|
923
deps/openssl/mingw64/include/openssl/asn1t.h.in
vendored
Normal file
923
deps/openssl/mingw64/include/openssl/asn1t.h.in
vendored
Normal file
@ -0,0 +1,923 @@
|
|||||||
|
/*
|
||||||
|
* {- join("\n * ", @autowarntext) -}
|
||||||
|
*
|
||||||
|
* Copyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
{-
|
||||||
|
use OpenSSL::stackhash qw(generate_stack_macros);
|
||||||
|
-}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_ASN1T_H
|
||||||
|
# define OPENSSL_ASN1T_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/macros.h>
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# define HEADER_ASN1T_H
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# include <stddef.h>
|
||||||
|
# include <openssl/e_os2.h>
|
||||||
|
# include <openssl/asn1.h>
|
||||||
|
|
||||||
|
# ifdef OPENSSL_BUILD_SHLIBCRYPTO
|
||||||
|
# undef OPENSSL_EXTERN
|
||||||
|
# define OPENSSL_EXTERN OPENSSL_EXPORT
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/* ASN1 template defines, structures and functions */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* These are the possible values for the itype field of the
|
||||||
|
* ASN1_ITEM structure and determine how it is interpreted.
|
||||||
|
*
|
||||||
|
* For PRIMITIVE types the underlying type
|
||||||
|
* determines the behaviour if items is NULL.
|
||||||
|
*
|
||||||
|
* Otherwise templates must contain a single
|
||||||
|
* template and the type is treated in the
|
||||||
|
* same way as the type specified in the template.
|
||||||
|
*
|
||||||
|
* For SEQUENCE types the templates field points
|
||||||
|
* to the members, the size field is the
|
||||||
|
* structure size.
|
||||||
|
*
|
||||||
|
* For CHOICE types the templates field points
|
||||||
|
* to each possible member (typically a union)
|
||||||
|
* and the 'size' field is the offset of the
|
||||||
|
* selector.
|
||||||
|
*
|
||||||
|
* The 'funcs' field is used for application-specific
|
||||||
|
* data and functions.
|
||||||
|
*
|
||||||
|
* The EXTERN type uses a new style d2i/i2d.
|
||||||
|
* The new style should be used where possible
|
||||||
|
* because it avoids things like the d2i IMPLICIT
|
||||||
|
* hack.
|
||||||
|
*
|
||||||
|
* MSTRING is a multiple string type, it is used
|
||||||
|
* for a CHOICE of character strings where the
|
||||||
|
* actual strings all occupy an ASN1_STRING
|
||||||
|
* structure. In this case the 'utype' field
|
||||||
|
* has a special meaning, it is used as a mask
|
||||||
|
* of acceptable types using the B_ASN1 constants.
|
||||||
|
*
|
||||||
|
* NDEF_SEQUENCE is the same as SEQUENCE except
|
||||||
|
* that it will use indefinite length constructed
|
||||||
|
* encoding if requested.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
# define ASN1_ITYPE_PRIMITIVE 0x0
|
||||||
|
# define ASN1_ITYPE_SEQUENCE 0x1
|
||||||
|
# define ASN1_ITYPE_CHOICE 0x2
|
||||||
|
/* unused value 0x3 */
|
||||||
|
# define ASN1_ITYPE_EXTERN 0x4
|
||||||
|
# define ASN1_ITYPE_MSTRING 0x5
|
||||||
|
# define ASN1_ITYPE_NDEF_SEQUENCE 0x6
|
||||||
|
|
||||||
|
/* Macro to obtain ASN1_ADB pointer from a type (only used internally) */
|
||||||
|
# define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)((iptr)()))
|
||||||
|
|
||||||
|
/* Macros for start and end of ASN1_ITEM definition */
|
||||||
|
|
||||||
|
# define ASN1_ITEM_start(itname) \
|
||||||
|
const ASN1_ITEM * itname##_it(void) \
|
||||||
|
{ \
|
||||||
|
static const ASN1_ITEM local_it = {
|
||||||
|
|
||||||
|
# define static_ASN1_ITEM_start(itname) \
|
||||||
|
static ASN1_ITEM_start(itname)
|
||||||
|
|
||||||
|
# define ASN1_ITEM_end(itname) \
|
||||||
|
}; \
|
||||||
|
return &local_it; \
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Macros to aid ASN1 template writing */
|
||||||
|
|
||||||
|
# define ASN1_ITEM_TEMPLATE(tname) \
|
||||||
|
static const ASN1_TEMPLATE tname##_item_tt
|
||||||
|
|
||||||
|
# define ASN1_ITEM_TEMPLATE_END(tname) \
|
||||||
|
;\
|
||||||
|
ASN1_ITEM_start(tname) \
|
||||||
|
ASN1_ITYPE_PRIMITIVE,\
|
||||||
|
-1,\
|
||||||
|
&tname##_item_tt,\
|
||||||
|
0,\
|
||||||
|
NULL,\
|
||||||
|
0,\
|
||||||
|
#tname \
|
||||||
|
ASN1_ITEM_end(tname)
|
||||||
|
# define static_ASN1_ITEM_TEMPLATE_END(tname) \
|
||||||
|
;\
|
||||||
|
static_ASN1_ITEM_start(tname) \
|
||||||
|
ASN1_ITYPE_PRIMITIVE,\
|
||||||
|
-1,\
|
||||||
|
&tname##_item_tt,\
|
||||||
|
0,\
|
||||||
|
NULL,\
|
||||||
|
0,\
|
||||||
|
#tname \
|
||||||
|
ASN1_ITEM_end(tname)
|
||||||
|
|
||||||
|
/* This is a ASN1 type which just embeds a template */
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* This pair helps declare a SEQUENCE. We can do:
|
||||||
|
*
|
||||||
|
* ASN1_SEQUENCE(stname) = {
|
||||||
|
* ... SEQUENCE components ...
|
||||||
|
* } ASN1_SEQUENCE_END(stname)
|
||||||
|
*
|
||||||
|
* This will produce an ASN1_ITEM called stname_it
|
||||||
|
* for a structure called stname.
|
||||||
|
*
|
||||||
|
* If you want the same structure but a different
|
||||||
|
* name then use:
|
||||||
|
*
|
||||||
|
* ASN1_SEQUENCE(itname) = {
|
||||||
|
* ... SEQUENCE components ...
|
||||||
|
* } ASN1_SEQUENCE_END_name(stname, itname)
|
||||||
|
*
|
||||||
|
* This will create an item called itname_it using
|
||||||
|
* a structure called stname.
|
||||||
|
*/
|
||||||
|
|
||||||
|
# define ASN1_SEQUENCE(tname) \
|
||||||
|
static const ASN1_TEMPLATE tname##_seq_tt[]
|
||||||
|
|
||||||
|
# define ASN1_SEQUENCE_END(stname) ASN1_SEQUENCE_END_name(stname, stname)
|
||||||
|
|
||||||
|
# define static_ASN1_SEQUENCE_END(stname) static_ASN1_SEQUENCE_END_name(stname, stname)
|
||||||
|
|
||||||
|
# define ASN1_SEQUENCE_END_name(stname, tname) \
|
||||||
|
;\
|
||||||
|
ASN1_ITEM_start(tname) \
|
||||||
|
ASN1_ITYPE_SEQUENCE,\
|
||||||
|
V_ASN1_SEQUENCE,\
|
||||||
|
tname##_seq_tt,\
|
||||||
|
sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\
|
||||||
|
NULL,\
|
||||||
|
sizeof(stname),\
|
||||||
|
#tname \
|
||||||
|
ASN1_ITEM_end(tname)
|
||||||
|
|
||||||
|
# define static_ASN1_SEQUENCE_END_name(stname, tname) \
|
||||||
|
;\
|
||||||
|
static_ASN1_ITEM_start(tname) \
|
||||||
|
ASN1_ITYPE_SEQUENCE,\
|
||||||
|
V_ASN1_SEQUENCE,\
|
||||||
|
tname##_seq_tt,\
|
||||||
|
sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\
|
||||||
|
NULL,\
|
||||||
|
sizeof(stname),\
|
||||||
|
#stname \
|
||||||
|
ASN1_ITEM_end(tname)
|
||||||
|
|
||||||
|
# define ASN1_NDEF_SEQUENCE(tname) \
|
||||||
|
ASN1_SEQUENCE(tname)
|
||||||
|
|
||||||
|
# define ASN1_NDEF_SEQUENCE_cb(tname, cb) \
|
||||||
|
ASN1_SEQUENCE_cb(tname, cb)
|
||||||
|
|
||||||
|
# define ASN1_SEQUENCE_cb(tname, cb) \
|
||||||
|
static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0, NULL}; \
|
||||||
|
ASN1_SEQUENCE(tname)
|
||||||
|
|
||||||
|
# define ASN1_SEQUENCE_const_cb(tname, const_cb) \
|
||||||
|
static const ASN1_AUX tname##_aux = \
|
||||||
|
{NULL, ASN1_AFLG_CONST_CB, 0, 0, NULL, 0, const_cb}; \
|
||||||
|
ASN1_SEQUENCE(tname)
|
||||||
|
|
||||||
|
# define ASN1_SEQUENCE_cb_const_cb(tname, cb, const_cb) \
|
||||||
|
static const ASN1_AUX tname##_aux = \
|
||||||
|
{NULL, ASN1_AFLG_CONST_CB, 0, 0, cb, 0, const_cb}; \
|
||||||
|
ASN1_SEQUENCE(tname)
|
||||||
|
|
||||||
|
# define ASN1_SEQUENCE_ref(tname, cb) \
|
||||||
|
static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_REFCOUNT, offsetof(tname, references), offsetof(tname, lock), cb, 0, NULL}; \
|
||||||
|
ASN1_SEQUENCE(tname)
|
||||||
|
|
||||||
|
# define ASN1_SEQUENCE_enc(tname, enc, cb) \
|
||||||
|
static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_ENCODING, 0, 0, cb, offsetof(tname, enc), NULL}; \
|
||||||
|
ASN1_SEQUENCE(tname)
|
||||||
|
|
||||||
|
# define ASN1_NDEF_SEQUENCE_END(tname) \
|
||||||
|
;\
|
||||||
|
ASN1_ITEM_start(tname) \
|
||||||
|
ASN1_ITYPE_NDEF_SEQUENCE,\
|
||||||
|
V_ASN1_SEQUENCE,\
|
||||||
|
tname##_seq_tt,\
|
||||||
|
sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\
|
||||||
|
NULL,\
|
||||||
|
sizeof(tname),\
|
||||||
|
#tname \
|
||||||
|
ASN1_ITEM_end(tname)
|
||||||
|
# define static_ASN1_NDEF_SEQUENCE_END(tname) \
|
||||||
|
;\
|
||||||
|
static_ASN1_ITEM_start(tname) \
|
||||||
|
ASN1_ITYPE_NDEF_SEQUENCE,\
|
||||||
|
V_ASN1_SEQUENCE,\
|
||||||
|
tname##_seq_tt,\
|
||||||
|
sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\
|
||||||
|
NULL,\
|
||||||
|
sizeof(tname),\
|
||||||
|
#tname \
|
||||||
|
ASN1_ITEM_end(tname)
|
||||||
|
|
||||||
|
|
||||||
|
# define ASN1_SEQUENCE_END_enc(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname)
|
||||||
|
|
||||||
|
# define ASN1_SEQUENCE_END_cb(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname)
|
||||||
|
# define static_ASN1_SEQUENCE_END_cb(stname, tname) static_ASN1_SEQUENCE_END_ref(stname, tname)
|
||||||
|
|
||||||
|
# define ASN1_SEQUENCE_END_ref(stname, tname) \
|
||||||
|
;\
|
||||||
|
ASN1_ITEM_start(tname) \
|
||||||
|
ASN1_ITYPE_SEQUENCE,\
|
||||||
|
V_ASN1_SEQUENCE,\
|
||||||
|
tname##_seq_tt,\
|
||||||
|
sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\
|
||||||
|
&tname##_aux,\
|
||||||
|
sizeof(stname),\
|
||||||
|
#tname \
|
||||||
|
ASN1_ITEM_end(tname)
|
||||||
|
# define static_ASN1_SEQUENCE_END_ref(stname, tname) \
|
||||||
|
;\
|
||||||
|
static_ASN1_ITEM_start(tname) \
|
||||||
|
ASN1_ITYPE_SEQUENCE,\
|
||||||
|
V_ASN1_SEQUENCE,\
|
||||||
|
tname##_seq_tt,\
|
||||||
|
sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\
|
||||||
|
&tname##_aux,\
|
||||||
|
sizeof(stname),\
|
||||||
|
#stname \
|
||||||
|
ASN1_ITEM_end(tname)
|
||||||
|
|
||||||
|
# define ASN1_NDEF_SEQUENCE_END_cb(stname, tname) \
|
||||||
|
;\
|
||||||
|
ASN1_ITEM_start(tname) \
|
||||||
|
ASN1_ITYPE_NDEF_SEQUENCE,\
|
||||||
|
V_ASN1_SEQUENCE,\
|
||||||
|
tname##_seq_tt,\
|
||||||
|
sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\
|
||||||
|
&tname##_aux,\
|
||||||
|
sizeof(stname),\
|
||||||
|
#stname \
|
||||||
|
ASN1_ITEM_end(tname)
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* This pair helps declare a CHOICE type. We can do:
|
||||||
|
*
|
||||||
|
* ASN1_CHOICE(chname) = {
|
||||||
|
* ... CHOICE options ...
|
||||||
|
* ASN1_CHOICE_END(chname)
|
||||||
|
*
|
||||||
|
* This will produce an ASN1_ITEM called chname_it
|
||||||
|
* for a structure called chname. The structure
|
||||||
|
* definition must look like this:
|
||||||
|
* typedef struct {
|
||||||
|
* int type;
|
||||||
|
* union {
|
||||||
|
* ASN1_SOMETHING *opt1;
|
||||||
|
* ASN1_SOMEOTHER *opt2;
|
||||||
|
* } value;
|
||||||
|
* } chname;
|
||||||
|
*
|
||||||
|
* the name of the selector must be 'type'.
|
||||||
|
* to use an alternative selector name use the
|
||||||
|
* ASN1_CHOICE_END_selector() version.
|
||||||
|
*/
|
||||||
|
|
||||||
|
# define ASN1_CHOICE(tname) \
|
||||||
|
static const ASN1_TEMPLATE tname##_ch_tt[]
|
||||||
|
|
||||||
|
# define ASN1_CHOICE_cb(tname, cb) \
|
||||||
|
static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0, NULL}; \
|
||||||
|
ASN1_CHOICE(tname)
|
||||||
|
|
||||||
|
# define ASN1_CHOICE_END(stname) ASN1_CHOICE_END_name(stname, stname)
|
||||||
|
|
||||||
|
# define static_ASN1_CHOICE_END(stname) static_ASN1_CHOICE_END_name(stname, stname)
|
||||||
|
|
||||||
|
# define ASN1_CHOICE_END_name(stname, tname) ASN1_CHOICE_END_selector(stname, tname, type)
|
||||||
|
|
||||||
|
# define static_ASN1_CHOICE_END_name(stname, tname) static_ASN1_CHOICE_END_selector(stname, tname, type)
|
||||||
|
|
||||||
|
# define ASN1_CHOICE_END_selector(stname, tname, selname) \
|
||||||
|
;\
|
||||||
|
ASN1_ITEM_start(tname) \
|
||||||
|
ASN1_ITYPE_CHOICE,\
|
||||||
|
offsetof(stname,selname) ,\
|
||||||
|
tname##_ch_tt,\
|
||||||
|
sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\
|
||||||
|
NULL,\
|
||||||
|
sizeof(stname),\
|
||||||
|
#stname \
|
||||||
|
ASN1_ITEM_end(tname)
|
||||||
|
|
||||||
|
# define static_ASN1_CHOICE_END_selector(stname, tname, selname) \
|
||||||
|
;\
|
||||||
|
static_ASN1_ITEM_start(tname) \
|
||||||
|
ASN1_ITYPE_CHOICE,\
|
||||||
|
offsetof(stname,selname) ,\
|
||||||
|
tname##_ch_tt,\
|
||||||
|
sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\
|
||||||
|
NULL,\
|
||||||
|
sizeof(stname),\
|
||||||
|
#stname \
|
||||||
|
ASN1_ITEM_end(tname)
|
||||||
|
|
||||||
|
# define ASN1_CHOICE_END_cb(stname, tname, selname) \
|
||||||
|
;\
|
||||||
|
ASN1_ITEM_start(tname) \
|
||||||
|
ASN1_ITYPE_CHOICE,\
|
||||||
|
offsetof(stname,selname) ,\
|
||||||
|
tname##_ch_tt,\
|
||||||
|
sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\
|
||||||
|
&tname##_aux,\
|
||||||
|
sizeof(stname),\
|
||||||
|
#stname \
|
||||||
|
ASN1_ITEM_end(tname)
|
||||||
|
|
||||||
|
/* This helps with the template wrapper form of ASN1_ITEM */
|
||||||
|
|
||||||
|
# define ASN1_EX_TEMPLATE_TYPE(flags, tag, name, type) { \
|
||||||
|
(flags), (tag), 0,\
|
||||||
|
#name, ASN1_ITEM_ref(type) }
|
||||||
|
|
||||||
|
/* These help with SEQUENCE or CHOICE components */
|
||||||
|
|
||||||
|
/* used to declare other types */
|
||||||
|
|
||||||
|
# define ASN1_EX_TYPE(flags, tag, stname, field, type) { \
|
||||||
|
(flags), (tag), offsetof(stname, field),\
|
||||||
|
#field, ASN1_ITEM_ref(type) }
|
||||||
|
|
||||||
|
/* implicit and explicit helper macros */
|
||||||
|
|
||||||
|
# define ASN1_IMP_EX(stname, field, type, tag, ex) \
|
||||||
|
ASN1_EX_TYPE(ASN1_TFLG_IMPLICIT | (ex), tag, stname, field, type)
|
||||||
|
|
||||||
|
# define ASN1_EXP_EX(stname, field, type, tag, ex) \
|
||||||
|
ASN1_EX_TYPE(ASN1_TFLG_EXPLICIT | (ex), tag, stname, field, type)
|
||||||
|
|
||||||
|
/* Any defined by macros: the field used is in the table itself */
|
||||||
|
|
||||||
|
# define ASN1_ADB_OBJECT(tblname) { ASN1_TFLG_ADB_OID, -1, 0, #tblname, tblname##_adb }
|
||||||
|
# define ASN1_ADB_INTEGER(tblname) { ASN1_TFLG_ADB_INT, -1, 0, #tblname, tblname##_adb }
|
||||||
|
|
||||||
|
/* Plain simple type */
|
||||||
|
# define ASN1_SIMPLE(stname, field, type) ASN1_EX_TYPE(0,0, stname, field, type)
|
||||||
|
/* Embedded simple type */
|
||||||
|
# define ASN1_EMBED(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_EMBED,0, stname, field, type)
|
||||||
|
|
||||||
|
/* OPTIONAL simple type */
|
||||||
|
# define ASN1_OPT(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL, 0, stname, field, type)
|
||||||
|
# define ASN1_OPT_EMBED(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED, 0, stname, field, type)
|
||||||
|
|
||||||
|
/* IMPLICIT tagged simple type */
|
||||||
|
# define ASN1_IMP(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, 0)
|
||||||
|
# define ASN1_IMP_EMBED(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_EMBED)
|
||||||
|
|
||||||
|
/* IMPLICIT tagged OPTIONAL simple type */
|
||||||
|
# define ASN1_IMP_OPT(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL)
|
||||||
|
# define ASN1_IMP_OPT_EMBED(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED)
|
||||||
|
|
||||||
|
/* Same as above but EXPLICIT */
|
||||||
|
|
||||||
|
# define ASN1_EXP(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, 0)
|
||||||
|
# define ASN1_EXP_EMBED(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_EMBED)
|
||||||
|
# define ASN1_EXP_OPT(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL)
|
||||||
|
# define ASN1_EXP_OPT_EMBED(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED)
|
||||||
|
|
||||||
|
/* SEQUENCE OF type */
|
||||||
|
# define ASN1_SEQUENCE_OF(stname, field, type) \
|
||||||
|
ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, stname, field, type)
|
||||||
|
|
||||||
|
/* OPTIONAL SEQUENCE OF */
|
||||||
|
# define ASN1_SEQUENCE_OF_OPT(stname, field, type) \
|
||||||
|
ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type)
|
||||||
|
|
||||||
|
/* Same as above but for SET OF */
|
||||||
|
|
||||||
|
# define ASN1_SET_OF(stname, field, type) \
|
||||||
|
ASN1_EX_TYPE(ASN1_TFLG_SET_OF, 0, stname, field, type)
|
||||||
|
|
||||||
|
# define ASN1_SET_OF_OPT(stname, field, type) \
|
||||||
|
ASN1_EX_TYPE(ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type)
|
||||||
|
|
||||||
|
/* Finally compound types of SEQUENCE, SET, IMPLICIT, EXPLICIT and OPTIONAL */
|
||||||
|
|
||||||
|
# define ASN1_IMP_SET_OF(stname, field, type, tag) \
|
||||||
|
ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF)
|
||||||
|
|
||||||
|
# define ASN1_EXP_SET_OF(stname, field, type, tag) \
|
||||||
|
ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF)
|
||||||
|
|
||||||
|
# define ASN1_IMP_SET_OF_OPT(stname, field, type, tag) \
|
||||||
|
ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL)
|
||||||
|
|
||||||
|
# define ASN1_EXP_SET_OF_OPT(stname, field, type, tag) \
|
||||||
|
ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL)
|
||||||
|
|
||||||
|
# define ASN1_IMP_SEQUENCE_OF(stname, field, type, tag) \
|
||||||
|
ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF)
|
||||||
|
|
||||||
|
# define ASN1_IMP_SEQUENCE_OF_OPT(stname, field, type, tag) \
|
||||||
|
ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL)
|
||||||
|
|
||||||
|
# define ASN1_EXP_SEQUENCE_OF(stname, field, type, tag) \
|
||||||
|
ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF)
|
||||||
|
|
||||||
|
# define ASN1_EXP_SEQUENCE_OF_OPT(stname, field, type, tag) \
|
||||||
|
ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL)
|
||||||
|
|
||||||
|
/* EXPLICIT using indefinite length constructed form */
|
||||||
|
# define ASN1_NDEF_EXP(stname, field, type, tag) \
|
||||||
|
ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_NDEF)
|
||||||
|
|
||||||
|
/* EXPLICIT OPTIONAL using indefinite length constructed form */
|
||||||
|
# define ASN1_NDEF_EXP_OPT(stname, field, type, tag) \
|
||||||
|
ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_NDEF)
|
||||||
|
|
||||||
|
/* Macros for the ASN1_ADB structure */
|
||||||
|
|
||||||
|
# define ASN1_ADB(name) \
|
||||||
|
static const ASN1_ADB_TABLE name##_adbtbl[]
|
||||||
|
|
||||||
|
# define ASN1_ADB_END(name, flags, field, adb_cb, def, none) \
|
||||||
|
;\
|
||||||
|
static const ASN1_ITEM *name##_adb(void) \
|
||||||
|
{ \
|
||||||
|
static const ASN1_ADB internal_adb = \
|
||||||
|
{\
|
||||||
|
flags,\
|
||||||
|
offsetof(name, field),\
|
||||||
|
adb_cb,\
|
||||||
|
name##_adbtbl,\
|
||||||
|
sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\
|
||||||
|
def,\
|
||||||
|
none\
|
||||||
|
}; \
|
||||||
|
return (const ASN1_ITEM *) &internal_adb; \
|
||||||
|
} \
|
||||||
|
void dummy_function(void)
|
||||||
|
|
||||||
|
# define ADB_ENTRY(val, template) {val, template}
|
||||||
|
|
||||||
|
# define ASN1_ADB_TEMPLATE(name) \
|
||||||
|
static const ASN1_TEMPLATE name##_tt
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This is the ASN1 template structure that defines a wrapper round the
|
||||||
|
* actual type. It determines the actual position of the field in the value
|
||||||
|
* structure, various flags such as OPTIONAL and the field name.
|
||||||
|
*/
|
||||||
|
|
||||||
|
struct ASN1_TEMPLATE_st {
|
||||||
|
unsigned long flags; /* Various flags */
|
||||||
|
long tag; /* tag, not used if no tagging */
|
||||||
|
unsigned long offset; /* Offset of this field in structure */
|
||||||
|
const char *field_name; /* Field name */
|
||||||
|
ASN1_ITEM_EXP *item; /* Relevant ASN1_ITEM or ASN1_ADB */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Macro to extract ASN1_ITEM and ASN1_ADB pointer from ASN1_TEMPLATE */
|
||||||
|
|
||||||
|
# define ASN1_TEMPLATE_item(t) (t->item_ptr)
|
||||||
|
# define ASN1_TEMPLATE_adb(t) (t->item_ptr)
|
||||||
|
|
||||||
|
typedef struct ASN1_ADB_TABLE_st ASN1_ADB_TABLE;
|
||||||
|
typedef struct ASN1_ADB_st ASN1_ADB;
|
||||||
|
|
||||||
|
struct ASN1_ADB_st {
|
||||||
|
unsigned long flags; /* Various flags */
|
||||||
|
unsigned long offset; /* Offset of selector field */
|
||||||
|
int (*adb_cb)(long *psel); /* Application callback */
|
||||||
|
const ASN1_ADB_TABLE *tbl; /* Table of possible types */
|
||||||
|
long tblcount; /* Number of entries in tbl */
|
||||||
|
const ASN1_TEMPLATE *default_tt; /* Type to use if no match */
|
||||||
|
const ASN1_TEMPLATE *null_tt; /* Type to use if selector is NULL */
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ASN1_ADB_TABLE_st {
|
||||||
|
long value; /* NID for an object or value for an int */
|
||||||
|
const ASN1_TEMPLATE tt; /* item for this value */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* template flags */
|
||||||
|
|
||||||
|
/* Field is optional */
|
||||||
|
# define ASN1_TFLG_OPTIONAL (0x1)
|
||||||
|
|
||||||
|
/* Field is a SET OF */
|
||||||
|
# define ASN1_TFLG_SET_OF (0x1 << 1)
|
||||||
|
|
||||||
|
/* Field is a SEQUENCE OF */
|
||||||
|
# define ASN1_TFLG_SEQUENCE_OF (0x2 << 1)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Special case: this refers to a SET OF that will be sorted into DER order
|
||||||
|
* when encoded *and* the corresponding STACK will be modified to match the
|
||||||
|
* new order.
|
||||||
|
*/
|
||||||
|
# define ASN1_TFLG_SET_ORDER (0x3 << 1)
|
||||||
|
|
||||||
|
/* Mask for SET OF or SEQUENCE OF */
|
||||||
|
# define ASN1_TFLG_SK_MASK (0x3 << 1)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* These flags mean the tag should be taken from the tag field. If EXPLICIT
|
||||||
|
* then the underlying type is used for the inner tag.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* IMPLICIT tagging */
|
||||||
|
# define ASN1_TFLG_IMPTAG (0x1 << 3)
|
||||||
|
|
||||||
|
/* EXPLICIT tagging, inner tag from underlying type */
|
||||||
|
# define ASN1_TFLG_EXPTAG (0x2 << 3)
|
||||||
|
|
||||||
|
# define ASN1_TFLG_TAG_MASK (0x3 << 3)
|
||||||
|
|
||||||
|
/* context specific IMPLICIT */
|
||||||
|
# define ASN1_TFLG_IMPLICIT (ASN1_TFLG_IMPTAG|ASN1_TFLG_CONTEXT)
|
||||||
|
|
||||||
|
/* context specific EXPLICIT */
|
||||||
|
# define ASN1_TFLG_EXPLICIT (ASN1_TFLG_EXPTAG|ASN1_TFLG_CONTEXT)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If tagging is in force these determine the type of tag to use. Otherwise
|
||||||
|
* the tag is determined by the underlying type. These values reflect the
|
||||||
|
* actual octet format.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Universal tag */
|
||||||
|
# define ASN1_TFLG_UNIVERSAL (0x0<<6)
|
||||||
|
/* Application tag */
|
||||||
|
# define ASN1_TFLG_APPLICATION (0x1<<6)
|
||||||
|
/* Context specific tag */
|
||||||
|
# define ASN1_TFLG_CONTEXT (0x2<<6)
|
||||||
|
/* Private tag */
|
||||||
|
# define ASN1_TFLG_PRIVATE (0x3<<6)
|
||||||
|
|
||||||
|
# define ASN1_TFLG_TAG_CLASS (0x3<<6)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* These are for ANY DEFINED BY type. In this case the 'item' field points to
|
||||||
|
* an ASN1_ADB structure which contains a table of values to decode the
|
||||||
|
* relevant type
|
||||||
|
*/
|
||||||
|
|
||||||
|
# define ASN1_TFLG_ADB_MASK (0x3<<8)
|
||||||
|
|
||||||
|
# define ASN1_TFLG_ADB_OID (0x1<<8)
|
||||||
|
|
||||||
|
# define ASN1_TFLG_ADB_INT (0x1<<9)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This flag when present in a SEQUENCE OF, SET OF or EXPLICIT causes
|
||||||
|
* indefinite length constructed encoding to be used if required.
|
||||||
|
*/
|
||||||
|
|
||||||
|
# define ASN1_TFLG_NDEF (0x1<<11)
|
||||||
|
|
||||||
|
/* Field is embedded and not a pointer */
|
||||||
|
# define ASN1_TFLG_EMBED (0x1 << 12)
|
||||||
|
|
||||||
|
/* This is the actual ASN1 item itself */
|
||||||
|
|
||||||
|
struct ASN1_ITEM_st {
|
||||||
|
char itype; /* The item type, primitive, SEQUENCE, CHOICE
|
||||||
|
* or extern */
|
||||||
|
long utype; /* underlying type */
|
||||||
|
const ASN1_TEMPLATE *templates; /* If SEQUENCE or CHOICE this contains
|
||||||
|
* the contents */
|
||||||
|
long tcount; /* Number of templates if SEQUENCE or CHOICE */
|
||||||
|
const void *funcs; /* further data and type-specific functions */
|
||||||
|
/* funcs can be ASN1_PRIMITIVE_FUNCS*, ASN1_EXTERN_FUNCS*, or ASN1_AUX* */
|
||||||
|
long size; /* Structure size (usually) */
|
||||||
|
const char *sname; /* Structure name */
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Cache for ASN1 tag and length, so we don't keep re-reading it for things
|
||||||
|
* like CHOICE
|
||||||
|
*/
|
||||||
|
|
||||||
|
struct ASN1_TLC_st {
|
||||||
|
char valid; /* Values below are valid */
|
||||||
|
int ret; /* return value */
|
||||||
|
long plen; /* length */
|
||||||
|
int ptag; /* class value */
|
||||||
|
int pclass; /* class value */
|
||||||
|
int hdrlen; /* header length */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Typedefs for ASN1 function pointers */
|
||||||
|
typedef int ASN1_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len,
|
||||||
|
const ASN1_ITEM *it, int tag, int aclass, char opt,
|
||||||
|
ASN1_TLC *ctx);
|
||||||
|
|
||||||
|
typedef int ASN1_ex_d2i_ex(ASN1_VALUE **pval, const unsigned char **in, long len,
|
||||||
|
const ASN1_ITEM *it, int tag, int aclass, char opt,
|
||||||
|
ASN1_TLC *ctx, OSSL_LIB_CTX *libctx,
|
||||||
|
const char *propq);
|
||||||
|
typedef int ASN1_ex_i2d(const ASN1_VALUE **pval, unsigned char **out,
|
||||||
|
const ASN1_ITEM *it, int tag, int aclass);
|
||||||
|
typedef int ASN1_ex_new_func(ASN1_VALUE **pval, const ASN1_ITEM *it);
|
||||||
|
typedef int ASN1_ex_new_ex_func(ASN1_VALUE **pval, const ASN1_ITEM *it,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
typedef void ASN1_ex_free_func(ASN1_VALUE **pval, const ASN1_ITEM *it);
|
||||||
|
|
||||||
|
typedef int ASN1_ex_print_func(BIO *out, const ASN1_VALUE **pval,
|
||||||
|
int indent, const char *fname,
|
||||||
|
const ASN1_PCTX *pctx);
|
||||||
|
|
||||||
|
typedef int ASN1_primitive_i2c(const ASN1_VALUE **pval, unsigned char *cont,
|
||||||
|
int *putype, const ASN1_ITEM *it);
|
||||||
|
typedef int ASN1_primitive_c2i(ASN1_VALUE **pval, const unsigned char *cont,
|
||||||
|
int len, int utype, char *free_cont,
|
||||||
|
const ASN1_ITEM *it);
|
||||||
|
typedef int ASN1_primitive_print(BIO *out, const ASN1_VALUE **pval,
|
||||||
|
const ASN1_ITEM *it, int indent,
|
||||||
|
const ASN1_PCTX *pctx);
|
||||||
|
|
||||||
|
typedef struct ASN1_EXTERN_FUNCS_st {
|
||||||
|
void *app_data;
|
||||||
|
ASN1_ex_new_func *asn1_ex_new;
|
||||||
|
ASN1_ex_free_func *asn1_ex_free;
|
||||||
|
ASN1_ex_free_func *asn1_ex_clear;
|
||||||
|
ASN1_ex_d2i *asn1_ex_d2i;
|
||||||
|
ASN1_ex_i2d *asn1_ex_i2d;
|
||||||
|
ASN1_ex_print_func *asn1_ex_print;
|
||||||
|
ASN1_ex_new_ex_func *asn1_ex_new_ex;
|
||||||
|
ASN1_ex_d2i_ex *asn1_ex_d2i_ex;
|
||||||
|
} ASN1_EXTERN_FUNCS;
|
||||||
|
|
||||||
|
typedef struct ASN1_PRIMITIVE_FUNCS_st {
|
||||||
|
void *app_data;
|
||||||
|
unsigned long flags;
|
||||||
|
ASN1_ex_new_func *prim_new;
|
||||||
|
ASN1_ex_free_func *prim_free;
|
||||||
|
ASN1_ex_free_func *prim_clear;
|
||||||
|
ASN1_primitive_c2i *prim_c2i;
|
||||||
|
ASN1_primitive_i2c *prim_i2c;
|
||||||
|
ASN1_primitive_print *prim_print;
|
||||||
|
} ASN1_PRIMITIVE_FUNCS;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This is the ASN1_AUX structure: it handles various miscellaneous
|
||||||
|
* requirements. For example the use of reference counts and an informational
|
||||||
|
* callback. The "informational callback" is called at various points during
|
||||||
|
* the ASN1 encoding and decoding. It can be used to provide minor
|
||||||
|
* customisation of the structures used. This is most useful where the
|
||||||
|
* supplied routines *almost* do the right thing but need some extra help at
|
||||||
|
* a few points. If the callback returns zero then it is assumed a fatal
|
||||||
|
* error has occurred and the main operation should be abandoned. If major
|
||||||
|
* changes in the default behaviour are required then an external type is
|
||||||
|
* more appropriate.
|
||||||
|
* For the operations ASN1_OP_I2D_PRE, ASN1_OP_I2D_POST, ASN1_OP_PRINT_PRE, and
|
||||||
|
* ASN1_OP_PRINT_POST, meanwhile a variant of the callback with const parameter
|
||||||
|
* 'in' is provided to make clear statically that its input is not modified. If
|
||||||
|
* and only if this variant is in use the flag ASN1_AFLG_CONST_CB must be set.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef int ASN1_aux_cb(int operation, ASN1_VALUE **in, const ASN1_ITEM *it,
|
||||||
|
void *exarg);
|
||||||
|
typedef int ASN1_aux_const_cb(int operation, const ASN1_VALUE **in,
|
||||||
|
const ASN1_ITEM *it, void *exarg);
|
||||||
|
|
||||||
|
typedef struct ASN1_AUX_st {
|
||||||
|
void *app_data;
|
||||||
|
int flags;
|
||||||
|
int ref_offset; /* Offset of reference value */
|
||||||
|
int ref_lock; /* Offset of lock value */
|
||||||
|
ASN1_aux_cb *asn1_cb;
|
||||||
|
int enc_offset; /* Offset of ASN1_ENCODING structure */
|
||||||
|
ASN1_aux_const_cb *asn1_const_cb; /* for ASN1_OP_I2D_ and ASN1_OP_PRINT_ */
|
||||||
|
} ASN1_AUX;
|
||||||
|
|
||||||
|
/* For print related callbacks exarg points to this structure */
|
||||||
|
typedef struct ASN1_PRINT_ARG_st {
|
||||||
|
BIO *out;
|
||||||
|
int indent;
|
||||||
|
const ASN1_PCTX *pctx;
|
||||||
|
} ASN1_PRINT_ARG;
|
||||||
|
|
||||||
|
/* For streaming related callbacks exarg points to this structure */
|
||||||
|
typedef struct ASN1_STREAM_ARG_st {
|
||||||
|
/* BIO to stream through */
|
||||||
|
BIO *out;
|
||||||
|
/* BIO with filters appended */
|
||||||
|
BIO *ndef_bio;
|
||||||
|
/* Streaming I/O boundary */
|
||||||
|
unsigned char **boundary;
|
||||||
|
} ASN1_STREAM_ARG;
|
||||||
|
|
||||||
|
/* Flags in ASN1_AUX */
|
||||||
|
|
||||||
|
/* Use a reference count */
|
||||||
|
# define ASN1_AFLG_REFCOUNT 1
|
||||||
|
/* Save the encoding of structure (useful for signatures) */
|
||||||
|
# define ASN1_AFLG_ENCODING 2
|
||||||
|
/* The Sequence length is invalid */
|
||||||
|
# define ASN1_AFLG_BROKEN 4
|
||||||
|
/* Use the new asn1_const_cb */
|
||||||
|
# define ASN1_AFLG_CONST_CB 8
|
||||||
|
|
||||||
|
/* operation values for asn1_cb */
|
||||||
|
|
||||||
|
# define ASN1_OP_NEW_PRE 0
|
||||||
|
# define ASN1_OP_NEW_POST 1
|
||||||
|
# define ASN1_OP_FREE_PRE 2
|
||||||
|
# define ASN1_OP_FREE_POST 3
|
||||||
|
# define ASN1_OP_D2I_PRE 4
|
||||||
|
# define ASN1_OP_D2I_POST 5
|
||||||
|
# define ASN1_OP_I2D_PRE 6
|
||||||
|
# define ASN1_OP_I2D_POST 7
|
||||||
|
# define ASN1_OP_PRINT_PRE 8
|
||||||
|
# define ASN1_OP_PRINT_POST 9
|
||||||
|
# define ASN1_OP_STREAM_PRE 10
|
||||||
|
# define ASN1_OP_STREAM_POST 11
|
||||||
|
# define ASN1_OP_DETACHED_PRE 12
|
||||||
|
# define ASN1_OP_DETACHED_POST 13
|
||||||
|
# define ASN1_OP_DUP_PRE 14
|
||||||
|
# define ASN1_OP_DUP_POST 15
|
||||||
|
# define ASN1_OP_GET0_LIBCTX 16
|
||||||
|
# define ASN1_OP_GET0_PROPQ 17
|
||||||
|
|
||||||
|
/* Macro to implement a primitive type */
|
||||||
|
# define IMPLEMENT_ASN1_TYPE(stname) IMPLEMENT_ASN1_TYPE_ex(stname, stname, 0)
|
||||||
|
# define IMPLEMENT_ASN1_TYPE_ex(itname, vname, ex) \
|
||||||
|
ASN1_ITEM_start(itname) \
|
||||||
|
ASN1_ITYPE_PRIMITIVE, V_##vname, NULL, 0, NULL, ex, #itname \
|
||||||
|
ASN1_ITEM_end(itname)
|
||||||
|
|
||||||
|
/* Macro to implement a multi string type */
|
||||||
|
# define IMPLEMENT_ASN1_MSTRING(itname, mask) \
|
||||||
|
ASN1_ITEM_start(itname) \
|
||||||
|
ASN1_ITYPE_MSTRING, mask, NULL, 0, NULL, sizeof(ASN1_STRING), #itname \
|
||||||
|
ASN1_ITEM_end(itname)
|
||||||
|
|
||||||
|
# define IMPLEMENT_EXTERN_ASN1(sname, tag, fptrs) \
|
||||||
|
ASN1_ITEM_start(sname) \
|
||||||
|
ASN1_ITYPE_EXTERN, \
|
||||||
|
tag, \
|
||||||
|
NULL, \
|
||||||
|
0, \
|
||||||
|
&fptrs, \
|
||||||
|
0, \
|
||||||
|
#sname \
|
||||||
|
ASN1_ITEM_end(sname)
|
||||||
|
|
||||||
|
/* Macro to implement standard functions in terms of ASN1_ITEM structures */
|
||||||
|
|
||||||
|
# define IMPLEMENT_ASN1_FUNCTIONS(stname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, stname, stname)
|
||||||
|
|
||||||
|
# define IMPLEMENT_ASN1_FUNCTIONS_name(stname, itname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, itname)
|
||||||
|
|
||||||
|
# define IMPLEMENT_ASN1_FUNCTIONS_ENCODE_name(stname, itname) \
|
||||||
|
IMPLEMENT_ASN1_FUNCTIONS_ENCODE_fname(stname, itname, itname)
|
||||||
|
|
||||||
|
# define IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(stname) \
|
||||||
|
IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(static, stname, stname, stname)
|
||||||
|
|
||||||
|
# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS(stname) \
|
||||||
|
IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, stname, stname)
|
||||||
|
|
||||||
|
# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(pre, stname, itname, fname) \
|
||||||
|
pre stname *fname##_new(void) \
|
||||||
|
{ \
|
||||||
|
return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \
|
||||||
|
} \
|
||||||
|
pre void fname##_free(stname *a) \
|
||||||
|
{ \
|
||||||
|
ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \
|
||||||
|
}
|
||||||
|
|
||||||
|
# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) \
|
||||||
|
stname *fname##_new(void) \
|
||||||
|
{ \
|
||||||
|
return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \
|
||||||
|
} \
|
||||||
|
void fname##_free(stname *a) \
|
||||||
|
{ \
|
||||||
|
ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \
|
||||||
|
}
|
||||||
|
|
||||||
|
# define IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, fname) \
|
||||||
|
IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \
|
||||||
|
IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname)
|
||||||
|
|
||||||
|
# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \
|
||||||
|
stname *d2i_##fname(stname **a, const unsigned char **in, long len) \
|
||||||
|
{ \
|
||||||
|
return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, ASN1_ITEM_rptr(itname));\
|
||||||
|
} \
|
||||||
|
int i2d_##fname(const stname *a, unsigned char **out) \
|
||||||
|
{ \
|
||||||
|
return ASN1_item_i2d((const ASN1_VALUE *)a, out, ASN1_ITEM_rptr(itname));\
|
||||||
|
}
|
||||||
|
|
||||||
|
# define IMPLEMENT_ASN1_NDEF_FUNCTION(stname) \
|
||||||
|
int i2d_##stname##_NDEF(const stname *a, unsigned char **out) \
|
||||||
|
{ \
|
||||||
|
return ASN1_item_ndef_i2d((const ASN1_VALUE *)a, out, ASN1_ITEM_rptr(stname));\
|
||||||
|
}
|
||||||
|
|
||||||
|
# define IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(stname) \
|
||||||
|
static stname *d2i_##stname(stname **a, \
|
||||||
|
const unsigned char **in, long len) \
|
||||||
|
{ \
|
||||||
|
return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, \
|
||||||
|
ASN1_ITEM_rptr(stname)); \
|
||||||
|
} \
|
||||||
|
static int i2d_##stname(const stname *a, unsigned char **out) \
|
||||||
|
{ \
|
||||||
|
return ASN1_item_i2d((const ASN1_VALUE *)a, out, \
|
||||||
|
ASN1_ITEM_rptr(stname)); \
|
||||||
|
}
|
||||||
|
|
||||||
|
# define IMPLEMENT_ASN1_DUP_FUNCTION(stname) \
|
||||||
|
stname * stname##_dup(const stname *x) \
|
||||||
|
{ \
|
||||||
|
return ASN1_item_dup(ASN1_ITEM_rptr(stname), x); \
|
||||||
|
}
|
||||||
|
|
||||||
|
# define IMPLEMENT_ASN1_PRINT_FUNCTION(stname) \
|
||||||
|
IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, stname, stname)
|
||||||
|
|
||||||
|
# define IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, itname, fname) \
|
||||||
|
int fname##_print_ctx(BIO *out, const stname *x, int indent, \
|
||||||
|
const ASN1_PCTX *pctx) \
|
||||||
|
{ \
|
||||||
|
return ASN1_item_print(out, (const ASN1_VALUE *)x, indent, \
|
||||||
|
ASN1_ITEM_rptr(itname), pctx); \
|
||||||
|
}
|
||||||
|
|
||||||
|
/* external definitions for primitive types */
|
||||||
|
|
||||||
|
DECLARE_ASN1_ITEM(ASN1_BOOLEAN)
|
||||||
|
DECLARE_ASN1_ITEM(ASN1_TBOOLEAN)
|
||||||
|
DECLARE_ASN1_ITEM(ASN1_FBOOLEAN)
|
||||||
|
DECLARE_ASN1_ITEM(ASN1_SEQUENCE)
|
||||||
|
DECLARE_ASN1_ITEM(CBIGNUM)
|
||||||
|
DECLARE_ASN1_ITEM(BIGNUM)
|
||||||
|
DECLARE_ASN1_ITEM(INT32)
|
||||||
|
DECLARE_ASN1_ITEM(ZINT32)
|
||||||
|
DECLARE_ASN1_ITEM(UINT32)
|
||||||
|
DECLARE_ASN1_ITEM(ZUINT32)
|
||||||
|
DECLARE_ASN1_ITEM(INT64)
|
||||||
|
DECLARE_ASN1_ITEM(ZINT64)
|
||||||
|
DECLARE_ASN1_ITEM(UINT64)
|
||||||
|
DECLARE_ASN1_ITEM(ZUINT64)
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
/*
|
||||||
|
* LONG and ZLONG are strongly discouraged for use as stored data, as the
|
||||||
|
* underlying C type (long) differs in size depending on the architecture.
|
||||||
|
* They are designed with 32-bit longs in mind.
|
||||||
|
*/
|
||||||
|
DECLARE_ASN1_ITEM(LONG)
|
||||||
|
DECLARE_ASN1_ITEM(ZLONG)
|
||||||
|
# endif
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_stack_macros("ASN1_VALUE");
|
||||||
|
-}
|
||||||
|
|
||||||
|
|
||||||
|
/* Functions used internally by the ASN1 code */
|
||||||
|
|
||||||
|
int ASN1_item_ex_new(ASN1_VALUE **pval, const ASN1_ITEM *it);
|
||||||
|
void ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it);
|
||||||
|
|
||||||
|
int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len,
|
||||||
|
const ASN1_ITEM *it, int tag, int aclass, char opt,
|
||||||
|
ASN1_TLC *ctx);
|
||||||
|
|
||||||
|
int ASN1_item_ex_i2d(const ASN1_VALUE **pval, unsigned char **out,
|
||||||
|
const ASN1_ITEM *it, int tag, int aclass);
|
||||||
|
|
||||||
|
/* Legacy compatibility */
|
||||||
|
# define IMPLEMENT_ASN1_FUNCTIONS_const(name) IMPLEMENT_ASN1_FUNCTIONS(name)
|
||||||
|
# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(stname, itname, fname) \
|
||||||
|
IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname)
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
864
deps/openssl/mingw64/include/openssl/bio.h.in
vendored
Normal file
864
deps/openssl/mingw64/include/openssl/bio.h.in
vendored
Normal file
@ -0,0 +1,864 @@
|
|||||||
|
/*
|
||||||
|
* {- join("\n * ", @autowarntext) -}
|
||||||
|
*
|
||||||
|
* Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
{-
|
||||||
|
use OpenSSL::stackhash qw(generate_stack_macros);
|
||||||
|
-}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_BIO_H
|
||||||
|
# define OPENSSL_BIO_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/macros.h>
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# define HEADER_BIO_H
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# include <openssl/e_os2.h>
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
# include <stdio.h>
|
||||||
|
# endif
|
||||||
|
# include <stdarg.h>
|
||||||
|
|
||||||
|
# include <openssl/crypto.h>
|
||||||
|
# include <openssl/bioerr.h>
|
||||||
|
# include <openssl/core.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* There are the classes of BIOs */
|
||||||
|
# define BIO_TYPE_DESCRIPTOR 0x0100 /* socket, fd, connect or accept */
|
||||||
|
# define BIO_TYPE_FILTER 0x0200
|
||||||
|
# define BIO_TYPE_SOURCE_SINK 0x0400
|
||||||
|
|
||||||
|
/* These are the 'types' of BIOs */
|
||||||
|
# define BIO_TYPE_NONE 0
|
||||||
|
# define BIO_TYPE_MEM ( 1|BIO_TYPE_SOURCE_SINK)
|
||||||
|
# define BIO_TYPE_FILE ( 2|BIO_TYPE_SOURCE_SINK)
|
||||||
|
|
||||||
|
# define BIO_TYPE_FD ( 4|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR)
|
||||||
|
# define BIO_TYPE_SOCKET ( 5|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR)
|
||||||
|
# define BIO_TYPE_NULL ( 6|BIO_TYPE_SOURCE_SINK)
|
||||||
|
# define BIO_TYPE_SSL ( 7|BIO_TYPE_FILTER)
|
||||||
|
# define BIO_TYPE_MD ( 8|BIO_TYPE_FILTER)
|
||||||
|
# define BIO_TYPE_BUFFER ( 9|BIO_TYPE_FILTER)
|
||||||
|
# define BIO_TYPE_CIPHER (10|BIO_TYPE_FILTER)
|
||||||
|
# define BIO_TYPE_BASE64 (11|BIO_TYPE_FILTER)
|
||||||
|
# define BIO_TYPE_CONNECT (12|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR)
|
||||||
|
# define BIO_TYPE_ACCEPT (13|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR)
|
||||||
|
|
||||||
|
# define BIO_TYPE_NBIO_TEST (16|BIO_TYPE_FILTER)/* server proxy BIO */
|
||||||
|
# define BIO_TYPE_NULL_FILTER (17|BIO_TYPE_FILTER)
|
||||||
|
# define BIO_TYPE_BIO (19|BIO_TYPE_SOURCE_SINK)/* half a BIO pair */
|
||||||
|
# define BIO_TYPE_LINEBUFFER (20|BIO_TYPE_FILTER)
|
||||||
|
# define BIO_TYPE_DGRAM (21|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR)
|
||||||
|
# define BIO_TYPE_ASN1 (22|BIO_TYPE_FILTER)
|
||||||
|
# define BIO_TYPE_COMP (23|BIO_TYPE_FILTER)
|
||||||
|
# ifndef OPENSSL_NO_SCTP
|
||||||
|
# define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR)
|
||||||
|
# endif
|
||||||
|
# define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK)
|
||||||
|
|
||||||
|
#define BIO_TYPE_START 128
|
||||||
|
|
||||||
|
/*
|
||||||
|
* BIO_FILENAME_READ|BIO_CLOSE to open or close on free.
|
||||||
|
* BIO_set_fp(in,stdin,BIO_NOCLOSE);
|
||||||
|
*/
|
||||||
|
# define BIO_NOCLOSE 0x00
|
||||||
|
# define BIO_CLOSE 0x01
|
||||||
|
|
||||||
|
/*
|
||||||
|
* These are used in the following macros and are passed to BIO_ctrl()
|
||||||
|
*/
|
||||||
|
# define BIO_CTRL_RESET 1/* opt - rewind/zero etc */
|
||||||
|
# define BIO_CTRL_EOF 2/* opt - are we at the eof */
|
||||||
|
# define BIO_CTRL_INFO 3/* opt - extra tit-bits */
|
||||||
|
# define BIO_CTRL_SET 4/* man - set the 'IO' type */
|
||||||
|
# define BIO_CTRL_GET 5/* man - get the 'IO' type */
|
||||||
|
# define BIO_CTRL_PUSH 6/* opt - internal, used to signify change */
|
||||||
|
# define BIO_CTRL_POP 7/* opt - internal, used to signify change */
|
||||||
|
# define BIO_CTRL_GET_CLOSE 8/* man - set the 'close' on free */
|
||||||
|
# define BIO_CTRL_SET_CLOSE 9/* man - set the 'close' on free */
|
||||||
|
# define BIO_CTRL_PENDING 10/* opt - is their more data buffered */
|
||||||
|
# define BIO_CTRL_FLUSH 11/* opt - 'flush' buffered output */
|
||||||
|
# define BIO_CTRL_DUP 12/* man - extra stuff for 'duped' BIO */
|
||||||
|
# define BIO_CTRL_WPENDING 13/* opt - number of bytes still to write */
|
||||||
|
# define BIO_CTRL_SET_CALLBACK 14/* opt - set callback function */
|
||||||
|
# define BIO_CTRL_GET_CALLBACK 15/* opt - set callback function */
|
||||||
|
|
||||||
|
# define BIO_CTRL_PEEK 29/* BIO_f_buffer special */
|
||||||
|
# define BIO_CTRL_SET_FILENAME 30/* BIO_s_file special */
|
||||||
|
|
||||||
|
/* dgram BIO stuff */
|
||||||
|
# define BIO_CTRL_DGRAM_CONNECT 31/* BIO dgram special */
|
||||||
|
# define BIO_CTRL_DGRAM_SET_CONNECTED 32/* allow for an externally connected
|
||||||
|
* socket to be passed in */
|
||||||
|
# define BIO_CTRL_DGRAM_SET_RECV_TIMEOUT 33/* setsockopt, essentially */
|
||||||
|
# define BIO_CTRL_DGRAM_GET_RECV_TIMEOUT 34/* getsockopt, essentially */
|
||||||
|
# define BIO_CTRL_DGRAM_SET_SEND_TIMEOUT 35/* setsockopt, essentially */
|
||||||
|
# define BIO_CTRL_DGRAM_GET_SEND_TIMEOUT 36/* getsockopt, essentially */
|
||||||
|
|
||||||
|
# define BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP 37/* flag whether the last */
|
||||||
|
# define BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP 38/* I/O operation timed out */
|
||||||
|
|
||||||
|
/* #ifdef IP_MTU_DISCOVER */
|
||||||
|
# define BIO_CTRL_DGRAM_MTU_DISCOVER 39/* set DF bit on egress packets */
|
||||||
|
/* #endif */
|
||||||
|
|
||||||
|
# define BIO_CTRL_DGRAM_QUERY_MTU 40/* as kernel for current MTU */
|
||||||
|
# define BIO_CTRL_DGRAM_GET_FALLBACK_MTU 47
|
||||||
|
# define BIO_CTRL_DGRAM_GET_MTU 41/* get cached value for MTU */
|
||||||
|
# define BIO_CTRL_DGRAM_SET_MTU 42/* set cached value for MTU.
|
||||||
|
* want to use this if asking
|
||||||
|
* the kernel fails */
|
||||||
|
|
||||||
|
# define BIO_CTRL_DGRAM_MTU_EXCEEDED 43/* check whether the MTU was
|
||||||
|
* exceed in the previous write
|
||||||
|
* operation */
|
||||||
|
|
||||||
|
# define BIO_CTRL_DGRAM_GET_PEER 46
|
||||||
|
# define BIO_CTRL_DGRAM_SET_PEER 44/* Destination for the data */
|
||||||
|
|
||||||
|
# define BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT 45/* Next DTLS handshake timeout
|
||||||
|
* to adjust socket timeouts */
|
||||||
|
# define BIO_CTRL_DGRAM_SET_DONT_FRAG 48
|
||||||
|
|
||||||
|
# define BIO_CTRL_DGRAM_GET_MTU_OVERHEAD 49
|
||||||
|
|
||||||
|
/* Deliberately outside of OPENSSL_NO_SCTP - used in bss_dgram.c */
|
||||||
|
# define BIO_CTRL_DGRAM_SCTP_SET_IN_HANDSHAKE 50
|
||||||
|
# ifndef OPENSSL_NO_SCTP
|
||||||
|
/* SCTP stuff */
|
||||||
|
# define BIO_CTRL_DGRAM_SCTP_ADD_AUTH_KEY 51
|
||||||
|
# define BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY 52
|
||||||
|
# define BIO_CTRL_DGRAM_SCTP_AUTH_CCS_RCVD 53
|
||||||
|
# define BIO_CTRL_DGRAM_SCTP_GET_SNDINFO 60
|
||||||
|
# define BIO_CTRL_DGRAM_SCTP_SET_SNDINFO 61
|
||||||
|
# define BIO_CTRL_DGRAM_SCTP_GET_RCVINFO 62
|
||||||
|
# define BIO_CTRL_DGRAM_SCTP_SET_RCVINFO 63
|
||||||
|
# define BIO_CTRL_DGRAM_SCTP_GET_PRINFO 64
|
||||||
|
# define BIO_CTRL_DGRAM_SCTP_SET_PRINFO 65
|
||||||
|
# define BIO_CTRL_DGRAM_SCTP_SAVE_SHUTDOWN 70
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# define BIO_CTRL_DGRAM_SET_PEEK_MODE 71
|
||||||
|
|
||||||
|
/*
|
||||||
|
* internal BIO:
|
||||||
|
* # define BIO_CTRL_SET_KTLS_SEND 72
|
||||||
|
* # define BIO_CTRL_SET_KTLS_SEND_CTRL_MSG 74
|
||||||
|
* # define BIO_CTRL_CLEAR_KTLS_CTRL_MSG 75
|
||||||
|
*/
|
||||||
|
|
||||||
|
# define BIO_CTRL_GET_KTLS_SEND 73
|
||||||
|
# define BIO_CTRL_GET_KTLS_RECV 76
|
||||||
|
|
||||||
|
# define BIO_CTRL_DGRAM_SCTP_WAIT_FOR_DRY 77
|
||||||
|
# define BIO_CTRL_DGRAM_SCTP_MSG_WAITING 78
|
||||||
|
|
||||||
|
/* BIO_f_prefix controls */
|
||||||
|
# define BIO_CTRL_SET_PREFIX 79
|
||||||
|
# define BIO_CTRL_SET_INDENT 80
|
||||||
|
# define BIO_CTRL_GET_INDENT 81
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_KTLS
|
||||||
|
# define BIO_get_ktls_send(b) \
|
||||||
|
(BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0)
|
||||||
|
# define BIO_get_ktls_recv(b) \
|
||||||
|
(BIO_ctrl(b, BIO_CTRL_GET_KTLS_RECV, 0, NULL) > 0)
|
||||||
|
# else
|
||||||
|
# define BIO_get_ktls_send(b) (0)
|
||||||
|
# define BIO_get_ktls_recv(b) (0)
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/* modifiers */
|
||||||
|
# define BIO_FP_READ 0x02
|
||||||
|
# define BIO_FP_WRITE 0x04
|
||||||
|
# define BIO_FP_APPEND 0x08
|
||||||
|
# define BIO_FP_TEXT 0x10
|
||||||
|
|
||||||
|
# define BIO_FLAGS_READ 0x01
|
||||||
|
# define BIO_FLAGS_WRITE 0x02
|
||||||
|
# define BIO_FLAGS_IO_SPECIAL 0x04
|
||||||
|
# define BIO_FLAGS_RWS (BIO_FLAGS_READ|BIO_FLAGS_WRITE|BIO_FLAGS_IO_SPECIAL)
|
||||||
|
# define BIO_FLAGS_SHOULD_RETRY 0x08
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
/* This #define was replaced by an internal constant and should not be used. */
|
||||||
|
# define BIO_FLAGS_UPLINK 0
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# define BIO_FLAGS_BASE64_NO_NL 0x100
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This is used with memory BIOs:
|
||||||
|
* BIO_FLAGS_MEM_RDONLY means we shouldn't free up or change the data in any way;
|
||||||
|
* BIO_FLAGS_NONCLEAR_RST means we shouldn't clear data on reset.
|
||||||
|
*/
|
||||||
|
# define BIO_FLAGS_MEM_RDONLY 0x200
|
||||||
|
# define BIO_FLAGS_NONCLEAR_RST 0x400
|
||||||
|
# define BIO_FLAGS_IN_EOF 0x800
|
||||||
|
|
||||||
|
/* the BIO FLAGS values 0x1000 to 0x4000 are reserved for internal KTLS flags */
|
||||||
|
|
||||||
|
typedef union bio_addr_st BIO_ADDR;
|
||||||
|
typedef struct bio_addrinfo_st BIO_ADDRINFO;
|
||||||
|
|
||||||
|
int BIO_get_new_index(void);
|
||||||
|
void BIO_set_flags(BIO *b, int flags);
|
||||||
|
int BIO_test_flags(const BIO *b, int flags);
|
||||||
|
void BIO_clear_flags(BIO *b, int flags);
|
||||||
|
|
||||||
|
# define BIO_get_flags(b) BIO_test_flags(b, ~(0x0))
|
||||||
|
# define BIO_set_retry_special(b) \
|
||||||
|
BIO_set_flags(b, (BIO_FLAGS_IO_SPECIAL|BIO_FLAGS_SHOULD_RETRY))
|
||||||
|
# define BIO_set_retry_read(b) \
|
||||||
|
BIO_set_flags(b, (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY))
|
||||||
|
# define BIO_set_retry_write(b) \
|
||||||
|
BIO_set_flags(b, (BIO_FLAGS_WRITE|BIO_FLAGS_SHOULD_RETRY))
|
||||||
|
|
||||||
|
/* These are normally used internally in BIOs */
|
||||||
|
# define BIO_clear_retry_flags(b) \
|
||||||
|
BIO_clear_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY))
|
||||||
|
# define BIO_get_retry_flags(b) \
|
||||||
|
BIO_test_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY))
|
||||||
|
|
||||||
|
/* These should be used by the application to tell why we should retry */
|
||||||
|
# define BIO_should_read(a) BIO_test_flags(a, BIO_FLAGS_READ)
|
||||||
|
# define BIO_should_write(a) BIO_test_flags(a, BIO_FLAGS_WRITE)
|
||||||
|
# define BIO_should_io_special(a) BIO_test_flags(a, BIO_FLAGS_IO_SPECIAL)
|
||||||
|
# define BIO_retry_type(a) BIO_test_flags(a, BIO_FLAGS_RWS)
|
||||||
|
# define BIO_should_retry(a) BIO_test_flags(a, BIO_FLAGS_SHOULD_RETRY)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The next three are used in conjunction with the BIO_should_io_special()
|
||||||
|
* condition. After this returns true, BIO *BIO_get_retry_BIO(BIO *bio, int
|
||||||
|
* *reason); will walk the BIO stack and return the 'reason' for the special
|
||||||
|
* and the offending BIO. Given a BIO, BIO_get_retry_reason(bio) will return
|
||||||
|
* the code.
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
* Returned from the SSL bio when the certificate retrieval code had an error
|
||||||
|
*/
|
||||||
|
# define BIO_RR_SSL_X509_LOOKUP 0x01
|
||||||
|
/* Returned from the connect BIO when a connect would have blocked */
|
||||||
|
# define BIO_RR_CONNECT 0x02
|
||||||
|
/* Returned from the accept BIO when an accept would have blocked */
|
||||||
|
# define BIO_RR_ACCEPT 0x03
|
||||||
|
|
||||||
|
/* These are passed by the BIO callback */
|
||||||
|
# define BIO_CB_FREE 0x01
|
||||||
|
# define BIO_CB_READ 0x02
|
||||||
|
# define BIO_CB_WRITE 0x03
|
||||||
|
# define BIO_CB_PUTS 0x04
|
||||||
|
# define BIO_CB_GETS 0x05
|
||||||
|
# define BIO_CB_CTRL 0x06
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The callback is called before and after the underling operation, The
|
||||||
|
* BIO_CB_RETURN flag indicates if it is after the call
|
||||||
|
*/
|
||||||
|
# define BIO_CB_RETURN 0x80
|
||||||
|
# define BIO_CB_return(a) ((a)|BIO_CB_RETURN)
|
||||||
|
# define BIO_cb_pre(a) (!((a)&BIO_CB_RETURN))
|
||||||
|
# define BIO_cb_post(a) ((a)&BIO_CB_RETURN)
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
typedef long (*BIO_callback_fn)(BIO *b, int oper, const char *argp, int argi,
|
||||||
|
long argl, long ret);
|
||||||
|
OSSL_DEPRECATEDIN_3_0 BIO_callback_fn BIO_get_callback(const BIO *b);
|
||||||
|
OSSL_DEPRECATEDIN_3_0 void BIO_set_callback(BIO *b, BIO_callback_fn callback);
|
||||||
|
OSSL_DEPRECATEDIN_3_0 long BIO_debug_callback(BIO *bio, int cmd,
|
||||||
|
const char *argp, int argi,
|
||||||
|
long argl, long ret);
|
||||||
|
# endif
|
||||||
|
|
||||||
|
typedef long (*BIO_callback_fn_ex)(BIO *b, int oper, const char *argp,
|
||||||
|
size_t len, int argi,
|
||||||
|
long argl, int ret, size_t *processed);
|
||||||
|
BIO_callback_fn_ex BIO_get_callback_ex(const BIO *b);
|
||||||
|
void BIO_set_callback_ex(BIO *b, BIO_callback_fn_ex callback);
|
||||||
|
long BIO_debug_callback_ex(BIO *bio, int oper, const char *argp, size_t len,
|
||||||
|
int argi, long argl, int ret, size_t *processed);
|
||||||
|
|
||||||
|
char *BIO_get_callback_arg(const BIO *b);
|
||||||
|
void BIO_set_callback_arg(BIO *b, char *arg);
|
||||||
|
|
||||||
|
typedef struct bio_method_st BIO_METHOD;
|
||||||
|
|
||||||
|
const char *BIO_method_name(const BIO *b);
|
||||||
|
int BIO_method_type(const BIO *b);
|
||||||
|
|
||||||
|
typedef int BIO_info_cb(BIO *, int, int);
|
||||||
|
typedef BIO_info_cb bio_info_cb; /* backward compatibility */
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_stack_macros("BIO");
|
||||||
|
-}
|
||||||
|
|
||||||
|
|
||||||
|
/* Prefix and suffix callback in ASN1 BIO */
|
||||||
|
typedef int asn1_ps_func (BIO *b, unsigned char **pbuf, int *plen,
|
||||||
|
void *parg);
|
||||||
|
|
||||||
|
typedef void (*BIO_dgram_sctp_notification_handler_fn) (BIO *b,
|
||||||
|
void *context,
|
||||||
|
void *buf);
|
||||||
|
# ifndef OPENSSL_NO_SCTP
|
||||||
|
/* SCTP parameter structs */
|
||||||
|
struct bio_dgram_sctp_sndinfo {
|
||||||
|
uint16_t snd_sid;
|
||||||
|
uint16_t snd_flags;
|
||||||
|
uint32_t snd_ppid;
|
||||||
|
uint32_t snd_context;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct bio_dgram_sctp_rcvinfo {
|
||||||
|
uint16_t rcv_sid;
|
||||||
|
uint16_t rcv_ssn;
|
||||||
|
uint16_t rcv_flags;
|
||||||
|
uint32_t rcv_ppid;
|
||||||
|
uint32_t rcv_tsn;
|
||||||
|
uint32_t rcv_cumtsn;
|
||||||
|
uint32_t rcv_context;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct bio_dgram_sctp_prinfo {
|
||||||
|
uint16_t pr_policy;
|
||||||
|
uint32_t pr_value;
|
||||||
|
};
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* #define BIO_CONN_get_param_hostname BIO_ctrl
|
||||||
|
*/
|
||||||
|
|
||||||
|
# define BIO_C_SET_CONNECT 100
|
||||||
|
# define BIO_C_DO_STATE_MACHINE 101
|
||||||
|
# define BIO_C_SET_NBIO 102
|
||||||
|
/* # define BIO_C_SET_PROXY_PARAM 103 */
|
||||||
|
# define BIO_C_SET_FD 104
|
||||||
|
# define BIO_C_GET_FD 105
|
||||||
|
# define BIO_C_SET_FILE_PTR 106
|
||||||
|
# define BIO_C_GET_FILE_PTR 107
|
||||||
|
# define BIO_C_SET_FILENAME 108
|
||||||
|
# define BIO_C_SET_SSL 109
|
||||||
|
# define BIO_C_GET_SSL 110
|
||||||
|
# define BIO_C_SET_MD 111
|
||||||
|
# define BIO_C_GET_MD 112
|
||||||
|
# define BIO_C_GET_CIPHER_STATUS 113
|
||||||
|
# define BIO_C_SET_BUF_MEM 114
|
||||||
|
# define BIO_C_GET_BUF_MEM_PTR 115
|
||||||
|
# define BIO_C_GET_BUFF_NUM_LINES 116
|
||||||
|
# define BIO_C_SET_BUFF_SIZE 117
|
||||||
|
# define BIO_C_SET_ACCEPT 118
|
||||||
|
# define BIO_C_SSL_MODE 119
|
||||||
|
# define BIO_C_GET_MD_CTX 120
|
||||||
|
/* # define BIO_C_GET_PROXY_PARAM 121 */
|
||||||
|
# define BIO_C_SET_BUFF_READ_DATA 122/* data to read first */
|
||||||
|
# define BIO_C_GET_CONNECT 123
|
||||||
|
# define BIO_C_GET_ACCEPT 124
|
||||||
|
# define BIO_C_SET_SSL_RENEGOTIATE_BYTES 125
|
||||||
|
# define BIO_C_GET_SSL_NUM_RENEGOTIATES 126
|
||||||
|
# define BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT 127
|
||||||
|
# define BIO_C_FILE_SEEK 128
|
||||||
|
# define BIO_C_GET_CIPHER_CTX 129
|
||||||
|
# define BIO_C_SET_BUF_MEM_EOF_RETURN 130/* return end of input
|
||||||
|
* value */
|
||||||
|
# define BIO_C_SET_BIND_MODE 131
|
||||||
|
# define BIO_C_GET_BIND_MODE 132
|
||||||
|
# define BIO_C_FILE_TELL 133
|
||||||
|
# define BIO_C_GET_SOCKS 134
|
||||||
|
# define BIO_C_SET_SOCKS 135
|
||||||
|
|
||||||
|
# define BIO_C_SET_WRITE_BUF_SIZE 136/* for BIO_s_bio */
|
||||||
|
# define BIO_C_GET_WRITE_BUF_SIZE 137
|
||||||
|
# define BIO_C_MAKE_BIO_PAIR 138
|
||||||
|
# define BIO_C_DESTROY_BIO_PAIR 139
|
||||||
|
# define BIO_C_GET_WRITE_GUARANTEE 140
|
||||||
|
# define BIO_C_GET_READ_REQUEST 141
|
||||||
|
# define BIO_C_SHUTDOWN_WR 142
|
||||||
|
# define BIO_C_NREAD0 143
|
||||||
|
# define BIO_C_NREAD 144
|
||||||
|
# define BIO_C_NWRITE0 145
|
||||||
|
# define BIO_C_NWRITE 146
|
||||||
|
# define BIO_C_RESET_READ_REQUEST 147
|
||||||
|
# define BIO_C_SET_MD_CTX 148
|
||||||
|
|
||||||
|
# define BIO_C_SET_PREFIX 149
|
||||||
|
# define BIO_C_GET_PREFIX 150
|
||||||
|
# define BIO_C_SET_SUFFIX 151
|
||||||
|
# define BIO_C_GET_SUFFIX 152
|
||||||
|
|
||||||
|
# define BIO_C_SET_EX_ARG 153
|
||||||
|
# define BIO_C_GET_EX_ARG 154
|
||||||
|
|
||||||
|
# define BIO_C_SET_CONNECT_MODE 155
|
||||||
|
|
||||||
|
# define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg)
|
||||||
|
# define BIO_get_app_data(s) BIO_get_ex_data(s,0)
|
||||||
|
|
||||||
|
# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL)
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_SOCK
|
||||||
|
/* IP families we support, for BIO_s_connect() and BIO_s_accept() */
|
||||||
|
/* Note: the underlying operating system may not support some of them */
|
||||||
|
# define BIO_FAMILY_IPV4 4
|
||||||
|
# define BIO_FAMILY_IPV6 6
|
||||||
|
# define BIO_FAMILY_IPANY 256
|
||||||
|
|
||||||
|
/* BIO_s_connect() */
|
||||||
|
# define BIO_set_conn_hostname(b,name) BIO_ctrl(b,BIO_C_SET_CONNECT,0, \
|
||||||
|
(char *)(name))
|
||||||
|
# define BIO_set_conn_port(b,port) BIO_ctrl(b,BIO_C_SET_CONNECT,1, \
|
||||||
|
(char *)(port))
|
||||||
|
# define BIO_set_conn_address(b,addr) BIO_ctrl(b,BIO_C_SET_CONNECT,2, \
|
||||||
|
(char *)(addr))
|
||||||
|
# define BIO_set_conn_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_CONNECT,3,f)
|
||||||
|
# define BIO_get_conn_hostname(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,0))
|
||||||
|
# define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1))
|
||||||
|
# define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2))
|
||||||
|
# define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL)
|
||||||
|
# define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL)
|
||||||
|
|
||||||
|
/* BIO_s_accept() */
|
||||||
|
# define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \
|
||||||
|
(char *)(name))
|
||||||
|
# define BIO_set_accept_port(b,port) BIO_ctrl(b,BIO_C_SET_ACCEPT,1, \
|
||||||
|
(char *)(port))
|
||||||
|
# define BIO_get_accept_name(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,0))
|
||||||
|
# define BIO_get_accept_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,1))
|
||||||
|
# define BIO_get_peer_name(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,2))
|
||||||
|
# define BIO_get_peer_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,3))
|
||||||
|
/* #define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) */
|
||||||
|
# define BIO_set_nbio_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,2,(n)?(void *)"a":NULL)
|
||||||
|
# define BIO_set_accept_bios(b,bio) BIO_ctrl(b,BIO_C_SET_ACCEPT,3, \
|
||||||
|
(char *)(bio))
|
||||||
|
# define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f)
|
||||||
|
# define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL)
|
||||||
|
|
||||||
|
/* Aliases kept for backward compatibility */
|
||||||
|
# define BIO_BIND_NORMAL 0
|
||||||
|
# define BIO_BIND_REUSEADDR BIO_SOCK_REUSEADDR
|
||||||
|
# define BIO_BIND_REUSEADDR_IF_UNUSED BIO_SOCK_REUSEADDR
|
||||||
|
# define BIO_set_bind_mode(b,mode) BIO_ctrl(b,BIO_C_SET_BIND_MODE,mode,NULL)
|
||||||
|
# define BIO_get_bind_mode(b) BIO_ctrl(b,BIO_C_GET_BIND_MODE,0,NULL)
|
||||||
|
# endif /* OPENSSL_NO_SOCK */
|
||||||
|
|
||||||
|
# define BIO_do_connect(b) BIO_do_handshake(b)
|
||||||
|
# define BIO_do_accept(b) BIO_do_handshake(b)
|
||||||
|
|
||||||
|
# define BIO_do_handshake(b) BIO_ctrl(b,BIO_C_DO_STATE_MACHINE,0,NULL)
|
||||||
|
|
||||||
|
/* BIO_s_datagram(), BIO_s_fd(), BIO_s_socket(), BIO_s_accept() and BIO_s_connect() */
|
||||||
|
# define BIO_set_fd(b,fd,c) BIO_int_ctrl(b,BIO_C_SET_FD,c,fd)
|
||||||
|
# define BIO_get_fd(b,c) BIO_ctrl(b,BIO_C_GET_FD,0,(char *)(c))
|
||||||
|
|
||||||
|
/* BIO_s_file() */
|
||||||
|
# define BIO_set_fp(b,fp,c) BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,(char *)(fp))
|
||||||
|
# define BIO_get_fp(b,fpp) BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,(char *)(fpp))
|
||||||
|
|
||||||
|
/* BIO_s_fd() and BIO_s_file() */
|
||||||
|
# define BIO_seek(b,ofs) (int)BIO_ctrl(b,BIO_C_FILE_SEEK,ofs,NULL)
|
||||||
|
# define BIO_tell(b) (int)BIO_ctrl(b,BIO_C_FILE_TELL,0,NULL)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* name is cast to lose const, but might be better to route through a
|
||||||
|
* function so we can do it safely
|
||||||
|
*/
|
||||||
|
# ifdef CONST_STRICT
|
||||||
|
/*
|
||||||
|
* If you are wondering why this isn't defined, its because CONST_STRICT is
|
||||||
|
* purely a compile-time kludge to allow const to be checked.
|
||||||
|
*/
|
||||||
|
int BIO_read_filename(BIO *b, const char *name);
|
||||||
|
# else
|
||||||
|
# define BIO_read_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \
|
||||||
|
BIO_CLOSE|BIO_FP_READ,(char *)(name))
|
||||||
|
# endif
|
||||||
|
# define BIO_write_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \
|
||||||
|
BIO_CLOSE|BIO_FP_WRITE,name)
|
||||||
|
# define BIO_append_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \
|
||||||
|
BIO_CLOSE|BIO_FP_APPEND,name)
|
||||||
|
# define BIO_rw_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \
|
||||||
|
BIO_CLOSE|BIO_FP_READ|BIO_FP_WRITE,name)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* WARNING WARNING, this ups the reference count on the read bio of the SSL
|
||||||
|
* structure. This is because the ssl read BIO is now pointed to by the
|
||||||
|
* next_bio field in the bio. So when you free the BIO, make sure you are
|
||||||
|
* doing a BIO_free_all() to catch the underlying BIO.
|
||||||
|
*/
|
||||||
|
# define BIO_set_ssl(b,ssl,c) BIO_ctrl(b,BIO_C_SET_SSL,c,(char *)(ssl))
|
||||||
|
# define BIO_get_ssl(b,sslp) BIO_ctrl(b,BIO_C_GET_SSL,0,(char *)(sslp))
|
||||||
|
# define BIO_set_ssl_mode(b,client) BIO_ctrl(b,BIO_C_SSL_MODE,client,NULL)
|
||||||
|
# define BIO_set_ssl_renegotiate_bytes(b,num) \
|
||||||
|
BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_BYTES,num,NULL)
|
||||||
|
# define BIO_get_num_renegotiates(b) \
|
||||||
|
BIO_ctrl(b,BIO_C_GET_SSL_NUM_RENEGOTIATES,0,NULL)
|
||||||
|
# define BIO_set_ssl_renegotiate_timeout(b,seconds) \
|
||||||
|
BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT,seconds,NULL)
|
||||||
|
|
||||||
|
/* defined in evp.h */
|
||||||
|
/* #define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,1,(char *)(md)) */
|
||||||
|
|
||||||
|
# define BIO_get_mem_data(b,pp) BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)(pp))
|
||||||
|
# define BIO_set_mem_buf(b,bm,c) BIO_ctrl(b,BIO_C_SET_BUF_MEM,c,(char *)(bm))
|
||||||
|
# define BIO_get_mem_ptr(b,pp) BIO_ctrl(b,BIO_C_GET_BUF_MEM_PTR,0, \
|
||||||
|
(char *)(pp))
|
||||||
|
# define BIO_set_mem_eof_return(b,v) \
|
||||||
|
BIO_ctrl(b,BIO_C_SET_BUF_MEM_EOF_RETURN,v,NULL)
|
||||||
|
|
||||||
|
/* For the BIO_f_buffer() type */
|
||||||
|
# define BIO_get_buffer_num_lines(b) BIO_ctrl(b,BIO_C_GET_BUFF_NUM_LINES,0,NULL)
|
||||||
|
# define BIO_set_buffer_size(b,size) BIO_ctrl(b,BIO_C_SET_BUFF_SIZE,size,NULL)
|
||||||
|
# define BIO_set_read_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,0)
|
||||||
|
# define BIO_set_write_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,1)
|
||||||
|
# define BIO_set_buffer_read_data(b,buf,num) BIO_ctrl(b,BIO_C_SET_BUFF_READ_DATA,num,buf)
|
||||||
|
|
||||||
|
/* Don't use the next one unless you know what you are doing :-) */
|
||||||
|
# define BIO_dup_state(b,ret) BIO_ctrl(b,BIO_CTRL_DUP,0,(char *)(ret))
|
||||||
|
|
||||||
|
# define BIO_reset(b) (int)BIO_ctrl(b,BIO_CTRL_RESET,0,NULL)
|
||||||
|
# define BIO_eof(b) (int)BIO_ctrl(b,BIO_CTRL_EOF,0,NULL)
|
||||||
|
# define BIO_set_close(b,c) (int)BIO_ctrl(b,BIO_CTRL_SET_CLOSE,(c),NULL)
|
||||||
|
# define BIO_get_close(b) (int)BIO_ctrl(b,BIO_CTRL_GET_CLOSE,0,NULL)
|
||||||
|
# define BIO_pending(b) (int)BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL)
|
||||||
|
# define BIO_wpending(b) (int)BIO_ctrl(b,BIO_CTRL_WPENDING,0,NULL)
|
||||||
|
/* ...pending macros have inappropriate return type */
|
||||||
|
size_t BIO_ctrl_pending(BIO *b);
|
||||||
|
size_t BIO_ctrl_wpending(BIO *b);
|
||||||
|
# define BIO_flush(b) (int)BIO_ctrl(b,BIO_CTRL_FLUSH,0,NULL)
|
||||||
|
# define BIO_get_info_callback(b,cbp) (int)BIO_ctrl(b,BIO_CTRL_GET_CALLBACK,0, \
|
||||||
|
cbp)
|
||||||
|
# define BIO_set_info_callback(b,cb) (int)BIO_callback_ctrl(b,BIO_CTRL_SET_CALLBACK,cb)
|
||||||
|
|
||||||
|
/* For the BIO_f_buffer() type */
|
||||||
|
# define BIO_buffer_get_num_lines(b) BIO_ctrl(b,BIO_CTRL_GET,0,NULL)
|
||||||
|
# define BIO_buffer_peek(b,s,l) BIO_ctrl(b,BIO_CTRL_PEEK,(l),(s))
|
||||||
|
|
||||||
|
/* For BIO_s_bio() */
|
||||||
|
# define BIO_set_write_buf_size(b,size) (int)BIO_ctrl(b,BIO_C_SET_WRITE_BUF_SIZE,size,NULL)
|
||||||
|
# define BIO_get_write_buf_size(b,size) (size_t)BIO_ctrl(b,BIO_C_GET_WRITE_BUF_SIZE,size,NULL)
|
||||||
|
# define BIO_make_bio_pair(b1,b2) (int)BIO_ctrl(b1,BIO_C_MAKE_BIO_PAIR,0,b2)
|
||||||
|
# define BIO_destroy_bio_pair(b) (int)BIO_ctrl(b,BIO_C_DESTROY_BIO_PAIR,0,NULL)
|
||||||
|
# define BIO_shutdown_wr(b) (int)BIO_ctrl(b, BIO_C_SHUTDOWN_WR, 0, NULL)
|
||||||
|
/* macros with inappropriate type -- but ...pending macros use int too: */
|
||||||
|
# define BIO_get_write_guarantee(b) (int)BIO_ctrl(b,BIO_C_GET_WRITE_GUARANTEE,0,NULL)
|
||||||
|
# define BIO_get_read_request(b) (int)BIO_ctrl(b,BIO_C_GET_READ_REQUEST,0,NULL)
|
||||||
|
size_t BIO_ctrl_get_write_guarantee(BIO *b);
|
||||||
|
size_t BIO_ctrl_get_read_request(BIO *b);
|
||||||
|
int BIO_ctrl_reset_read_request(BIO *b);
|
||||||
|
|
||||||
|
/* ctrl macros for dgram */
|
||||||
|
# define BIO_ctrl_dgram_connect(b,peer) \
|
||||||
|
(int)BIO_ctrl(b,BIO_CTRL_DGRAM_CONNECT,0, (char *)(peer))
|
||||||
|
# define BIO_ctrl_set_connected(b,peer) \
|
||||||
|
(int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_CONNECTED, 0, (char *)(peer))
|
||||||
|
# define BIO_dgram_recv_timedout(b) \
|
||||||
|
(int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP, 0, NULL)
|
||||||
|
# define BIO_dgram_send_timedout(b) \
|
||||||
|
(int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP, 0, NULL)
|
||||||
|
# define BIO_dgram_get_peer(b,peer) \
|
||||||
|
(int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer))
|
||||||
|
# define BIO_dgram_set_peer(b,peer) \
|
||||||
|
(int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer))
|
||||||
|
# define BIO_dgram_get_mtu_overhead(b) \
|
||||||
|
(unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL)
|
||||||
|
|
||||||
|
/* ctrl macros for BIO_f_prefix */
|
||||||
|
# define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p))
|
||||||
|
# define BIO_set_indent(b,i) BIO_ctrl((b), BIO_CTRL_SET_INDENT, (i), NULL)
|
||||||
|
# define BIO_get_indent(b) BIO_ctrl((b), BIO_CTRL_GET_INDENT, 0, NULL)
|
||||||
|
|
||||||
|
#define BIO_get_ex_new_index(l, p, newf, dupf, freef) \
|
||||||
|
CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_BIO, l, p, newf, dupf, freef)
|
||||||
|
int BIO_set_ex_data(BIO *bio, int idx, void *data);
|
||||||
|
void *BIO_get_ex_data(const BIO *bio, int idx);
|
||||||
|
uint64_t BIO_number_read(BIO *bio);
|
||||||
|
uint64_t BIO_number_written(BIO *bio);
|
||||||
|
|
||||||
|
/* For BIO_f_asn1() */
|
||||||
|
int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix,
|
||||||
|
asn1_ps_func *prefix_free);
|
||||||
|
int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix,
|
||||||
|
asn1_ps_func **pprefix_free);
|
||||||
|
int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix,
|
||||||
|
asn1_ps_func *suffix_free);
|
||||||
|
int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix,
|
||||||
|
asn1_ps_func **psuffix_free);
|
||||||
|
|
||||||
|
const BIO_METHOD *BIO_s_file(void);
|
||||||
|
BIO *BIO_new_file(const char *filename, const char *mode);
|
||||||
|
BIO *BIO_new_from_core_bio(OSSL_LIB_CTX *libctx, OSSL_CORE_BIO *corebio);
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
BIO *BIO_new_fp(FILE *stream, int close_flag);
|
||||||
|
# endif
|
||||||
|
BIO *BIO_new_ex(OSSL_LIB_CTX *libctx, const BIO_METHOD *method);
|
||||||
|
BIO *BIO_new(const BIO_METHOD *type);
|
||||||
|
int BIO_free(BIO *a);
|
||||||
|
void BIO_set_data(BIO *a, void *ptr);
|
||||||
|
void *BIO_get_data(BIO *a);
|
||||||
|
void BIO_set_init(BIO *a, int init);
|
||||||
|
int BIO_get_init(BIO *a);
|
||||||
|
void BIO_set_shutdown(BIO *a, int shut);
|
||||||
|
int BIO_get_shutdown(BIO *a);
|
||||||
|
void BIO_vfree(BIO *a);
|
||||||
|
int BIO_up_ref(BIO *a);
|
||||||
|
int BIO_read(BIO *b, void *data, int dlen);
|
||||||
|
int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes);
|
||||||
|
int BIO_gets(BIO *bp, char *buf, int size);
|
||||||
|
int BIO_get_line(BIO *bio, char *buf, int size);
|
||||||
|
int BIO_write(BIO *b, const void *data, int dlen);
|
||||||
|
int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written);
|
||||||
|
int BIO_puts(BIO *bp, const char *buf);
|
||||||
|
int BIO_indent(BIO *b, int indent, int max);
|
||||||
|
long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg);
|
||||||
|
long BIO_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp);
|
||||||
|
void *BIO_ptr_ctrl(BIO *bp, int cmd, long larg);
|
||||||
|
long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg);
|
||||||
|
BIO *BIO_push(BIO *b, BIO *append);
|
||||||
|
BIO *BIO_pop(BIO *b);
|
||||||
|
void BIO_free_all(BIO *a);
|
||||||
|
BIO *BIO_find_type(BIO *b, int bio_type);
|
||||||
|
BIO *BIO_next(BIO *b);
|
||||||
|
void BIO_set_next(BIO *b, BIO *next);
|
||||||
|
BIO *BIO_get_retry_BIO(BIO *bio, int *reason);
|
||||||
|
int BIO_get_retry_reason(BIO *bio);
|
||||||
|
void BIO_set_retry_reason(BIO *bio, int reason);
|
||||||
|
BIO *BIO_dup_chain(BIO *in);
|
||||||
|
|
||||||
|
int BIO_nread0(BIO *bio, char **buf);
|
||||||
|
int BIO_nread(BIO *bio, char **buf, int num);
|
||||||
|
int BIO_nwrite0(BIO *bio, char **buf);
|
||||||
|
int BIO_nwrite(BIO *bio, char **buf, int num);
|
||||||
|
|
||||||
|
const BIO_METHOD *BIO_s_mem(void);
|
||||||
|
const BIO_METHOD *BIO_s_secmem(void);
|
||||||
|
BIO *BIO_new_mem_buf(const void *buf, int len);
|
||||||
|
# ifndef OPENSSL_NO_SOCK
|
||||||
|
const BIO_METHOD *BIO_s_socket(void);
|
||||||
|
const BIO_METHOD *BIO_s_connect(void);
|
||||||
|
const BIO_METHOD *BIO_s_accept(void);
|
||||||
|
# endif
|
||||||
|
const BIO_METHOD *BIO_s_fd(void);
|
||||||
|
const BIO_METHOD *BIO_s_log(void);
|
||||||
|
const BIO_METHOD *BIO_s_bio(void);
|
||||||
|
const BIO_METHOD *BIO_s_null(void);
|
||||||
|
const BIO_METHOD *BIO_f_null(void);
|
||||||
|
const BIO_METHOD *BIO_f_buffer(void);
|
||||||
|
const BIO_METHOD *BIO_f_readbuffer(void);
|
||||||
|
const BIO_METHOD *BIO_f_linebuffer(void);
|
||||||
|
const BIO_METHOD *BIO_f_nbio_test(void);
|
||||||
|
const BIO_METHOD *BIO_f_prefix(void);
|
||||||
|
const BIO_METHOD *BIO_s_core(void);
|
||||||
|
# ifndef OPENSSL_NO_DGRAM
|
||||||
|
const BIO_METHOD *BIO_s_datagram(void);
|
||||||
|
int BIO_dgram_non_fatal_error(int error);
|
||||||
|
BIO *BIO_new_dgram(int fd, int close_flag);
|
||||||
|
# ifndef OPENSSL_NO_SCTP
|
||||||
|
const BIO_METHOD *BIO_s_datagram_sctp(void);
|
||||||
|
BIO *BIO_new_dgram_sctp(int fd, int close_flag);
|
||||||
|
int BIO_dgram_is_sctp(BIO *bio);
|
||||||
|
int BIO_dgram_sctp_notification_cb(BIO *b,
|
||||||
|
BIO_dgram_sctp_notification_handler_fn handle_notifications,
|
||||||
|
void *context);
|
||||||
|
int BIO_dgram_sctp_wait_for_dry(BIO *b);
|
||||||
|
int BIO_dgram_sctp_msg_waiting(BIO *b);
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_SOCK
|
||||||
|
int BIO_sock_should_retry(int i);
|
||||||
|
int BIO_sock_non_fatal_error(int error);
|
||||||
|
int BIO_socket_wait(int fd, int for_read, time_t max_time);
|
||||||
|
# endif
|
||||||
|
int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds);
|
||||||
|
int BIO_do_connect_retry(BIO *bio, int timeout, int nap_milliseconds);
|
||||||
|
|
||||||
|
int BIO_fd_should_retry(int i);
|
||||||
|
int BIO_fd_non_fatal_error(int error);
|
||||||
|
int BIO_dump_cb(int (*cb) (const void *data, size_t len, void *u),
|
||||||
|
void *u, const void *s, int len);
|
||||||
|
int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u),
|
||||||
|
void *u, const void *s, int len, int indent);
|
||||||
|
int BIO_dump(BIO *b, const void *bytes, int len);
|
||||||
|
int BIO_dump_indent(BIO *b, const void *bytes, int len, int indent);
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
int BIO_dump_fp(FILE *fp, const void *s, int len);
|
||||||
|
int BIO_dump_indent_fp(FILE *fp, const void *s, int len, int indent);
|
||||||
|
# endif
|
||||||
|
int BIO_hex_string(BIO *out, int indent, int width, const void *data,
|
||||||
|
int datalen);
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_SOCK
|
||||||
|
BIO_ADDR *BIO_ADDR_new(void);
|
||||||
|
int BIO_ADDR_rawmake(BIO_ADDR *ap, int family,
|
||||||
|
const void *where, size_t wherelen, unsigned short port);
|
||||||
|
void BIO_ADDR_free(BIO_ADDR *);
|
||||||
|
void BIO_ADDR_clear(BIO_ADDR *ap);
|
||||||
|
int BIO_ADDR_family(const BIO_ADDR *ap);
|
||||||
|
int BIO_ADDR_rawaddress(const BIO_ADDR *ap, void *p, size_t *l);
|
||||||
|
unsigned short BIO_ADDR_rawport(const BIO_ADDR *ap);
|
||||||
|
char *BIO_ADDR_hostname_string(const BIO_ADDR *ap, int numeric);
|
||||||
|
char *BIO_ADDR_service_string(const BIO_ADDR *ap, int numeric);
|
||||||
|
char *BIO_ADDR_path_string(const BIO_ADDR *ap);
|
||||||
|
|
||||||
|
const BIO_ADDRINFO *BIO_ADDRINFO_next(const BIO_ADDRINFO *bai);
|
||||||
|
int BIO_ADDRINFO_family(const BIO_ADDRINFO *bai);
|
||||||
|
int BIO_ADDRINFO_socktype(const BIO_ADDRINFO *bai);
|
||||||
|
int BIO_ADDRINFO_protocol(const BIO_ADDRINFO *bai);
|
||||||
|
const BIO_ADDR *BIO_ADDRINFO_address(const BIO_ADDRINFO *bai);
|
||||||
|
void BIO_ADDRINFO_free(BIO_ADDRINFO *bai);
|
||||||
|
|
||||||
|
enum BIO_hostserv_priorities {
|
||||||
|
BIO_PARSE_PRIO_HOST, BIO_PARSE_PRIO_SERV
|
||||||
|
};
|
||||||
|
int BIO_parse_hostserv(const char *hostserv, char **host, char **service,
|
||||||
|
enum BIO_hostserv_priorities hostserv_prio);
|
||||||
|
enum BIO_lookup_type {
|
||||||
|
BIO_LOOKUP_CLIENT, BIO_LOOKUP_SERVER
|
||||||
|
};
|
||||||
|
int BIO_lookup(const char *host, const char *service,
|
||||||
|
enum BIO_lookup_type lookup_type,
|
||||||
|
int family, int socktype, BIO_ADDRINFO **res);
|
||||||
|
int BIO_lookup_ex(const char *host, const char *service,
|
||||||
|
int lookup_type, int family, int socktype, int protocol,
|
||||||
|
BIO_ADDRINFO **res);
|
||||||
|
int BIO_sock_error(int sock);
|
||||||
|
int BIO_socket_ioctl(int fd, long type, void *arg);
|
||||||
|
int BIO_socket_nbio(int fd, int mode);
|
||||||
|
int BIO_sock_init(void);
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
# define BIO_sock_cleanup() while(0) continue
|
||||||
|
# endif
|
||||||
|
int BIO_set_tcp_ndelay(int sock, int turn_on);
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
OSSL_DEPRECATEDIN_1_1_0 struct hostent *BIO_gethostbyname(const char *name);
|
||||||
|
OSSL_DEPRECATEDIN_1_1_0 int BIO_get_port(const char *str, unsigned short *port_ptr);
|
||||||
|
OSSL_DEPRECATEDIN_1_1_0 int BIO_get_host_ip(const char *str, unsigned char *ip);
|
||||||
|
OSSL_DEPRECATEDIN_1_1_0 int BIO_get_accept_socket(char *host_port, int mode);
|
||||||
|
OSSL_DEPRECATEDIN_1_1_0 int BIO_accept(int sock, char **ip_port);
|
||||||
|
# endif
|
||||||
|
|
||||||
|
union BIO_sock_info_u {
|
||||||
|
BIO_ADDR *addr;
|
||||||
|
};
|
||||||
|
enum BIO_sock_info_type {
|
||||||
|
BIO_SOCK_INFO_ADDRESS
|
||||||
|
};
|
||||||
|
int BIO_sock_info(int sock,
|
||||||
|
enum BIO_sock_info_type type, union BIO_sock_info_u *info);
|
||||||
|
|
||||||
|
# define BIO_SOCK_REUSEADDR 0x01
|
||||||
|
# define BIO_SOCK_V6_ONLY 0x02
|
||||||
|
# define BIO_SOCK_KEEPALIVE 0x04
|
||||||
|
# define BIO_SOCK_NONBLOCK 0x08
|
||||||
|
# define BIO_SOCK_NODELAY 0x10
|
||||||
|
|
||||||
|
int BIO_socket(int domain, int socktype, int protocol, int options);
|
||||||
|
int BIO_connect(int sock, const BIO_ADDR *addr, int options);
|
||||||
|
int BIO_bind(int sock, const BIO_ADDR *addr, int options);
|
||||||
|
int BIO_listen(int sock, const BIO_ADDR *addr, int options);
|
||||||
|
int BIO_accept_ex(int accept_sock, BIO_ADDR *addr, int options);
|
||||||
|
int BIO_closesocket(int sock);
|
||||||
|
|
||||||
|
BIO *BIO_new_socket(int sock, int close_flag);
|
||||||
|
BIO *BIO_new_connect(const char *host_port);
|
||||||
|
BIO *BIO_new_accept(const char *host_port);
|
||||||
|
# endif /* OPENSSL_NO_SOCK*/
|
||||||
|
|
||||||
|
BIO *BIO_new_fd(int fd, int close_flag);
|
||||||
|
|
||||||
|
int BIO_new_bio_pair(BIO **bio1, size_t writebuf1,
|
||||||
|
BIO **bio2, size_t writebuf2);
|
||||||
|
/*
|
||||||
|
* If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints.
|
||||||
|
* Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default
|
||||||
|
* value.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void BIO_copy_next_retry(BIO *b);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* long BIO_ghbn_ctrl(int cmd,int iarg,char *parg);
|
||||||
|
*/
|
||||||
|
|
||||||
|
# define ossl_bio__attr__(x)
|
||||||
|
# if defined(__GNUC__) && defined(__STDC_VERSION__) \
|
||||||
|
&& !defined(__MINGW32__) && !defined(__MINGW64__) \
|
||||||
|
&& !defined(__APPLE__)
|
||||||
|
/*
|
||||||
|
* Because we support the 'z' modifier, which made its appearance in C99,
|
||||||
|
* we can't use __attribute__ with pre C99 dialects.
|
||||||
|
*/
|
||||||
|
# if __STDC_VERSION__ >= 199901L
|
||||||
|
# undef ossl_bio__attr__
|
||||||
|
# define ossl_bio__attr__ __attribute__
|
||||||
|
# if __GNUC__*10 + __GNUC_MINOR__ >= 44
|
||||||
|
# define ossl_bio__printf__ __gnu_printf__
|
||||||
|
# else
|
||||||
|
# define ossl_bio__printf__ __printf__
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
int BIO_printf(BIO *bio, const char *format, ...)
|
||||||
|
ossl_bio__attr__((__format__(ossl_bio__printf__, 2, 3)));
|
||||||
|
int BIO_vprintf(BIO *bio, const char *format, va_list args)
|
||||||
|
ossl_bio__attr__((__format__(ossl_bio__printf__, 2, 0)));
|
||||||
|
int BIO_snprintf(char *buf, size_t n, const char *format, ...)
|
||||||
|
ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 4)));
|
||||||
|
int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args)
|
||||||
|
ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0)));
|
||||||
|
# undef ossl_bio__attr__
|
||||||
|
# undef ossl_bio__printf__
|
||||||
|
|
||||||
|
|
||||||
|
BIO_METHOD *BIO_meth_new(int type, const char *name);
|
||||||
|
void BIO_meth_free(BIO_METHOD *biom);
|
||||||
|
int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int);
|
||||||
|
int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t,
|
||||||
|
size_t *);
|
||||||
|
int BIO_meth_set_write(BIO_METHOD *biom,
|
||||||
|
int (*write) (BIO *, const char *, int));
|
||||||
|
int BIO_meth_set_write_ex(BIO_METHOD *biom,
|
||||||
|
int (*bwrite) (BIO *, const char *, size_t, size_t *));
|
||||||
|
int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int);
|
||||||
|
int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *);
|
||||||
|
int BIO_meth_set_read(BIO_METHOD *biom,
|
||||||
|
int (*read) (BIO *, char *, int));
|
||||||
|
int BIO_meth_set_read_ex(BIO_METHOD *biom,
|
||||||
|
int (*bread) (BIO *, char *, size_t, size_t *));
|
||||||
|
int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *);
|
||||||
|
int BIO_meth_set_puts(BIO_METHOD *biom,
|
||||||
|
int (*puts) (BIO *, const char *));
|
||||||
|
int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int);
|
||||||
|
int BIO_meth_set_gets(BIO_METHOD *biom,
|
||||||
|
int (*gets) (BIO *, char *, int));
|
||||||
|
long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *);
|
||||||
|
int BIO_meth_set_ctrl(BIO_METHOD *biom,
|
||||||
|
long (*ctrl) (BIO *, int, long, void *));
|
||||||
|
int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *);
|
||||||
|
int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *));
|
||||||
|
int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *);
|
||||||
|
int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *));
|
||||||
|
long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom))
|
||||||
|
(BIO *, int, BIO_info_cb *);
|
||||||
|
int BIO_meth_set_callback_ctrl(BIO_METHOD *biom,
|
||||||
|
long (*callback_ctrl) (BIO *, int,
|
||||||
|
BIO_info_cb *));
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
#endif
|
597
deps/openssl/mingw64/include/openssl/cmp.h
vendored
Normal file
597
deps/openssl/mingw64/include/openssl/cmp.h
vendored
Normal file
@ -0,0 +1,597 @@
|
|||||||
|
/*
|
||||||
|
* WARNING: do not edit!
|
||||||
|
* Generated by Makefile from include/openssl/cmp.h.in
|
||||||
|
*
|
||||||
|
* Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
* Copyright Nokia 2007-2019
|
||||||
|
* Copyright Siemens AG 2015-2019
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef OPENSSL_CMP_H
|
||||||
|
# define OPENSSL_CMP_H
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
# ifndef OPENSSL_NO_CMP
|
||||||
|
|
||||||
|
# include <openssl/crmf.h>
|
||||||
|
# include <openssl/cmperr.h>
|
||||||
|
# include <openssl/cmp_util.h>
|
||||||
|
# include <openssl/http.h>
|
||||||
|
|
||||||
|
/* explicit #includes not strictly needed since implied by the above: */
|
||||||
|
# include <openssl/types.h>
|
||||||
|
# include <openssl/safestack.h>
|
||||||
|
# include <openssl/x509.h>
|
||||||
|
# include <openssl/x509v3.h>
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# define OSSL_CMP_PVNO 2
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* PKIFailureInfo ::= BIT STRING {
|
||||||
|
* -- since we can fail in more than one way!
|
||||||
|
* -- More codes may be added in the future if/when required.
|
||||||
|
* badAlg (0),
|
||||||
|
* -- unrecognized or unsupported Algorithm Identifier
|
||||||
|
* badMessageCheck (1),
|
||||||
|
* -- integrity check failed (e.g., signature did not verify)
|
||||||
|
* badRequest (2),
|
||||||
|
* -- transaction not permitted or supported
|
||||||
|
* badTime (3),
|
||||||
|
* -- messageTime was not sufficiently close to the system time,
|
||||||
|
* -- as defined by local policy
|
||||||
|
* badCertId (4),
|
||||||
|
* -- no certificate could be found matching the provided criteria
|
||||||
|
* badDataFormat (5),
|
||||||
|
* -- the data submitted has the wrong format
|
||||||
|
* wrongAuthority (6),
|
||||||
|
* -- the authority indicated in the request is different from the
|
||||||
|
* -- one creating the response token
|
||||||
|
* incorrectData (7),
|
||||||
|
* -- the requester's data is incorrect (for notary services)
|
||||||
|
* missingTimeStamp (8),
|
||||||
|
* -- when the timestamp is missing but should be there
|
||||||
|
* -- (by policy)
|
||||||
|
* badPOP (9),
|
||||||
|
* -- the proof-of-possession failed
|
||||||
|
* certRevoked (10),
|
||||||
|
* -- the certificate has already been revoked
|
||||||
|
* certConfirmed (11),
|
||||||
|
* -- the certificate has already been confirmed
|
||||||
|
* wrongIntegrity (12),
|
||||||
|
* -- invalid integrity, password based instead of signature or
|
||||||
|
* -- vice versa
|
||||||
|
* badRecipientNonce (13),
|
||||||
|
* -- invalid recipient nonce, either missing or wrong value
|
||||||
|
* timeNotAvailable (14),
|
||||||
|
* -- the TSA's time source is not available
|
||||||
|
* unacceptedPolicy (15),
|
||||||
|
* -- the requested TSA policy is not supported by the TSA.
|
||||||
|
* unacceptedExtension (16),
|
||||||
|
* -- the requested extension is not supported by the TSA.
|
||||||
|
* addInfoNotAvailable (17),
|
||||||
|
* -- the additional information requested could not be
|
||||||
|
* -- understood or is not available
|
||||||
|
* badSenderNonce (18),
|
||||||
|
* -- invalid sender nonce, either missing or wrong size
|
||||||
|
* badCertTemplate (19),
|
||||||
|
* -- invalid cert. template or missing mandatory information
|
||||||
|
* signerNotTrusted (20),
|
||||||
|
* -- signer of the message unknown or not trusted
|
||||||
|
* transactionIdInUse (21),
|
||||||
|
* -- the transaction identifier is already in use
|
||||||
|
* unsupportedVersion (22),
|
||||||
|
* -- the version of the message is not supported
|
||||||
|
* notAuthorized (23),
|
||||||
|
* -- the sender was not authorized to make the preceding
|
||||||
|
* -- request or perform the preceding action
|
||||||
|
* systemUnavail (24),
|
||||||
|
* -- the request cannot be handled due to system unavailability
|
||||||
|
* systemFailure (25),
|
||||||
|
* -- the request cannot be handled due to system failure
|
||||||
|
* duplicateCertReq (26)
|
||||||
|
* -- certificate cannot be issued because a duplicate
|
||||||
|
* -- certificate already exists
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_badAlg 0
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_badMessageCheck 1
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_badRequest 2
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_badTime 3
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_badCertId 4
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_badDataFormat 5
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_wrongAuthority 6
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_incorrectData 7
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_missingTimeStamp 8
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_badPOP 9
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_certRevoked 10
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_certConfirmed 11
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_wrongIntegrity 12
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_badRecipientNonce 13
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_timeNotAvailable 14
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_unacceptedPolicy 15
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_unacceptedExtension 16
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_addInfoNotAvailable 17
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_badSenderNonce 18
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_badCertTemplate 19
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_signerNotTrusted 20
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_transactionIdInUse 21
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_unsupportedVersion 22
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_notAuthorized 23
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_systemUnavail 24
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_systemFailure 25
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_duplicateCertReq 26
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_MAX 26
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN \
|
||||||
|
((1 << (OSSL_CMP_PKIFAILUREINFO_MAX + 1)) - 1)
|
||||||
|
# if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX
|
||||||
|
# error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int
|
||||||
|
# endif
|
||||||
|
|
||||||
|
typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO;
|
||||||
|
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_badMessageCheck (1 << 1)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_badRequest (1 << 2)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_badTime (1 << 3)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_badCertId (1 << 4)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_badDataFormat (1 << 5)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_wrongAuthority (1 << 6)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_incorrectData (1 << 7)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_missingTimeStamp (1 << 8)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_badPOP (1 << 9)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_certRevoked (1 << 10)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_certConfirmed (1 << 11)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_wrongIntegrity (1 << 12)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_badRecipientNonce (1 << 13)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_timeNotAvailable (1 << 14)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_unacceptedPolicy (1 << 15)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_unacceptedExtension (1 << 16)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_addInfoNotAvailable (1 << 17)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_badSenderNonce (1 << 18)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_badCertTemplate (1 << 19)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_signerNotTrusted (1 << 20)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_transactionIdInUse (1 << 21)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_unsupportedVersion (1 << 22)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_notAuthorized (1 << 23)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_systemUnavail (1 << 24)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_systemFailure (1 << 25)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_duplicateCertReq (1 << 26)
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* PKIStatus ::= INTEGER {
|
||||||
|
* accepted (0),
|
||||||
|
* -- you got exactly what you asked for
|
||||||
|
* grantedWithMods (1),
|
||||||
|
* -- you got something like what you asked for; the
|
||||||
|
* -- requester is responsible for ascertaining the differences
|
||||||
|
* rejection (2),
|
||||||
|
* -- you don't get it, more information elsewhere in the message
|
||||||
|
* waiting (3),
|
||||||
|
* -- the request body part has not yet been processed; expect to
|
||||||
|
* -- hear more later (note: proper handling of this status
|
||||||
|
* -- response MAY use the polling req/rep PKIMessages specified
|
||||||
|
* -- in Section 5.3.22; alternatively, polling in the underlying
|
||||||
|
* -- transport layer MAY have some utility in this regard)
|
||||||
|
* revocationWarning (4),
|
||||||
|
* -- this message contains a warning that a revocation is
|
||||||
|
* -- imminent
|
||||||
|
* revocationNotification (5),
|
||||||
|
* -- notification that a revocation has occurred
|
||||||
|
* keyUpdateWarning (6)
|
||||||
|
* -- update already done for the oldCertId specified in
|
||||||
|
* -- CertReqMsg
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
# define OSSL_CMP_PKISTATUS_request -3
|
||||||
|
# define OSSL_CMP_PKISTATUS_trans -2
|
||||||
|
# define OSSL_CMP_PKISTATUS_unspecified -1
|
||||||
|
# define OSSL_CMP_PKISTATUS_accepted 0
|
||||||
|
# define OSSL_CMP_PKISTATUS_grantedWithMods 1
|
||||||
|
# define OSSL_CMP_PKISTATUS_rejection 2
|
||||||
|
# define OSSL_CMP_PKISTATUS_waiting 3
|
||||||
|
# define OSSL_CMP_PKISTATUS_revocationWarning 4
|
||||||
|
# define OSSL_CMP_PKISTATUS_revocationNotification 5
|
||||||
|
# define OSSL_CMP_PKISTATUS_keyUpdateWarning 6
|
||||||
|
|
||||||
|
typedef ASN1_INTEGER OSSL_CMP_PKISTATUS;
|
||||||
|
DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS)
|
||||||
|
|
||||||
|
# define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0
|
||||||
|
# define OSSL_CMP_CERTORENCCERT_ENCRYPTEDCERT 1
|
||||||
|
|
||||||
|
/* data type declarations */
|
||||||
|
typedef struct ossl_cmp_ctx_st OSSL_CMP_CTX;
|
||||||
|
typedef struct ossl_cmp_pkiheader_st OSSL_CMP_PKIHEADER;
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKIHEADER)
|
||||||
|
typedef struct ossl_cmp_msg_st OSSL_CMP_MSG;
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(OSSL_CMP_MSG)
|
||||||
|
DECLARE_ASN1_ENCODE_FUNCTIONS(OSSL_CMP_MSG, OSSL_CMP_MSG, OSSL_CMP_MSG)
|
||||||
|
typedef struct ossl_cmp_certstatus_st OSSL_CMP_CERTSTATUS;
|
||||||
|
SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CERTSTATUS, OSSL_CMP_CERTSTATUS, OSSL_CMP_CERTSTATUS)
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_value(sk, idx) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk), (idx)))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CERTSTATUS_compfunc_type(cmp)))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_new_null() ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_new_null())
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CERTSTATUS_compfunc_type(cmp), (n)))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), (n))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_delete(sk, i) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), (i)))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr)))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_pop(sk) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk)))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_shift(sk) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk)))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CERTSTATUS_freefunc_type(freefunc))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr), (idx))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr)))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr), pnum)
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk)))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CERTSTATUS_freefunc_type(freefunc)))
|
||||||
|
#define sk_OSSL_CMP_CERTSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CERTSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_compfunc_type(cmp)))
|
||||||
|
|
||||||
|
typedef struct ossl_cmp_itav_st OSSL_CMP_ITAV;
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(OSSL_CMP_ITAV)
|
||||||
|
SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV)
|
||||||
|
#define sk_OSSL_CMP_ITAV_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_ITAV_value(sk, idx) ((OSSL_CMP_ITAV *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), (idx)))
|
||||||
|
#define sk_OSSL_CMP_ITAV_new(cmp) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp)))
|
||||||
|
#define sk_OSSL_CMP_ITAV_new_null() ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_new_null())
|
||||||
|
#define sk_OSSL_CMP_ITAV_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp), (n)))
|
||||||
|
#define sk_OSSL_CMP_ITAV_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_ITAV_sk_type(sk), (n))
|
||||||
|
#define sk_OSSL_CMP_ITAV_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_ITAV_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_ITAV_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_ITAV_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_ITAV_delete(sk, i) ((OSSL_CMP_ITAV *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_ITAV_sk_type(sk), (i)))
|
||||||
|
#define sk_OSSL_CMP_ITAV_delete_ptr(sk, ptr) ((OSSL_CMP_ITAV *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr)))
|
||||||
|
#define sk_OSSL_CMP_ITAV_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr))
|
||||||
|
#define sk_OSSL_CMP_ITAV_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr))
|
||||||
|
#define sk_OSSL_CMP_ITAV_pop(sk) ((OSSL_CMP_ITAV *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_ITAV_sk_type(sk)))
|
||||||
|
#define sk_OSSL_CMP_ITAV_shift(sk) ((OSSL_CMP_ITAV *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_ITAV_sk_type(sk)))
|
||||||
|
#define sk_OSSL_CMP_ITAV_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_ITAV_sk_type(sk),ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))
|
||||||
|
#define sk_OSSL_CMP_ITAV_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr), (idx))
|
||||||
|
#define sk_OSSL_CMP_ITAV_set(sk, idx, ptr) ((OSSL_CMP_ITAV *)OPENSSL_sk_set(ossl_check_OSSL_CMP_ITAV_sk_type(sk), (idx), ossl_check_OSSL_CMP_ITAV_type(ptr)))
|
||||||
|
#define sk_OSSL_CMP_ITAV_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr))
|
||||||
|
#define sk_OSSL_CMP_ITAV_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr))
|
||||||
|
#define sk_OSSL_CMP_ITAV_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr), pnum)
|
||||||
|
#define sk_OSSL_CMP_ITAV_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_ITAV_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_ITAV_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_ITAV_dup(sk) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk)))
|
||||||
|
#define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc)))
|
||||||
|
#define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp)))
|
||||||
|
|
||||||
|
typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT;
|
||||||
|
typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI;
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI)
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(OSSL_CMP_PKISI)
|
||||||
|
SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_PKISI, OSSL_CMP_PKISI, OSSL_CMP_PKISI)
|
||||||
|
#define sk_OSSL_CMP_PKISI_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_PKISI_value(sk, idx) ((OSSL_CMP_PKISI *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk), (idx)))
|
||||||
|
#define sk_OSSL_CMP_PKISI_new(cmp) ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_PKISI_compfunc_type(cmp)))
|
||||||
|
#define sk_OSSL_CMP_PKISI_new_null() ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_new_null())
|
||||||
|
#define sk_OSSL_CMP_PKISI_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_PKISI_compfunc_type(cmp), (n)))
|
||||||
|
#define sk_OSSL_CMP_PKISI_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_PKISI_sk_type(sk), (n))
|
||||||
|
#define sk_OSSL_CMP_PKISI_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_PKISI_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_PKISI_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_PKISI_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_PKISI_delete(sk, i) ((OSSL_CMP_PKISI *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_PKISI_sk_type(sk), (i)))
|
||||||
|
#define sk_OSSL_CMP_PKISI_delete_ptr(sk, ptr) ((OSSL_CMP_PKISI *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr)))
|
||||||
|
#define sk_OSSL_CMP_PKISI_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr))
|
||||||
|
#define sk_OSSL_CMP_PKISI_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr))
|
||||||
|
#define sk_OSSL_CMP_PKISI_pop(sk) ((OSSL_CMP_PKISI *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_PKISI_sk_type(sk)))
|
||||||
|
#define sk_OSSL_CMP_PKISI_shift(sk) ((OSSL_CMP_PKISI *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_PKISI_sk_type(sk)))
|
||||||
|
#define sk_OSSL_CMP_PKISI_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_PKISI_sk_type(sk),ossl_check_OSSL_CMP_PKISI_freefunc_type(freefunc))
|
||||||
|
#define sk_OSSL_CMP_PKISI_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr), (idx))
|
||||||
|
#define sk_OSSL_CMP_PKISI_set(sk, idx, ptr) ((OSSL_CMP_PKISI *)OPENSSL_sk_set(ossl_check_OSSL_CMP_PKISI_sk_type(sk), (idx), ossl_check_OSSL_CMP_PKISI_type(ptr)))
|
||||||
|
#define sk_OSSL_CMP_PKISI_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr))
|
||||||
|
#define sk_OSSL_CMP_PKISI_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr))
|
||||||
|
#define sk_OSSL_CMP_PKISI_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr), pnum)
|
||||||
|
#define sk_OSSL_CMP_PKISI_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_PKISI_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_PKISI_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_PKISI_dup(sk) ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk)))
|
||||||
|
#define sk_OSSL_CMP_PKISI_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_PKISI_freefunc_type(freefunc)))
|
||||||
|
#define sk_OSSL_CMP_PKISI_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_PKISI_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_compfunc_type(cmp)))
|
||||||
|
|
||||||
|
typedef struct ossl_cmp_certrepmessage_st OSSL_CMP_CERTREPMESSAGE;
|
||||||
|
SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CERTREPMESSAGE, OSSL_CMP_CERTREPMESSAGE, OSSL_CMP_CERTREPMESSAGE)
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_value(sk, idx) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (idx)))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_new(cmp) ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CERTREPMESSAGE_compfunc_type(cmp)))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_new_null() ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_new_null())
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CERTREPMESSAGE_compfunc_type(cmp), (n)))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (n))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_delete(sk, i) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (i)))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_delete_ptr(sk, ptr) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr)))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_pop(sk) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_shift(sk) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk),ossl_check_OSSL_CMP_CERTREPMESSAGE_freefunc_type(freefunc))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr), (idx))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_set(sk, idx, ptr) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (idx), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr)))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr), pnum)
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_dup(sk) ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CERTREPMESSAGE_freefunc_type(freefunc)))
|
||||||
|
#define sk_OSSL_CMP_CERTREPMESSAGE_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CERTREPMESSAGE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_compfunc_type(cmp)))
|
||||||
|
|
||||||
|
typedef struct ossl_cmp_pollrep_st OSSL_CMP_POLLREP;
|
||||||
|
typedef STACK_OF(OSSL_CMP_POLLREP) OSSL_CMP_POLLREPCONTENT;
|
||||||
|
typedef struct ossl_cmp_certresponse_st OSSL_CMP_CERTRESPONSE;
|
||||||
|
SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CERTRESPONSE, OSSL_CMP_CERTRESPONSE, OSSL_CMP_CERTRESPONSE)
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_value(sk, idx) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk), (idx)))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_new(cmp) ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CERTRESPONSE_compfunc_type(cmp)))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_new_null() ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_new_null())
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CERTRESPONSE_compfunc_type(cmp), (n)))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), (n))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_delete(sk, i) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), (i)))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_delete_ptr(sk, ptr) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr)))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_pop(sk) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk)))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_shift(sk) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk)))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk),ossl_check_OSSL_CMP_CERTRESPONSE_freefunc_type(freefunc))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr), (idx))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_set(sk, idx, ptr) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), (idx), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr)))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr), pnum)
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_dup(sk) ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk)))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CERTRESPONSE_freefunc_type(freefunc)))
|
||||||
|
#define sk_OSSL_CMP_CERTRESPONSE_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CERTRESPONSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_compfunc_type(cmp)))
|
||||||
|
|
||||||
|
typedef STACK_OF(ASN1_UTF8STRING) OSSL_CMP_PKIFREETEXT;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* function DECLARATIONS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* from cmp_asn.c */
|
||||||
|
OSSL_CMP_ITAV *OSSL_CMP_ITAV_create(ASN1_OBJECT *type, ASN1_TYPE *value);
|
||||||
|
void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type,
|
||||||
|
ASN1_TYPE *value);
|
||||||
|
ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav);
|
||||||
|
ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav);
|
||||||
|
int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p,
|
||||||
|
OSSL_CMP_ITAV *itav);
|
||||||
|
void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav);
|
||||||
|
void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg);
|
||||||
|
|
||||||
|
/* from cmp_ctx.c */
|
||||||
|
OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx);
|
||||||
|
int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx);
|
||||||
|
/* CMP general options: */
|
||||||
|
# define OSSL_CMP_OPT_LOG_VERBOSITY 0
|
||||||
|
/* CMP transfer options: */
|
||||||
|
# define OSSL_CMP_OPT_KEEP_ALIVE 10
|
||||||
|
# define OSSL_CMP_OPT_MSG_TIMEOUT 11
|
||||||
|
# define OSSL_CMP_OPT_TOTAL_TIMEOUT 12
|
||||||
|
/* CMP request options: */
|
||||||
|
# define OSSL_CMP_OPT_VALIDITY_DAYS 20
|
||||||
|
# define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21
|
||||||
|
# define OSSL_CMP_OPT_SUBJECTALTNAME_CRITICAL 22
|
||||||
|
# define OSSL_CMP_OPT_POLICIES_CRITICAL 23
|
||||||
|
# define OSSL_CMP_OPT_POPO_METHOD 24
|
||||||
|
# define OSSL_CMP_OPT_IMPLICIT_CONFIRM 25
|
||||||
|
# define OSSL_CMP_OPT_DISABLE_CONFIRM 26
|
||||||
|
# define OSSL_CMP_OPT_REVOCATION_REASON 27
|
||||||
|
/* CMP protection options: */
|
||||||
|
# define OSSL_CMP_OPT_UNPROTECTED_SEND 30
|
||||||
|
# define OSSL_CMP_OPT_UNPROTECTED_ERRORS 31
|
||||||
|
# define OSSL_CMP_OPT_OWF_ALGNID 32
|
||||||
|
# define OSSL_CMP_OPT_MAC_ALGNID 33
|
||||||
|
# define OSSL_CMP_OPT_DIGEST_ALGNID 34
|
||||||
|
# define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35
|
||||||
|
# define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36
|
||||||
|
int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val);
|
||||||
|
int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt);
|
||||||
|
/* CMP-specific callback for logging and outputting the error queue: */
|
||||||
|
int OSSL_CMP_CTX_set_log_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_log_cb_t cb);
|
||||||
|
# define OSSL_CMP_CTX_set_log_verbosity(ctx, level) \
|
||||||
|
OSSL_CMP_CTX_set_option(ctx, OSSL_CMP_OPT_LOG_VERBOSITY, level)
|
||||||
|
void OSSL_CMP_CTX_print_errors(const OSSL_CMP_CTX *ctx);
|
||||||
|
/* message transfer: */
|
||||||
|
int OSSL_CMP_CTX_set1_serverPath(OSSL_CMP_CTX *ctx, const char *path);
|
||||||
|
int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address);
|
||||||
|
int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port);
|
||||||
|
int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name);
|
||||||
|
int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names);
|
||||||
|
int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb);
|
||||||
|
int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg);
|
||||||
|
void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx);
|
||||||
|
typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx,
|
||||||
|
const OSSL_CMP_MSG *req);
|
||||||
|
int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb);
|
||||||
|
int OSSL_CMP_CTX_set_transfer_cb_arg(OSSL_CMP_CTX *ctx, void *arg);
|
||||||
|
void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx);
|
||||||
|
/* server authentication: */
|
||||||
|
int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert);
|
||||||
|
int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name);
|
||||||
|
int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store);
|
||||||
|
X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx);
|
||||||
|
int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs);
|
||||||
|
STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx);
|
||||||
|
/* client authentication: */
|
||||||
|
int OSSL_CMP_CTX_set1_cert(OSSL_CMP_CTX *ctx, X509 *cert);
|
||||||
|
int OSSL_CMP_CTX_build_cert_chain(OSSL_CMP_CTX *ctx, X509_STORE *own_trusted,
|
||||||
|
STACK_OF(X509) *candidates);
|
||||||
|
int OSSL_CMP_CTX_set1_pkey(OSSL_CMP_CTX *ctx, EVP_PKEY *pkey);
|
||||||
|
int OSSL_CMP_CTX_set1_referenceValue(OSSL_CMP_CTX *ctx,
|
||||||
|
const unsigned char *ref, int len);
|
||||||
|
int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx,
|
||||||
|
const unsigned char *sec, int len);
|
||||||
|
/* CMP message header and extra certificates: */
|
||||||
|
int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name);
|
||||||
|
int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav);
|
||||||
|
int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx);
|
||||||
|
int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx,
|
||||||
|
STACK_OF(X509) *extraCertsOut);
|
||||||
|
/* certificate template: */
|
||||||
|
int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey);
|
||||||
|
EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv);
|
||||||
|
int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name);
|
||||||
|
int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name);
|
||||||
|
int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx,
|
||||||
|
const GENERAL_NAME *name);
|
||||||
|
int OSSL_CMP_CTX_set0_reqExtensions(OSSL_CMP_CTX *ctx, X509_EXTENSIONS *exts);
|
||||||
|
int OSSL_CMP_CTX_reqExtensions_have_SAN(OSSL_CMP_CTX *ctx);
|
||||||
|
int OSSL_CMP_CTX_push0_policy(OSSL_CMP_CTX *ctx, POLICYINFO *pinfo);
|
||||||
|
int OSSL_CMP_CTX_set1_oldCert(OSSL_CMP_CTX *ctx, X509 *cert);
|
||||||
|
int OSSL_CMP_CTX_set1_p10CSR(OSSL_CMP_CTX *ctx, const X509_REQ *csr);
|
||||||
|
/* misc body contents: */
|
||||||
|
int OSSL_CMP_CTX_push0_genm_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav);
|
||||||
|
/* certificate confirmation: */
|
||||||
|
typedef int (*OSSL_CMP_certConf_cb_t) (OSSL_CMP_CTX *ctx, X509 *cert,
|
||||||
|
int fail_info, const char **txt);
|
||||||
|
int OSSL_CMP_certConf_cb(OSSL_CMP_CTX *ctx, X509 *cert, int fail_info,
|
||||||
|
const char **text);
|
||||||
|
int OSSL_CMP_CTX_set_certConf_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_certConf_cb_t cb);
|
||||||
|
int OSSL_CMP_CTX_set_certConf_cb_arg(OSSL_CMP_CTX *ctx, void *arg);
|
||||||
|
void *OSSL_CMP_CTX_get_certConf_cb_arg(const OSSL_CMP_CTX *ctx);
|
||||||
|
/* result fetching: */
|
||||||
|
int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx);
|
||||||
|
OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx);
|
||||||
|
int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx);
|
||||||
|
# define OSSL_CMP_PKISI_BUFLEN 1024
|
||||||
|
X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx);
|
||||||
|
STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx);
|
||||||
|
STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx);
|
||||||
|
STACK_OF(X509) *OSSL_CMP_CTX_get1_extraCertsIn(const OSSL_CMP_CTX *ctx);
|
||||||
|
int OSSL_CMP_CTX_set1_transactionID(OSSL_CMP_CTX *ctx,
|
||||||
|
const ASN1_OCTET_STRING *id);
|
||||||
|
int OSSL_CMP_CTX_set1_senderNonce(OSSL_CMP_CTX *ctx,
|
||||||
|
const ASN1_OCTET_STRING *nonce);
|
||||||
|
|
||||||
|
/* from cmp_status.c */
|
||||||
|
char *OSSL_CMP_CTX_snprint_PKIStatus(const OSSL_CMP_CTX *ctx, char *buf,
|
||||||
|
size_t bufsize);
|
||||||
|
char *OSSL_CMP_snprint_PKIStatusInfo(const OSSL_CMP_PKISI *statusInfo,
|
||||||
|
char *buf, size_t bufsize);
|
||||||
|
OSSL_CMP_PKISI *
|
||||||
|
OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text);
|
||||||
|
|
||||||
|
/* from cmp_hdr.c */
|
||||||
|
ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const
|
||||||
|
OSSL_CMP_PKIHEADER *hdr);
|
||||||
|
ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr);
|
||||||
|
|
||||||
|
/* from cmp_msg.c */
|
||||||
|
OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg);
|
||||||
|
int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg);
|
||||||
|
int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg);
|
||||||
|
int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg);
|
||||||
|
OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid);
|
||||||
|
OSSL_CMP_MSG *OSSL_CMP_MSG_read(const char *file, OSSL_LIB_CTX *libctx,
|
||||||
|
const char *propq);
|
||||||
|
int OSSL_CMP_MSG_write(const char *file, const OSSL_CMP_MSG *msg);
|
||||||
|
OSSL_CMP_MSG *d2i_OSSL_CMP_MSG_bio(BIO *bio, OSSL_CMP_MSG **msg);
|
||||||
|
int i2d_OSSL_CMP_MSG_bio(BIO *bio, const OSSL_CMP_MSG *msg);
|
||||||
|
|
||||||
|
/* from cmp_vfy.c */
|
||||||
|
int OSSL_CMP_validate_msg(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *msg);
|
||||||
|
int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx,
|
||||||
|
X509_STORE *trusted_store, X509 *cert);
|
||||||
|
|
||||||
|
/* from cmp_http.c */
|
||||||
|
OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx,
|
||||||
|
const OSSL_CMP_MSG *req);
|
||||||
|
|
||||||
|
/* from cmp_server.c */
|
||||||
|
typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX;
|
||||||
|
OSSL_CMP_MSG *OSSL_CMP_SRV_process_request(OSSL_CMP_SRV_CTX *srv_ctx,
|
||||||
|
const OSSL_CMP_MSG *req);
|
||||||
|
OSSL_CMP_MSG * OSSL_CMP_CTX_server_perform(OSSL_CMP_CTX *client_ctx,
|
||||||
|
const OSSL_CMP_MSG *req);
|
||||||
|
OSSL_CMP_SRV_CTX *OSSL_CMP_SRV_CTX_new(OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
void OSSL_CMP_SRV_CTX_free(OSSL_CMP_SRV_CTX *srv_ctx);
|
||||||
|
typedef OSSL_CMP_PKISI *(*OSSL_CMP_SRV_cert_request_cb_t)
|
||||||
|
(OSSL_CMP_SRV_CTX *srv_ctx, const OSSL_CMP_MSG *req, int certReqId,
|
||||||
|
const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr,
|
||||||
|
X509 **certOut, STACK_OF(X509) **chainOut, STACK_OF(X509) **caPubs);
|
||||||
|
typedef OSSL_CMP_PKISI *(*OSSL_CMP_SRV_rr_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx,
|
||||||
|
const OSSL_CMP_MSG *req,
|
||||||
|
const X509_NAME *issuer,
|
||||||
|
const ASN1_INTEGER *serial);
|
||||||
|
typedef int (*OSSL_CMP_SRV_genm_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx,
|
||||||
|
const OSSL_CMP_MSG *req,
|
||||||
|
const STACK_OF(OSSL_CMP_ITAV) *in,
|
||||||
|
STACK_OF(OSSL_CMP_ITAV) **out);
|
||||||
|
typedef void (*OSSL_CMP_SRV_error_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx,
|
||||||
|
const OSSL_CMP_MSG *req,
|
||||||
|
const OSSL_CMP_PKISI *statusInfo,
|
||||||
|
const ASN1_INTEGER *errorCode,
|
||||||
|
const OSSL_CMP_PKIFREETEXT *errDetails);
|
||||||
|
typedef int (*OSSL_CMP_SRV_certConf_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx,
|
||||||
|
const OSSL_CMP_MSG *req,
|
||||||
|
int certReqId,
|
||||||
|
const ASN1_OCTET_STRING *certHash,
|
||||||
|
const OSSL_CMP_PKISI *si);
|
||||||
|
typedef int (*OSSL_CMP_SRV_pollReq_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx,
|
||||||
|
const OSSL_CMP_MSG *req, int certReqId,
|
||||||
|
OSSL_CMP_MSG **certReq,
|
||||||
|
int64_t *check_after);
|
||||||
|
int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx,
|
||||||
|
OSSL_CMP_SRV_cert_request_cb_t process_cert_request,
|
||||||
|
OSSL_CMP_SRV_rr_cb_t process_rr,
|
||||||
|
OSSL_CMP_SRV_genm_cb_t process_genm,
|
||||||
|
OSSL_CMP_SRV_error_cb_t process_error,
|
||||||
|
OSSL_CMP_SRV_certConf_cb_t process_certConf,
|
||||||
|
OSSL_CMP_SRV_pollReq_cb_t process_pollReq);
|
||||||
|
OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx);
|
||||||
|
void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx);
|
||||||
|
int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx,
|
||||||
|
int val);
|
||||||
|
int OSSL_CMP_SRV_CTX_set_accept_unprotected(OSSL_CMP_SRV_CTX *srv_ctx, int val);
|
||||||
|
int OSSL_CMP_SRV_CTX_set_accept_raverified(OSSL_CMP_SRV_CTX *srv_ctx, int val);
|
||||||
|
int OSSL_CMP_SRV_CTX_set_grant_implicit_confirm(OSSL_CMP_SRV_CTX *srv_ctx,
|
||||||
|
int val);
|
||||||
|
|
||||||
|
/* from cmp_client.c */
|
||||||
|
X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type,
|
||||||
|
const OSSL_CRMF_MSG *crm);
|
||||||
|
# define OSSL_CMP_IR 0
|
||||||
|
# define OSSL_CMP_CR 2
|
||||||
|
# define OSSL_CMP_P10CR 4
|
||||||
|
# define OSSL_CMP_KUR 7
|
||||||
|
# define OSSL_CMP_exec_IR_ses(ctx) \
|
||||||
|
OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL)
|
||||||
|
# define OSSL_CMP_exec_CR_ses(ctx) \
|
||||||
|
OSSL_CMP_exec_certreq(ctx, OSSL_CMP_CR, NULL)
|
||||||
|
# define OSSL_CMP_exec_P10CR_ses(ctx) \
|
||||||
|
OSSL_CMP_exec_certreq(ctx, OSSL_CMP_P10CR, NULL)
|
||||||
|
# define OSSL_CMP_exec_KUR_ses(ctx) \
|
||||||
|
OSSL_CMP_exec_certreq(ctx, OSSL_CMP_KUR, NULL)
|
||||||
|
int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type,
|
||||||
|
const OSSL_CRMF_MSG *crm, int *checkAfter);
|
||||||
|
int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx);
|
||||||
|
STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
# endif /* !defined(OPENSSL_NO_CMP) */
|
||||||
|
#endif /* !defined(OPENSSL_CMP_H) */
|
478
deps/openssl/mingw64/include/openssl/cmp.h.in
vendored
Normal file
478
deps/openssl/mingw64/include/openssl/cmp.h.in
vendored
Normal file
@ -0,0 +1,478 @@
|
|||||||
|
/*
|
||||||
|
* {- join("\n * ", @autowarntext) -}
|
||||||
|
*
|
||||||
|
* Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
* Copyright Nokia 2007-2019
|
||||||
|
* Copyright Siemens AG 2015-2019
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
{-
|
||||||
|
use OpenSSL::stackhash qw(generate_stack_macros);
|
||||||
|
-}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_CMP_H
|
||||||
|
# define OPENSSL_CMP_H
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
# ifndef OPENSSL_NO_CMP
|
||||||
|
|
||||||
|
# include <openssl/crmf.h>
|
||||||
|
# include <openssl/cmperr.h>
|
||||||
|
# include <openssl/cmp_util.h>
|
||||||
|
# include <openssl/http.h>
|
||||||
|
|
||||||
|
/* explicit #includes not strictly needed since implied by the above: */
|
||||||
|
# include <openssl/types.h>
|
||||||
|
# include <openssl/safestack.h>
|
||||||
|
# include <openssl/x509.h>
|
||||||
|
# include <openssl/x509v3.h>
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# define OSSL_CMP_PVNO 2
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* PKIFailureInfo ::= BIT STRING {
|
||||||
|
* -- since we can fail in more than one way!
|
||||||
|
* -- More codes may be added in the future if/when required.
|
||||||
|
* badAlg (0),
|
||||||
|
* -- unrecognized or unsupported Algorithm Identifier
|
||||||
|
* badMessageCheck (1),
|
||||||
|
* -- integrity check failed (e.g., signature did not verify)
|
||||||
|
* badRequest (2),
|
||||||
|
* -- transaction not permitted or supported
|
||||||
|
* badTime (3),
|
||||||
|
* -- messageTime was not sufficiently close to the system time,
|
||||||
|
* -- as defined by local policy
|
||||||
|
* badCertId (4),
|
||||||
|
* -- no certificate could be found matching the provided criteria
|
||||||
|
* badDataFormat (5),
|
||||||
|
* -- the data submitted has the wrong format
|
||||||
|
* wrongAuthority (6),
|
||||||
|
* -- the authority indicated in the request is different from the
|
||||||
|
* -- one creating the response token
|
||||||
|
* incorrectData (7),
|
||||||
|
* -- the requester's data is incorrect (for notary services)
|
||||||
|
* missingTimeStamp (8),
|
||||||
|
* -- when the timestamp is missing but should be there
|
||||||
|
* -- (by policy)
|
||||||
|
* badPOP (9),
|
||||||
|
* -- the proof-of-possession failed
|
||||||
|
* certRevoked (10),
|
||||||
|
* -- the certificate has already been revoked
|
||||||
|
* certConfirmed (11),
|
||||||
|
* -- the certificate has already been confirmed
|
||||||
|
* wrongIntegrity (12),
|
||||||
|
* -- invalid integrity, password based instead of signature or
|
||||||
|
* -- vice versa
|
||||||
|
* badRecipientNonce (13),
|
||||||
|
* -- invalid recipient nonce, either missing or wrong value
|
||||||
|
* timeNotAvailable (14),
|
||||||
|
* -- the TSA's time source is not available
|
||||||
|
* unacceptedPolicy (15),
|
||||||
|
* -- the requested TSA policy is not supported by the TSA.
|
||||||
|
* unacceptedExtension (16),
|
||||||
|
* -- the requested extension is not supported by the TSA.
|
||||||
|
* addInfoNotAvailable (17),
|
||||||
|
* -- the additional information requested could not be
|
||||||
|
* -- understood or is not available
|
||||||
|
* badSenderNonce (18),
|
||||||
|
* -- invalid sender nonce, either missing or wrong size
|
||||||
|
* badCertTemplate (19),
|
||||||
|
* -- invalid cert. template or missing mandatory information
|
||||||
|
* signerNotTrusted (20),
|
||||||
|
* -- signer of the message unknown or not trusted
|
||||||
|
* transactionIdInUse (21),
|
||||||
|
* -- the transaction identifier is already in use
|
||||||
|
* unsupportedVersion (22),
|
||||||
|
* -- the version of the message is not supported
|
||||||
|
* notAuthorized (23),
|
||||||
|
* -- the sender was not authorized to make the preceding
|
||||||
|
* -- request or perform the preceding action
|
||||||
|
* systemUnavail (24),
|
||||||
|
* -- the request cannot be handled due to system unavailability
|
||||||
|
* systemFailure (25),
|
||||||
|
* -- the request cannot be handled due to system failure
|
||||||
|
* duplicateCertReq (26)
|
||||||
|
* -- certificate cannot be issued because a duplicate
|
||||||
|
* -- certificate already exists
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_badAlg 0
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_badMessageCheck 1
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_badRequest 2
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_badTime 3
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_badCertId 4
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_badDataFormat 5
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_wrongAuthority 6
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_incorrectData 7
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_missingTimeStamp 8
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_badPOP 9
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_certRevoked 10
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_certConfirmed 11
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_wrongIntegrity 12
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_badRecipientNonce 13
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_timeNotAvailable 14
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_unacceptedPolicy 15
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_unacceptedExtension 16
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_addInfoNotAvailable 17
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_badSenderNonce 18
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_badCertTemplate 19
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_signerNotTrusted 20
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_transactionIdInUse 21
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_unsupportedVersion 22
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_notAuthorized 23
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_systemUnavail 24
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_systemFailure 25
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_duplicateCertReq 26
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_MAX 26
|
||||||
|
# define OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN \
|
||||||
|
((1 << (OSSL_CMP_PKIFAILUREINFO_MAX + 1)) - 1)
|
||||||
|
# if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX
|
||||||
|
# error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int
|
||||||
|
# endif
|
||||||
|
|
||||||
|
typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO;
|
||||||
|
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_badMessageCheck (1 << 1)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_badRequest (1 << 2)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_badTime (1 << 3)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_badCertId (1 << 4)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_badDataFormat (1 << 5)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_wrongAuthority (1 << 6)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_incorrectData (1 << 7)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_missingTimeStamp (1 << 8)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_badPOP (1 << 9)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_certRevoked (1 << 10)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_certConfirmed (1 << 11)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_wrongIntegrity (1 << 12)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_badRecipientNonce (1 << 13)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_timeNotAvailable (1 << 14)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_unacceptedPolicy (1 << 15)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_unacceptedExtension (1 << 16)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_addInfoNotAvailable (1 << 17)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_badSenderNonce (1 << 18)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_badCertTemplate (1 << 19)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_signerNotTrusted (1 << 20)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_transactionIdInUse (1 << 21)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_unsupportedVersion (1 << 22)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_notAuthorized (1 << 23)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_systemUnavail (1 << 24)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_systemFailure (1 << 25)
|
||||||
|
# define OSSL_CMP_CTX_FAILINFO_duplicateCertReq (1 << 26)
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* PKIStatus ::= INTEGER {
|
||||||
|
* accepted (0),
|
||||||
|
* -- you got exactly what you asked for
|
||||||
|
* grantedWithMods (1),
|
||||||
|
* -- you got something like what you asked for; the
|
||||||
|
* -- requester is responsible for ascertaining the differences
|
||||||
|
* rejection (2),
|
||||||
|
* -- you don't get it, more information elsewhere in the message
|
||||||
|
* waiting (3),
|
||||||
|
* -- the request body part has not yet been processed; expect to
|
||||||
|
* -- hear more later (note: proper handling of this status
|
||||||
|
* -- response MAY use the polling req/rep PKIMessages specified
|
||||||
|
* -- in Section 5.3.22; alternatively, polling in the underlying
|
||||||
|
* -- transport layer MAY have some utility in this regard)
|
||||||
|
* revocationWarning (4),
|
||||||
|
* -- this message contains a warning that a revocation is
|
||||||
|
* -- imminent
|
||||||
|
* revocationNotification (5),
|
||||||
|
* -- notification that a revocation has occurred
|
||||||
|
* keyUpdateWarning (6)
|
||||||
|
* -- update already done for the oldCertId specified in
|
||||||
|
* -- CertReqMsg
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
# define OSSL_CMP_PKISTATUS_request -3
|
||||||
|
# define OSSL_CMP_PKISTATUS_trans -2
|
||||||
|
# define OSSL_CMP_PKISTATUS_unspecified -1
|
||||||
|
# define OSSL_CMP_PKISTATUS_accepted 0
|
||||||
|
# define OSSL_CMP_PKISTATUS_grantedWithMods 1
|
||||||
|
# define OSSL_CMP_PKISTATUS_rejection 2
|
||||||
|
# define OSSL_CMP_PKISTATUS_waiting 3
|
||||||
|
# define OSSL_CMP_PKISTATUS_revocationWarning 4
|
||||||
|
# define OSSL_CMP_PKISTATUS_revocationNotification 5
|
||||||
|
# define OSSL_CMP_PKISTATUS_keyUpdateWarning 6
|
||||||
|
|
||||||
|
typedef ASN1_INTEGER OSSL_CMP_PKISTATUS;
|
||||||
|
DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS)
|
||||||
|
|
||||||
|
# define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0
|
||||||
|
# define OSSL_CMP_CERTORENCCERT_ENCRYPTEDCERT 1
|
||||||
|
|
||||||
|
/* data type declarations */
|
||||||
|
typedef struct ossl_cmp_ctx_st OSSL_CMP_CTX;
|
||||||
|
typedef struct ossl_cmp_pkiheader_st OSSL_CMP_PKIHEADER;
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKIHEADER)
|
||||||
|
typedef struct ossl_cmp_msg_st OSSL_CMP_MSG;
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(OSSL_CMP_MSG)
|
||||||
|
DECLARE_ASN1_ENCODE_FUNCTIONS(OSSL_CMP_MSG, OSSL_CMP_MSG, OSSL_CMP_MSG)
|
||||||
|
typedef struct ossl_cmp_certstatus_st OSSL_CMP_CERTSTATUS;
|
||||||
|
{-
|
||||||
|
generate_stack_macros("OSSL_CMP_CERTSTATUS");
|
||||||
|
-}
|
||||||
|
typedef struct ossl_cmp_itav_st OSSL_CMP_ITAV;
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(OSSL_CMP_ITAV)
|
||||||
|
{-
|
||||||
|
generate_stack_macros("OSSL_CMP_ITAV");
|
||||||
|
-}
|
||||||
|
typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT;
|
||||||
|
typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI;
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI)
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(OSSL_CMP_PKISI)
|
||||||
|
{-
|
||||||
|
generate_stack_macros("OSSL_CMP_PKISI");
|
||||||
|
-}
|
||||||
|
typedef struct ossl_cmp_certrepmessage_st OSSL_CMP_CERTREPMESSAGE;
|
||||||
|
{-
|
||||||
|
generate_stack_macros("OSSL_CMP_CERTREPMESSAGE");
|
||||||
|
-}
|
||||||
|
typedef struct ossl_cmp_pollrep_st OSSL_CMP_POLLREP;
|
||||||
|
typedef STACK_OF(OSSL_CMP_POLLREP) OSSL_CMP_POLLREPCONTENT;
|
||||||
|
typedef struct ossl_cmp_certresponse_st OSSL_CMP_CERTRESPONSE;
|
||||||
|
{-
|
||||||
|
generate_stack_macros("OSSL_CMP_CERTRESPONSE");
|
||||||
|
-}
|
||||||
|
typedef STACK_OF(ASN1_UTF8STRING) OSSL_CMP_PKIFREETEXT;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* function DECLARATIONS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* from cmp_asn.c */
|
||||||
|
OSSL_CMP_ITAV *OSSL_CMP_ITAV_create(ASN1_OBJECT *type, ASN1_TYPE *value);
|
||||||
|
void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type,
|
||||||
|
ASN1_TYPE *value);
|
||||||
|
ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav);
|
||||||
|
ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav);
|
||||||
|
int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p,
|
||||||
|
OSSL_CMP_ITAV *itav);
|
||||||
|
void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav);
|
||||||
|
void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg);
|
||||||
|
|
||||||
|
/* from cmp_ctx.c */
|
||||||
|
OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx);
|
||||||
|
int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx);
|
||||||
|
/* CMP general options: */
|
||||||
|
# define OSSL_CMP_OPT_LOG_VERBOSITY 0
|
||||||
|
/* CMP transfer options: */
|
||||||
|
# define OSSL_CMP_OPT_KEEP_ALIVE 10
|
||||||
|
# define OSSL_CMP_OPT_MSG_TIMEOUT 11
|
||||||
|
# define OSSL_CMP_OPT_TOTAL_TIMEOUT 12
|
||||||
|
/* CMP request options: */
|
||||||
|
# define OSSL_CMP_OPT_VALIDITY_DAYS 20
|
||||||
|
# define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21
|
||||||
|
# define OSSL_CMP_OPT_SUBJECTALTNAME_CRITICAL 22
|
||||||
|
# define OSSL_CMP_OPT_POLICIES_CRITICAL 23
|
||||||
|
# define OSSL_CMP_OPT_POPO_METHOD 24
|
||||||
|
# define OSSL_CMP_OPT_IMPLICIT_CONFIRM 25
|
||||||
|
# define OSSL_CMP_OPT_DISABLE_CONFIRM 26
|
||||||
|
# define OSSL_CMP_OPT_REVOCATION_REASON 27
|
||||||
|
/* CMP protection options: */
|
||||||
|
# define OSSL_CMP_OPT_UNPROTECTED_SEND 30
|
||||||
|
# define OSSL_CMP_OPT_UNPROTECTED_ERRORS 31
|
||||||
|
# define OSSL_CMP_OPT_OWF_ALGNID 32
|
||||||
|
# define OSSL_CMP_OPT_MAC_ALGNID 33
|
||||||
|
# define OSSL_CMP_OPT_DIGEST_ALGNID 34
|
||||||
|
# define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35
|
||||||
|
# define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36
|
||||||
|
int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val);
|
||||||
|
int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt);
|
||||||
|
/* CMP-specific callback for logging and outputting the error queue: */
|
||||||
|
int OSSL_CMP_CTX_set_log_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_log_cb_t cb);
|
||||||
|
# define OSSL_CMP_CTX_set_log_verbosity(ctx, level) \
|
||||||
|
OSSL_CMP_CTX_set_option(ctx, OSSL_CMP_OPT_LOG_VERBOSITY, level)
|
||||||
|
void OSSL_CMP_CTX_print_errors(const OSSL_CMP_CTX *ctx);
|
||||||
|
/* message transfer: */
|
||||||
|
int OSSL_CMP_CTX_set1_serverPath(OSSL_CMP_CTX *ctx, const char *path);
|
||||||
|
int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address);
|
||||||
|
int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port);
|
||||||
|
int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name);
|
||||||
|
int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names);
|
||||||
|
int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb);
|
||||||
|
int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg);
|
||||||
|
void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx);
|
||||||
|
typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx,
|
||||||
|
const OSSL_CMP_MSG *req);
|
||||||
|
int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb);
|
||||||
|
int OSSL_CMP_CTX_set_transfer_cb_arg(OSSL_CMP_CTX *ctx, void *arg);
|
||||||
|
void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx);
|
||||||
|
/* server authentication: */
|
||||||
|
int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert);
|
||||||
|
int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name);
|
||||||
|
int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store);
|
||||||
|
X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx);
|
||||||
|
int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs);
|
||||||
|
STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx);
|
||||||
|
/* client authentication: */
|
||||||
|
int OSSL_CMP_CTX_set1_cert(OSSL_CMP_CTX *ctx, X509 *cert);
|
||||||
|
int OSSL_CMP_CTX_build_cert_chain(OSSL_CMP_CTX *ctx, X509_STORE *own_trusted,
|
||||||
|
STACK_OF(X509) *candidates);
|
||||||
|
int OSSL_CMP_CTX_set1_pkey(OSSL_CMP_CTX *ctx, EVP_PKEY *pkey);
|
||||||
|
int OSSL_CMP_CTX_set1_referenceValue(OSSL_CMP_CTX *ctx,
|
||||||
|
const unsigned char *ref, int len);
|
||||||
|
int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx,
|
||||||
|
const unsigned char *sec, int len);
|
||||||
|
/* CMP message header and extra certificates: */
|
||||||
|
int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name);
|
||||||
|
int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav);
|
||||||
|
int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx);
|
||||||
|
int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx,
|
||||||
|
STACK_OF(X509) *extraCertsOut);
|
||||||
|
/* certificate template: */
|
||||||
|
int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey);
|
||||||
|
EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv);
|
||||||
|
int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name);
|
||||||
|
int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name);
|
||||||
|
int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx,
|
||||||
|
const GENERAL_NAME *name);
|
||||||
|
int OSSL_CMP_CTX_set0_reqExtensions(OSSL_CMP_CTX *ctx, X509_EXTENSIONS *exts);
|
||||||
|
int OSSL_CMP_CTX_reqExtensions_have_SAN(OSSL_CMP_CTX *ctx);
|
||||||
|
int OSSL_CMP_CTX_push0_policy(OSSL_CMP_CTX *ctx, POLICYINFO *pinfo);
|
||||||
|
int OSSL_CMP_CTX_set1_oldCert(OSSL_CMP_CTX *ctx, X509 *cert);
|
||||||
|
int OSSL_CMP_CTX_set1_p10CSR(OSSL_CMP_CTX *ctx, const X509_REQ *csr);
|
||||||
|
/* misc body contents: */
|
||||||
|
int OSSL_CMP_CTX_push0_genm_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav);
|
||||||
|
/* certificate confirmation: */
|
||||||
|
typedef int (*OSSL_CMP_certConf_cb_t) (OSSL_CMP_CTX *ctx, X509 *cert,
|
||||||
|
int fail_info, const char **txt);
|
||||||
|
int OSSL_CMP_certConf_cb(OSSL_CMP_CTX *ctx, X509 *cert, int fail_info,
|
||||||
|
const char **text);
|
||||||
|
int OSSL_CMP_CTX_set_certConf_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_certConf_cb_t cb);
|
||||||
|
int OSSL_CMP_CTX_set_certConf_cb_arg(OSSL_CMP_CTX *ctx, void *arg);
|
||||||
|
void *OSSL_CMP_CTX_get_certConf_cb_arg(const OSSL_CMP_CTX *ctx);
|
||||||
|
/* result fetching: */
|
||||||
|
int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx);
|
||||||
|
OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx);
|
||||||
|
int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx);
|
||||||
|
# define OSSL_CMP_PKISI_BUFLEN 1024
|
||||||
|
X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx);
|
||||||
|
STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx);
|
||||||
|
STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx);
|
||||||
|
STACK_OF(X509) *OSSL_CMP_CTX_get1_extraCertsIn(const OSSL_CMP_CTX *ctx);
|
||||||
|
int OSSL_CMP_CTX_set1_transactionID(OSSL_CMP_CTX *ctx,
|
||||||
|
const ASN1_OCTET_STRING *id);
|
||||||
|
int OSSL_CMP_CTX_set1_senderNonce(OSSL_CMP_CTX *ctx,
|
||||||
|
const ASN1_OCTET_STRING *nonce);
|
||||||
|
|
||||||
|
/* from cmp_status.c */
|
||||||
|
char *OSSL_CMP_CTX_snprint_PKIStatus(const OSSL_CMP_CTX *ctx, char *buf,
|
||||||
|
size_t bufsize);
|
||||||
|
char *OSSL_CMP_snprint_PKIStatusInfo(const OSSL_CMP_PKISI *statusInfo,
|
||||||
|
char *buf, size_t bufsize);
|
||||||
|
OSSL_CMP_PKISI *
|
||||||
|
OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text);
|
||||||
|
|
||||||
|
/* from cmp_hdr.c */
|
||||||
|
ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const
|
||||||
|
OSSL_CMP_PKIHEADER *hdr);
|
||||||
|
ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr);
|
||||||
|
|
||||||
|
/* from cmp_msg.c */
|
||||||
|
OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg);
|
||||||
|
int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg);
|
||||||
|
int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg);
|
||||||
|
int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg);
|
||||||
|
OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid);
|
||||||
|
OSSL_CMP_MSG *OSSL_CMP_MSG_read(const char *file, OSSL_LIB_CTX *libctx,
|
||||||
|
const char *propq);
|
||||||
|
int OSSL_CMP_MSG_write(const char *file, const OSSL_CMP_MSG *msg);
|
||||||
|
OSSL_CMP_MSG *d2i_OSSL_CMP_MSG_bio(BIO *bio, OSSL_CMP_MSG **msg);
|
||||||
|
int i2d_OSSL_CMP_MSG_bio(BIO *bio, const OSSL_CMP_MSG *msg);
|
||||||
|
|
||||||
|
/* from cmp_vfy.c */
|
||||||
|
int OSSL_CMP_validate_msg(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *msg);
|
||||||
|
int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx,
|
||||||
|
X509_STORE *trusted_store, X509 *cert);
|
||||||
|
|
||||||
|
/* from cmp_http.c */
|
||||||
|
OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx,
|
||||||
|
const OSSL_CMP_MSG *req);
|
||||||
|
|
||||||
|
/* from cmp_server.c */
|
||||||
|
typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX;
|
||||||
|
OSSL_CMP_MSG *OSSL_CMP_SRV_process_request(OSSL_CMP_SRV_CTX *srv_ctx,
|
||||||
|
const OSSL_CMP_MSG *req);
|
||||||
|
OSSL_CMP_MSG * OSSL_CMP_CTX_server_perform(OSSL_CMP_CTX *client_ctx,
|
||||||
|
const OSSL_CMP_MSG *req);
|
||||||
|
OSSL_CMP_SRV_CTX *OSSL_CMP_SRV_CTX_new(OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
void OSSL_CMP_SRV_CTX_free(OSSL_CMP_SRV_CTX *srv_ctx);
|
||||||
|
typedef OSSL_CMP_PKISI *(*OSSL_CMP_SRV_cert_request_cb_t)
|
||||||
|
(OSSL_CMP_SRV_CTX *srv_ctx, const OSSL_CMP_MSG *req, int certReqId,
|
||||||
|
const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr,
|
||||||
|
X509 **certOut, STACK_OF(X509) **chainOut, STACK_OF(X509) **caPubs);
|
||||||
|
typedef OSSL_CMP_PKISI *(*OSSL_CMP_SRV_rr_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx,
|
||||||
|
const OSSL_CMP_MSG *req,
|
||||||
|
const X509_NAME *issuer,
|
||||||
|
const ASN1_INTEGER *serial);
|
||||||
|
typedef int (*OSSL_CMP_SRV_genm_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx,
|
||||||
|
const OSSL_CMP_MSG *req,
|
||||||
|
const STACK_OF(OSSL_CMP_ITAV) *in,
|
||||||
|
STACK_OF(OSSL_CMP_ITAV) **out);
|
||||||
|
typedef void (*OSSL_CMP_SRV_error_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx,
|
||||||
|
const OSSL_CMP_MSG *req,
|
||||||
|
const OSSL_CMP_PKISI *statusInfo,
|
||||||
|
const ASN1_INTEGER *errorCode,
|
||||||
|
const OSSL_CMP_PKIFREETEXT *errDetails);
|
||||||
|
typedef int (*OSSL_CMP_SRV_certConf_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx,
|
||||||
|
const OSSL_CMP_MSG *req,
|
||||||
|
int certReqId,
|
||||||
|
const ASN1_OCTET_STRING *certHash,
|
||||||
|
const OSSL_CMP_PKISI *si);
|
||||||
|
typedef int (*OSSL_CMP_SRV_pollReq_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx,
|
||||||
|
const OSSL_CMP_MSG *req, int certReqId,
|
||||||
|
OSSL_CMP_MSG **certReq,
|
||||||
|
int64_t *check_after);
|
||||||
|
int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx,
|
||||||
|
OSSL_CMP_SRV_cert_request_cb_t process_cert_request,
|
||||||
|
OSSL_CMP_SRV_rr_cb_t process_rr,
|
||||||
|
OSSL_CMP_SRV_genm_cb_t process_genm,
|
||||||
|
OSSL_CMP_SRV_error_cb_t process_error,
|
||||||
|
OSSL_CMP_SRV_certConf_cb_t process_certConf,
|
||||||
|
OSSL_CMP_SRV_pollReq_cb_t process_pollReq);
|
||||||
|
OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx);
|
||||||
|
void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx);
|
||||||
|
int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx,
|
||||||
|
int val);
|
||||||
|
int OSSL_CMP_SRV_CTX_set_accept_unprotected(OSSL_CMP_SRV_CTX *srv_ctx, int val);
|
||||||
|
int OSSL_CMP_SRV_CTX_set_accept_raverified(OSSL_CMP_SRV_CTX *srv_ctx, int val);
|
||||||
|
int OSSL_CMP_SRV_CTX_set_grant_implicit_confirm(OSSL_CMP_SRV_CTX *srv_ctx,
|
||||||
|
int val);
|
||||||
|
|
||||||
|
/* from cmp_client.c */
|
||||||
|
X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type,
|
||||||
|
const OSSL_CRMF_MSG *crm);
|
||||||
|
# define OSSL_CMP_IR 0
|
||||||
|
# define OSSL_CMP_CR 2
|
||||||
|
# define OSSL_CMP_P10CR 4
|
||||||
|
# define OSSL_CMP_KUR 7
|
||||||
|
# define OSSL_CMP_exec_IR_ses(ctx) \
|
||||||
|
OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL)
|
||||||
|
# define OSSL_CMP_exec_CR_ses(ctx) \
|
||||||
|
OSSL_CMP_exec_certreq(ctx, OSSL_CMP_CR, NULL)
|
||||||
|
# define OSSL_CMP_exec_P10CR_ses(ctx) \
|
||||||
|
OSSL_CMP_exec_certreq(ctx, OSSL_CMP_P10CR, NULL)
|
||||||
|
# define OSSL_CMP_exec_KUR_ses(ctx) \
|
||||||
|
OSSL_CMP_exec_certreq(ctx, OSSL_CMP_KUR, NULL)
|
||||||
|
int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type,
|
||||||
|
const OSSL_CRMF_MSG *crm, int *checkAfter);
|
||||||
|
int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx);
|
||||||
|
STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
# endif /* !defined(OPENSSL_NO_CMP) */
|
||||||
|
#endif /* !defined(OPENSSL_CMP_H) */
|
56
deps/openssl/mingw64/include/openssl/cmp_util.h
vendored
Normal file
56
deps/openssl/mingw64/include/openssl/cmp_util.h
vendored
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
* Copyright Nokia 2007-2019
|
||||||
|
* Copyright Siemens AG 2015-2019
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_CMP_UTIL_H
|
||||||
|
# define OPENSSL_CMP_UTIL_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
# ifndef OPENSSL_NO_CMP
|
||||||
|
|
||||||
|
# include <openssl/macros.h>
|
||||||
|
# include <openssl/trace.h>
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
int OSSL_CMP_log_open(void);
|
||||||
|
void OSSL_CMP_log_close(void);
|
||||||
|
# define OSSL_CMP_LOG_PREFIX "CMP "
|
||||||
|
|
||||||
|
/*
|
||||||
|
* generalized logging/error callback mirroring the severity levels of syslog.h
|
||||||
|
*/
|
||||||
|
typedef int OSSL_CMP_severity;
|
||||||
|
# define OSSL_CMP_LOG_EMERG 0
|
||||||
|
# define OSSL_CMP_LOG_ALERT 1
|
||||||
|
# define OSSL_CMP_LOG_CRIT 2
|
||||||
|
# define OSSL_CMP_LOG_ERR 3
|
||||||
|
# define OSSL_CMP_LOG_WARNING 4
|
||||||
|
# define OSSL_CMP_LOG_NOTICE 5
|
||||||
|
# define OSSL_CMP_LOG_INFO 6
|
||||||
|
# define OSSL_CMP_LOG_DEBUG 7
|
||||||
|
# define OSSL_CMP_LOG_TRACE 8
|
||||||
|
# define OSSL_CMP_LOG_MAX OSSL_CMP_LOG_TRACE
|
||||||
|
typedef int (*OSSL_CMP_log_cb_t)(const char *func, const char *file, int line,
|
||||||
|
OSSL_CMP_severity level, const char *msg);
|
||||||
|
|
||||||
|
int OSSL_CMP_print_to_bio(BIO *bio, const char *component, const char *file,
|
||||||
|
int line, OSSL_CMP_severity level, const char *msg);
|
||||||
|
/* use of the logging callback for outputting error queue */
|
||||||
|
void OSSL_CMP_print_errors_cb(OSSL_CMP_log_cb_t log_fn);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
# endif /* !defined(OPENSSL_NO_CMP) */
|
||||||
|
#endif /* !defined(OPENSSL_CMP_UTIL_H) */
|
116
deps/openssl/mingw64/include/openssl/cmperr.h
vendored
Normal file
116
deps/openssl/mingw64/include/openssl/cmperr.h
vendored
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
/*
|
||||||
|
* Generated by util/mkerr.pl DO NOT EDIT
|
||||||
|
* Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_CMPERR_H
|
||||||
|
# define OPENSSL_CMPERR_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
# include <openssl/symhacks.h>
|
||||||
|
# include <openssl/cryptoerr_legacy.h>
|
||||||
|
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_CMP
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* CMP reason codes.
|
||||||
|
*/
|
||||||
|
# define CMP_R_ALGORITHM_NOT_SUPPORTED 139
|
||||||
|
# define CMP_R_BAD_CHECKAFTER_IN_POLLREP 167
|
||||||
|
# define CMP_R_BAD_REQUEST_ID 108
|
||||||
|
# define CMP_R_CERTHASH_UNMATCHED 156
|
||||||
|
# define CMP_R_CERTID_NOT_FOUND 109
|
||||||
|
# define CMP_R_CERTIFICATE_NOT_ACCEPTED 169
|
||||||
|
# define CMP_R_CERTIFICATE_NOT_FOUND 112
|
||||||
|
# define CMP_R_CERTREQMSG_NOT_FOUND 157
|
||||||
|
# define CMP_R_CERTRESPONSE_NOT_FOUND 113
|
||||||
|
# define CMP_R_CERT_AND_KEY_DO_NOT_MATCH 114
|
||||||
|
# define CMP_R_CHECKAFTER_OUT_OF_RANGE 181
|
||||||
|
# define CMP_R_ENCOUNTERED_KEYUPDATEWARNING 176
|
||||||
|
# define CMP_R_ENCOUNTERED_WAITING 162
|
||||||
|
# define CMP_R_ERROR_CALCULATING_PROTECTION 115
|
||||||
|
# define CMP_R_ERROR_CREATING_CERTCONF 116
|
||||||
|
# define CMP_R_ERROR_CREATING_CERTREP 117
|
||||||
|
# define CMP_R_ERROR_CREATING_CERTREQ 163
|
||||||
|
# define CMP_R_ERROR_CREATING_ERROR 118
|
||||||
|
# define CMP_R_ERROR_CREATING_GENM 119
|
||||||
|
# define CMP_R_ERROR_CREATING_GENP 120
|
||||||
|
# define CMP_R_ERROR_CREATING_PKICONF 122
|
||||||
|
# define CMP_R_ERROR_CREATING_POLLREP 123
|
||||||
|
# define CMP_R_ERROR_CREATING_POLLREQ 124
|
||||||
|
# define CMP_R_ERROR_CREATING_RP 125
|
||||||
|
# define CMP_R_ERROR_CREATING_RR 126
|
||||||
|
# define CMP_R_ERROR_PARSING_PKISTATUS 107
|
||||||
|
# define CMP_R_ERROR_PROCESSING_MESSAGE 158
|
||||||
|
# define CMP_R_ERROR_PROTECTING_MESSAGE 127
|
||||||
|
# define CMP_R_ERROR_SETTING_CERTHASH 128
|
||||||
|
# define CMP_R_ERROR_UNEXPECTED_CERTCONF 160
|
||||||
|
# define CMP_R_ERROR_VALIDATING_PROTECTION 140
|
||||||
|
# define CMP_R_ERROR_VALIDATING_SIGNATURE 171
|
||||||
|
# define CMP_R_FAILED_BUILDING_OWN_CHAIN 164
|
||||||
|
# define CMP_R_FAILED_EXTRACTING_PUBKEY 141
|
||||||
|
# define CMP_R_FAILURE_OBTAINING_RANDOM 110
|
||||||
|
# define CMP_R_FAIL_INFO_OUT_OF_RANGE 129
|
||||||
|
# define CMP_R_INVALID_ARGS 100
|
||||||
|
# define CMP_R_INVALID_OPTION 174
|
||||||
|
# define CMP_R_MISSING_CERTID 165
|
||||||
|
# define CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION 130
|
||||||
|
# define CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE 142
|
||||||
|
# define CMP_R_MISSING_P10CSR 121
|
||||||
|
# define CMP_R_MISSING_PBM_SECRET 166
|
||||||
|
# define CMP_R_MISSING_PRIVATE_KEY 131
|
||||||
|
# define CMP_R_MISSING_PRIVATE_KEY_FOR_POPO 190
|
||||||
|
# define CMP_R_MISSING_PROTECTION 143
|
||||||
|
# define CMP_R_MISSING_PUBLIC_KEY 183
|
||||||
|
# define CMP_R_MISSING_REFERENCE_CERT 168
|
||||||
|
# define CMP_R_MISSING_SECRET 178
|
||||||
|
# define CMP_R_MISSING_SENDER_IDENTIFICATION 111
|
||||||
|
# define CMP_R_MISSING_TRUST_ANCHOR 179
|
||||||
|
# define CMP_R_MISSING_TRUST_STORE 144
|
||||||
|
# define CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED 161
|
||||||
|
# define CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED 170
|
||||||
|
# define CMP_R_MULTIPLE_SAN_SOURCES 102
|
||||||
|
# define CMP_R_NO_STDIO 194
|
||||||
|
# define CMP_R_NO_SUITABLE_SENDER_CERT 145
|
||||||
|
# define CMP_R_NULL_ARGUMENT 103
|
||||||
|
# define CMP_R_PKIBODY_ERROR 146
|
||||||
|
# define CMP_R_PKISTATUSINFO_NOT_FOUND 132
|
||||||
|
# define CMP_R_POLLING_FAILED 172
|
||||||
|
# define CMP_R_POTENTIALLY_INVALID_CERTIFICATE 147
|
||||||
|
# define CMP_R_RECEIVED_ERROR 180
|
||||||
|
# define CMP_R_RECIPNONCE_UNMATCHED 148
|
||||||
|
# define CMP_R_REQUEST_NOT_ACCEPTED 149
|
||||||
|
# define CMP_R_REQUEST_REJECTED_BY_SERVER 182
|
||||||
|
# define CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED 150
|
||||||
|
# define CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG 151
|
||||||
|
# define CMP_R_TOTAL_TIMEOUT 184
|
||||||
|
# define CMP_R_TRANSACTIONID_UNMATCHED 152
|
||||||
|
# define CMP_R_TRANSFER_ERROR 159
|
||||||
|
# define CMP_R_UNEXPECTED_PKIBODY 133
|
||||||
|
# define CMP_R_UNEXPECTED_PKISTATUS 185
|
||||||
|
# define CMP_R_UNEXPECTED_PVNO 153
|
||||||
|
# define CMP_R_UNKNOWN_ALGORITHM_ID 134
|
||||||
|
# define CMP_R_UNKNOWN_CERT_TYPE 135
|
||||||
|
# define CMP_R_UNKNOWN_PKISTATUS 186
|
||||||
|
# define CMP_R_UNSUPPORTED_ALGORITHM 136
|
||||||
|
# define CMP_R_UNSUPPORTED_KEY_TYPE 137
|
||||||
|
# define CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC 154
|
||||||
|
# define CMP_R_VALUE_TOO_LARGE 175
|
||||||
|
# define CMP_R_VALUE_TOO_SMALL 177
|
||||||
|
# define CMP_R_WRONG_ALGORITHM_OID 138
|
||||||
|
# define CMP_R_WRONG_CERTID 189
|
||||||
|
# define CMP_R_WRONG_CERTID_IN_RP 187
|
||||||
|
# define CMP_R_WRONG_PBM_VALUE 155
|
||||||
|
# define CMP_R_WRONG_RP_COMPONENT_COUNT 188
|
||||||
|
# define CMP_R_WRONG_SERIAL_IN_RP 173
|
||||||
|
|
||||||
|
# endif
|
||||||
|
#endif
|
395
deps/openssl/mingw64/include/openssl/cms.h.in
vendored
Normal file
395
deps/openssl/mingw64/include/openssl/cms.h.in
vendored
Normal file
@ -0,0 +1,395 @@
|
|||||||
|
/*
|
||||||
|
* {- join("\n * ", @autowarntext) -}
|
||||||
|
*
|
||||||
|
* Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
{-
|
||||||
|
use OpenSSL::stackhash qw(generate_stack_macros);
|
||||||
|
-}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_CMS_H
|
||||||
|
# define OPENSSL_CMS_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/macros.h>
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# define HEADER_CMS_H
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_CMS
|
||||||
|
# include <openssl/x509.h>
|
||||||
|
# include <openssl/x509v3.h>
|
||||||
|
# include <openssl/cmserr.h>
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
typedef struct CMS_ContentInfo_st CMS_ContentInfo;
|
||||||
|
typedef struct CMS_SignerInfo_st CMS_SignerInfo;
|
||||||
|
typedef struct CMS_CertificateChoices CMS_CertificateChoices;
|
||||||
|
typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice;
|
||||||
|
typedef struct CMS_RecipientInfo_st CMS_RecipientInfo;
|
||||||
|
typedef struct CMS_ReceiptRequest_st CMS_ReceiptRequest;
|
||||||
|
typedef struct CMS_Receipt_st CMS_Receipt;
|
||||||
|
typedef struct CMS_RecipientEncryptedKey_st CMS_RecipientEncryptedKey;
|
||||||
|
typedef struct CMS_OtherKeyAttribute_st CMS_OtherKeyAttribute;
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_stack_macros("CMS_SignerInfo")
|
||||||
|
.generate_stack_macros("CMS_RecipientEncryptedKey")
|
||||||
|
.generate_stack_macros("CMS_RecipientInfo")
|
||||||
|
.generate_stack_macros("CMS_RevocationInfoChoice");
|
||||||
|
-}
|
||||||
|
|
||||||
|
DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest)
|
||||||
|
DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo)
|
||||||
|
|
||||||
|
CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
|
||||||
|
# define CMS_SIGNERINFO_ISSUER_SERIAL 0
|
||||||
|
# define CMS_SIGNERINFO_KEYIDENTIFIER 1
|
||||||
|
|
||||||
|
# define CMS_RECIPINFO_NONE -1
|
||||||
|
# define CMS_RECIPINFO_TRANS 0
|
||||||
|
# define CMS_RECIPINFO_AGREE 1
|
||||||
|
# define CMS_RECIPINFO_KEK 2
|
||||||
|
# define CMS_RECIPINFO_PASS 3
|
||||||
|
# define CMS_RECIPINFO_OTHER 4
|
||||||
|
|
||||||
|
/* S/MIME related flags */
|
||||||
|
|
||||||
|
# define CMS_TEXT 0x1
|
||||||
|
# define CMS_NOCERTS 0x2
|
||||||
|
# define CMS_NO_CONTENT_VERIFY 0x4
|
||||||
|
# define CMS_NO_ATTR_VERIFY 0x8
|
||||||
|
# define CMS_NOSIGS \
|
||||||
|
(CMS_NO_CONTENT_VERIFY|CMS_NO_ATTR_VERIFY)
|
||||||
|
# define CMS_NOINTERN 0x10
|
||||||
|
# define CMS_NO_SIGNER_CERT_VERIFY 0x20
|
||||||
|
# define CMS_NOVERIFY 0x20
|
||||||
|
# define CMS_DETACHED 0x40
|
||||||
|
# define CMS_BINARY 0x80
|
||||||
|
# define CMS_NOATTR 0x100
|
||||||
|
# define CMS_NOSMIMECAP 0x200
|
||||||
|
# define CMS_NOOLDMIMETYPE 0x400
|
||||||
|
# define CMS_CRLFEOL 0x800
|
||||||
|
# define CMS_STREAM 0x1000
|
||||||
|
# define CMS_NOCRL 0x2000
|
||||||
|
# define CMS_PARTIAL 0x4000
|
||||||
|
# define CMS_REUSE_DIGEST 0x8000
|
||||||
|
# define CMS_USE_KEYID 0x10000
|
||||||
|
# define CMS_DEBUG_DECRYPT 0x20000
|
||||||
|
# define CMS_KEY_PARAM 0x40000
|
||||||
|
# define CMS_ASCIICRLF 0x80000
|
||||||
|
# define CMS_CADES 0x100000
|
||||||
|
# define CMS_USE_ORIGINATOR_KEYID 0x200000
|
||||||
|
|
||||||
|
const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms);
|
||||||
|
|
||||||
|
BIO *CMS_dataInit(CMS_ContentInfo *cms, BIO *icont);
|
||||||
|
int CMS_dataFinal(CMS_ContentInfo *cms, BIO *bio);
|
||||||
|
|
||||||
|
ASN1_OCTET_STRING **CMS_get0_content(CMS_ContentInfo *cms);
|
||||||
|
int CMS_is_detached(CMS_ContentInfo *cms);
|
||||||
|
int CMS_set_detached(CMS_ContentInfo *cms, int detached);
|
||||||
|
|
||||||
|
# ifdef OPENSSL_PEM_H
|
||||||
|
DECLARE_PEM_rw(CMS, CMS_ContentInfo)
|
||||||
|
# endif
|
||||||
|
int CMS_stream(unsigned char ***boundary, CMS_ContentInfo *cms);
|
||||||
|
CMS_ContentInfo *d2i_CMS_bio(BIO *bp, CMS_ContentInfo **cms);
|
||||||
|
int i2d_CMS_bio(BIO *bp, CMS_ContentInfo *cms);
|
||||||
|
|
||||||
|
BIO *BIO_new_CMS(BIO *out, CMS_ContentInfo *cms);
|
||||||
|
int i2d_CMS_bio_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, int flags);
|
||||||
|
int PEM_write_bio_CMS_stream(BIO *out, CMS_ContentInfo *cms, BIO *in,
|
||||||
|
int flags);
|
||||||
|
CMS_ContentInfo *SMIME_read_CMS(BIO *bio, BIO **bcont);
|
||||||
|
CMS_ContentInfo *SMIME_read_CMS_ex(BIO *bio, int flags, BIO **bcont, CMS_ContentInfo **ci);
|
||||||
|
int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags);
|
||||||
|
|
||||||
|
int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont,
|
||||||
|
unsigned int flags);
|
||||||
|
|
||||||
|
CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey,
|
||||||
|
STACK_OF(X509) *certs, BIO *data,
|
||||||
|
unsigned int flags);
|
||||||
|
CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey,
|
||||||
|
STACK_OF(X509) *certs, BIO *data,
|
||||||
|
unsigned int flags, OSSL_LIB_CTX *ctx,
|
||||||
|
const char *propq);
|
||||||
|
|
||||||
|
CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si,
|
||||||
|
X509 *signcert, EVP_PKEY *pkey,
|
||||||
|
STACK_OF(X509) *certs, unsigned int flags);
|
||||||
|
|
||||||
|
int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags);
|
||||||
|
CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags);
|
||||||
|
CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags,
|
||||||
|
OSSL_LIB_CTX *ctx, const char *propq);
|
||||||
|
|
||||||
|
int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out,
|
||||||
|
unsigned int flags);
|
||||||
|
CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md,
|
||||||
|
unsigned int flags);
|
||||||
|
CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md,
|
||||||
|
unsigned int flags, OSSL_LIB_CTX *ctx,
|
||||||
|
const char *propq);
|
||||||
|
|
||||||
|
int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms,
|
||||||
|
const unsigned char *key, size_t keylen,
|
||||||
|
BIO *dcont, BIO *out, unsigned int flags);
|
||||||
|
|
||||||
|
CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher,
|
||||||
|
const unsigned char *key,
|
||||||
|
size_t keylen, unsigned int flags);
|
||||||
|
CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher,
|
||||||
|
const unsigned char *key,
|
||||||
|
size_t keylen, unsigned int flags,
|
||||||
|
OSSL_LIB_CTX *ctx,
|
||||||
|
const char *propq);
|
||||||
|
|
||||||
|
int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph,
|
||||||
|
const unsigned char *key, size_t keylen);
|
||||||
|
|
||||||
|
int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs,
|
||||||
|
X509_STORE *store, BIO *dcont, BIO *out, unsigned int flags);
|
||||||
|
|
||||||
|
int CMS_verify_receipt(CMS_ContentInfo *rcms, CMS_ContentInfo *ocms,
|
||||||
|
STACK_OF(X509) *certs,
|
||||||
|
X509_STORE *store, unsigned int flags);
|
||||||
|
|
||||||
|
STACK_OF(X509) *CMS_get0_signers(CMS_ContentInfo *cms);
|
||||||
|
|
||||||
|
CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in,
|
||||||
|
const EVP_CIPHER *cipher, unsigned int flags);
|
||||||
|
CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in,
|
||||||
|
const EVP_CIPHER *cipher, unsigned int flags,
|
||||||
|
OSSL_LIB_CTX *ctx, const char *propq);
|
||||||
|
|
||||||
|
int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert,
|
||||||
|
BIO *dcont, BIO *out, unsigned int flags);
|
||||||
|
|
||||||
|
int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert);
|
||||||
|
int CMS_decrypt_set1_pkey_and_peer(CMS_ContentInfo *cms, EVP_PKEY *pk,
|
||||||
|
X509 *cert, X509 *peer);
|
||||||
|
int CMS_decrypt_set1_key(CMS_ContentInfo *cms,
|
||||||
|
unsigned char *key, size_t keylen,
|
||||||
|
const unsigned char *id, size_t idlen);
|
||||||
|
int CMS_decrypt_set1_password(CMS_ContentInfo *cms,
|
||||||
|
unsigned char *pass, ossl_ssize_t passlen);
|
||||||
|
|
||||||
|
STACK_OF(CMS_RecipientInfo) *CMS_get0_RecipientInfos(CMS_ContentInfo *cms);
|
||||||
|
int CMS_RecipientInfo_type(CMS_RecipientInfo *ri);
|
||||||
|
EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri);
|
||||||
|
CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher);
|
||||||
|
CMS_ContentInfo *
|
||||||
|
CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *ctx,
|
||||||
|
const char *propq);
|
||||||
|
CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher);
|
||||||
|
CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher,
|
||||||
|
OSSL_LIB_CTX *ctx,
|
||||||
|
const char *propq);
|
||||||
|
|
||||||
|
CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms,
|
||||||
|
X509 *recip, unsigned int flags);
|
||||||
|
CMS_RecipientInfo *CMS_add1_recipient(CMS_ContentInfo *cms, X509 *recip,
|
||||||
|
EVP_PKEY *originatorPrivKey, X509 * originator, unsigned int flags);
|
||||||
|
int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey);
|
||||||
|
int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert);
|
||||||
|
int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri,
|
||||||
|
EVP_PKEY **pk, X509 **recip,
|
||||||
|
X509_ALGOR **palg);
|
||||||
|
int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri,
|
||||||
|
ASN1_OCTET_STRING **keyid,
|
||||||
|
X509_NAME **issuer,
|
||||||
|
ASN1_INTEGER **sno);
|
||||||
|
|
||||||
|
CMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid,
|
||||||
|
unsigned char *key, size_t keylen,
|
||||||
|
unsigned char *id, size_t idlen,
|
||||||
|
ASN1_GENERALIZEDTIME *date,
|
||||||
|
ASN1_OBJECT *otherTypeId,
|
||||||
|
ASN1_TYPE *otherType);
|
||||||
|
|
||||||
|
int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri,
|
||||||
|
X509_ALGOR **palg,
|
||||||
|
ASN1_OCTET_STRING **pid,
|
||||||
|
ASN1_GENERALIZEDTIME **pdate,
|
||||||
|
ASN1_OBJECT **potherid,
|
||||||
|
ASN1_TYPE **pothertype);
|
||||||
|
|
||||||
|
int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri,
|
||||||
|
unsigned char *key, size_t keylen);
|
||||||
|
|
||||||
|
int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri,
|
||||||
|
const unsigned char *id, size_t idlen);
|
||||||
|
|
||||||
|
int CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri,
|
||||||
|
unsigned char *pass,
|
||||||
|
ossl_ssize_t passlen);
|
||||||
|
|
||||||
|
CMS_RecipientInfo *CMS_add0_recipient_password(CMS_ContentInfo *cms,
|
||||||
|
int iter, int wrap_nid,
|
||||||
|
int pbe_nid,
|
||||||
|
unsigned char *pass,
|
||||||
|
ossl_ssize_t passlen,
|
||||||
|
const EVP_CIPHER *kekciph);
|
||||||
|
|
||||||
|
int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri);
|
||||||
|
int CMS_RecipientInfo_encrypt(const CMS_ContentInfo *cms, CMS_RecipientInfo *ri);
|
||||||
|
|
||||||
|
int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out,
|
||||||
|
unsigned int flags);
|
||||||
|
CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags);
|
||||||
|
|
||||||
|
int CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid);
|
||||||
|
const ASN1_OBJECT *CMS_get0_eContentType(CMS_ContentInfo *cms);
|
||||||
|
|
||||||
|
CMS_CertificateChoices *CMS_add0_CertificateChoices(CMS_ContentInfo *cms);
|
||||||
|
int CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert);
|
||||||
|
int CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert);
|
||||||
|
STACK_OF(X509) *CMS_get1_certs(CMS_ContentInfo *cms);
|
||||||
|
|
||||||
|
CMS_RevocationInfoChoice *CMS_add0_RevocationInfoChoice(CMS_ContentInfo *cms);
|
||||||
|
int CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl);
|
||||||
|
int CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl);
|
||||||
|
STACK_OF(X509_CRL) *CMS_get1_crls(CMS_ContentInfo *cms);
|
||||||
|
|
||||||
|
int CMS_SignedData_init(CMS_ContentInfo *cms);
|
||||||
|
CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms,
|
||||||
|
X509 *signer, EVP_PKEY *pk, const EVP_MD *md,
|
||||||
|
unsigned int flags);
|
||||||
|
EVP_PKEY_CTX *CMS_SignerInfo_get0_pkey_ctx(CMS_SignerInfo *si);
|
||||||
|
EVP_MD_CTX *CMS_SignerInfo_get0_md_ctx(CMS_SignerInfo *si);
|
||||||
|
STACK_OF(CMS_SignerInfo) *CMS_get0_SignerInfos(CMS_ContentInfo *cms);
|
||||||
|
|
||||||
|
void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer);
|
||||||
|
int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si,
|
||||||
|
ASN1_OCTET_STRING **keyid,
|
||||||
|
X509_NAME **issuer, ASN1_INTEGER **sno);
|
||||||
|
int CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert);
|
||||||
|
int CMS_set1_signers_certs(CMS_ContentInfo *cms, STACK_OF(X509) *certs,
|
||||||
|
unsigned int flags);
|
||||||
|
void CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk,
|
||||||
|
X509 **signer, X509_ALGOR **pdig,
|
||||||
|
X509_ALGOR **psig);
|
||||||
|
ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si);
|
||||||
|
int CMS_SignerInfo_sign(CMS_SignerInfo *si);
|
||||||
|
int CMS_SignerInfo_verify(CMS_SignerInfo *si);
|
||||||
|
int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain);
|
||||||
|
|
||||||
|
int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs);
|
||||||
|
int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs,
|
||||||
|
int algnid, int keysize);
|
||||||
|
int CMS_add_standard_smimecap(STACK_OF(X509_ALGOR) **smcap);
|
||||||
|
|
||||||
|
int CMS_signed_get_attr_count(const CMS_SignerInfo *si);
|
||||||
|
int CMS_signed_get_attr_by_NID(const CMS_SignerInfo *si, int nid,
|
||||||
|
int lastpos);
|
||||||
|
int CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo *si, const ASN1_OBJECT *obj,
|
||||||
|
int lastpos);
|
||||||
|
X509_ATTRIBUTE *CMS_signed_get_attr(const CMS_SignerInfo *si, int loc);
|
||||||
|
X509_ATTRIBUTE *CMS_signed_delete_attr(CMS_SignerInfo *si, int loc);
|
||||||
|
int CMS_signed_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr);
|
||||||
|
int CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo *si,
|
||||||
|
const ASN1_OBJECT *obj, int type,
|
||||||
|
const void *bytes, int len);
|
||||||
|
int CMS_signed_add1_attr_by_NID(CMS_SignerInfo *si,
|
||||||
|
int nid, int type,
|
||||||
|
const void *bytes, int len);
|
||||||
|
int CMS_signed_add1_attr_by_txt(CMS_SignerInfo *si,
|
||||||
|
const char *attrname, int type,
|
||||||
|
const void *bytes, int len);
|
||||||
|
void *CMS_signed_get0_data_by_OBJ(const CMS_SignerInfo *si,
|
||||||
|
const ASN1_OBJECT *oid,
|
||||||
|
int lastpos, int type);
|
||||||
|
|
||||||
|
int CMS_unsigned_get_attr_count(const CMS_SignerInfo *si);
|
||||||
|
int CMS_unsigned_get_attr_by_NID(const CMS_SignerInfo *si, int nid,
|
||||||
|
int lastpos);
|
||||||
|
int CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo *si,
|
||||||
|
const ASN1_OBJECT *obj, int lastpos);
|
||||||
|
X509_ATTRIBUTE *CMS_unsigned_get_attr(const CMS_SignerInfo *si, int loc);
|
||||||
|
X509_ATTRIBUTE *CMS_unsigned_delete_attr(CMS_SignerInfo *si, int loc);
|
||||||
|
int CMS_unsigned_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr);
|
||||||
|
int CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo *si,
|
||||||
|
const ASN1_OBJECT *obj, int type,
|
||||||
|
const void *bytes, int len);
|
||||||
|
int CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo *si,
|
||||||
|
int nid, int type,
|
||||||
|
const void *bytes, int len);
|
||||||
|
int CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo *si,
|
||||||
|
const char *attrname, int type,
|
||||||
|
const void *bytes, int len);
|
||||||
|
void *CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid,
|
||||||
|
int lastpos, int type);
|
||||||
|
|
||||||
|
int CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest **prr);
|
||||||
|
CMS_ReceiptRequest *CMS_ReceiptRequest_create0(
|
||||||
|
unsigned char *id, int idlen, int allorfirst,
|
||||||
|
STACK_OF(GENERAL_NAMES) *receiptList,
|
||||||
|
STACK_OF(GENERAL_NAMES) *receiptsTo);
|
||||||
|
CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex(
|
||||||
|
unsigned char *id, int idlen, int allorfirst,
|
||||||
|
STACK_OF(GENERAL_NAMES) *receiptList,
|
||||||
|
STACK_OF(GENERAL_NAMES) *receiptsTo,
|
||||||
|
OSSL_LIB_CTX *ctx);
|
||||||
|
|
||||||
|
int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr);
|
||||||
|
void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr,
|
||||||
|
ASN1_STRING **pcid,
|
||||||
|
int *pallorfirst,
|
||||||
|
STACK_OF(GENERAL_NAMES) **plist,
|
||||||
|
STACK_OF(GENERAL_NAMES) **prto);
|
||||||
|
int CMS_RecipientInfo_kari_get0_alg(CMS_RecipientInfo *ri,
|
||||||
|
X509_ALGOR **palg,
|
||||||
|
ASN1_OCTET_STRING **pukm);
|
||||||
|
STACK_OF(CMS_RecipientEncryptedKey)
|
||||||
|
*CMS_RecipientInfo_kari_get0_reks(CMS_RecipientInfo *ri);
|
||||||
|
|
||||||
|
int CMS_RecipientInfo_kari_get0_orig_id(CMS_RecipientInfo *ri,
|
||||||
|
X509_ALGOR **pubalg,
|
||||||
|
ASN1_BIT_STRING **pubkey,
|
||||||
|
ASN1_OCTET_STRING **keyid,
|
||||||
|
X509_NAME **issuer,
|
||||||
|
ASN1_INTEGER **sno);
|
||||||
|
|
||||||
|
int CMS_RecipientInfo_kari_orig_id_cmp(CMS_RecipientInfo *ri, X509 *cert);
|
||||||
|
|
||||||
|
int CMS_RecipientEncryptedKey_get0_id(CMS_RecipientEncryptedKey *rek,
|
||||||
|
ASN1_OCTET_STRING **keyid,
|
||||||
|
ASN1_GENERALIZEDTIME **tm,
|
||||||
|
CMS_OtherKeyAttribute **other,
|
||||||
|
X509_NAME **issuer, ASN1_INTEGER **sno);
|
||||||
|
int CMS_RecipientEncryptedKey_cert_cmp(CMS_RecipientEncryptedKey *rek,
|
||||||
|
X509 *cert);
|
||||||
|
int CMS_RecipientInfo_kari_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pk);
|
||||||
|
int CMS_RecipientInfo_kari_set0_pkey_and_peer(CMS_RecipientInfo *ri, EVP_PKEY *pk, X509 *peer);
|
||||||
|
EVP_CIPHER_CTX *CMS_RecipientInfo_kari_get0_ctx(CMS_RecipientInfo *ri);
|
||||||
|
int CMS_RecipientInfo_kari_decrypt(CMS_ContentInfo *cms,
|
||||||
|
CMS_RecipientInfo *ri,
|
||||||
|
CMS_RecipientEncryptedKey *rek);
|
||||||
|
|
||||||
|
int CMS_SharedInfo_encode(unsigned char **pder, X509_ALGOR *kekalg,
|
||||||
|
ASN1_OCTET_STRING *ukm, int keylen);
|
||||||
|
|
||||||
|
/* Backward compatibility for spelling errors. */
|
||||||
|
# define CMS_R_UNKNOWN_DIGEST_ALGORITM CMS_R_UNKNOWN_DIGEST_ALGORITHM
|
||||||
|
# define CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE \
|
||||||
|
CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
177
deps/openssl/mingw64/include/openssl/conf.h.in
vendored
Normal file
177
deps/openssl/mingw64/include/openssl/conf.h.in
vendored
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
/*
|
||||||
|
* {- join("\n * ", @autowarntext) -}
|
||||||
|
*
|
||||||
|
* Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
{-
|
||||||
|
use OpenSSL::stackhash qw(generate_stack_macros generate_lhash_macros);
|
||||||
|
-}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_CONF_H
|
||||||
|
# define OPENSSL_CONF_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/macros.h>
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# define HEADER_CONF_H
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# include <openssl/bio.h>
|
||||||
|
# include <openssl/lhash.h>
|
||||||
|
# include <openssl/safestack.h>
|
||||||
|
# include <openssl/e_os2.h>
|
||||||
|
# include <openssl/types.h>
|
||||||
|
# include <openssl/conferr.h>
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
# include <stdio.h>
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
char *section;
|
||||||
|
char *name;
|
||||||
|
char *value;
|
||||||
|
} CONF_VALUE;
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_stack_macros("CONF_VALUE")
|
||||||
|
.generate_lhash_macros("CONF_VALUE");
|
||||||
|
-}
|
||||||
|
|
||||||
|
struct conf_st;
|
||||||
|
struct conf_method_st;
|
||||||
|
typedef struct conf_method_st CONF_METHOD;
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# include <openssl/conftypes.h>
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/* Module definitions */
|
||||||
|
typedef struct conf_imodule_st CONF_IMODULE;
|
||||||
|
typedef struct conf_module_st CONF_MODULE;
|
||||||
|
|
||||||
|
STACK_OF(CONF_MODULE);
|
||||||
|
STACK_OF(CONF_IMODULE);
|
||||||
|
|
||||||
|
/* DSO module function typedefs */
|
||||||
|
typedef int conf_init_func (CONF_IMODULE *md, const CONF *cnf);
|
||||||
|
typedef void conf_finish_func (CONF_IMODULE *md);
|
||||||
|
|
||||||
|
# define CONF_MFLAGS_IGNORE_ERRORS 0x1
|
||||||
|
# define CONF_MFLAGS_IGNORE_RETURN_CODES 0x2
|
||||||
|
# define CONF_MFLAGS_SILENT 0x4
|
||||||
|
# define CONF_MFLAGS_NO_DSO 0x8
|
||||||
|
# define CONF_MFLAGS_IGNORE_MISSING_FILE 0x10
|
||||||
|
# define CONF_MFLAGS_DEFAULT_SECTION 0x20
|
||||||
|
|
||||||
|
int CONF_set_default_method(CONF_METHOD *meth);
|
||||||
|
void CONF_set_nconf(CONF *conf, LHASH_OF(CONF_VALUE) *hash);
|
||||||
|
LHASH_OF(CONF_VALUE) *CONF_load(LHASH_OF(CONF_VALUE) *conf, const char *file,
|
||||||
|
long *eline);
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
LHASH_OF(CONF_VALUE) *CONF_load_fp(LHASH_OF(CONF_VALUE) *conf, FILE *fp,
|
||||||
|
long *eline);
|
||||||
|
# endif
|
||||||
|
LHASH_OF(CONF_VALUE) *CONF_load_bio(LHASH_OF(CONF_VALUE) *conf, BIO *bp,
|
||||||
|
long *eline);
|
||||||
|
STACK_OF(CONF_VALUE) *CONF_get_section(LHASH_OF(CONF_VALUE) *conf,
|
||||||
|
const char *section);
|
||||||
|
char *CONF_get_string(LHASH_OF(CONF_VALUE) *conf, const char *group,
|
||||||
|
const char *name);
|
||||||
|
long CONF_get_number(LHASH_OF(CONF_VALUE) *conf, const char *group,
|
||||||
|
const char *name);
|
||||||
|
void CONF_free(LHASH_OF(CONF_VALUE) *conf);
|
||||||
|
#ifndef OPENSSL_NO_STDIO
|
||||||
|
int CONF_dump_fp(LHASH_OF(CONF_VALUE) *conf, FILE *out);
|
||||||
|
#endif
|
||||||
|
int CONF_dump_bio(LHASH_OF(CONF_VALUE) *conf, BIO *out);
|
||||||
|
#ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
OSSL_DEPRECATEDIN_1_1_0 void OPENSSL_config(const char *config_name);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
# define OPENSSL_no_config() \
|
||||||
|
OPENSSL_init_crypto(OPENSSL_INIT_NO_LOAD_CONFIG, NULL)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* New conf code. The semantics are different from the functions above. If
|
||||||
|
* that wasn't the case, the above functions would have been replaced
|
||||||
|
*/
|
||||||
|
|
||||||
|
CONF *NCONF_new_ex(OSSL_LIB_CTX *libctx, CONF_METHOD *meth);
|
||||||
|
OSSL_LIB_CTX *NCONF_get0_libctx(const CONF *conf);
|
||||||
|
CONF *NCONF_new(CONF_METHOD *meth);
|
||||||
|
CONF_METHOD *NCONF_default(void);
|
||||||
|
#ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
OSSL_DEPRECATEDIN_3_0 CONF_METHOD *NCONF_WIN32(void);
|
||||||
|
#endif
|
||||||
|
void NCONF_free(CONF *conf);
|
||||||
|
void NCONF_free_data(CONF *conf);
|
||||||
|
|
||||||
|
int NCONF_load(CONF *conf, const char *file, long *eline);
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
int NCONF_load_fp(CONF *conf, FILE *fp, long *eline);
|
||||||
|
# endif
|
||||||
|
int NCONF_load_bio(CONF *conf, BIO *bp, long *eline);
|
||||||
|
STACK_OF(OPENSSL_CSTRING) *NCONF_get_section_names(const CONF *conf);
|
||||||
|
STACK_OF(CONF_VALUE) *NCONF_get_section(const CONF *conf,
|
||||||
|
const char *section);
|
||||||
|
char *NCONF_get_string(const CONF *conf, const char *group, const char *name);
|
||||||
|
int NCONF_get_number_e(const CONF *conf, const char *group, const char *name,
|
||||||
|
long *result);
|
||||||
|
#ifndef OPENSSL_NO_STDIO
|
||||||
|
int NCONF_dump_fp(const CONF *conf, FILE *out);
|
||||||
|
#endif
|
||||||
|
int NCONF_dump_bio(const CONF *conf, BIO *out);
|
||||||
|
|
||||||
|
#define NCONF_get_number(c,g,n,r) NCONF_get_number_e(c,g,n,r)
|
||||||
|
|
||||||
|
/* Module functions */
|
||||||
|
|
||||||
|
int CONF_modules_load(const CONF *cnf, const char *appname,
|
||||||
|
unsigned long flags);
|
||||||
|
int CONF_modules_load_file_ex(OSSL_LIB_CTX *libctx, const char *filename,
|
||||||
|
const char *appname, unsigned long flags);
|
||||||
|
int CONF_modules_load_file(const char *filename, const char *appname,
|
||||||
|
unsigned long flags);
|
||||||
|
void CONF_modules_unload(int all);
|
||||||
|
void CONF_modules_finish(void);
|
||||||
|
#ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
# define CONF_modules_free() while(0) continue
|
||||||
|
#endif
|
||||||
|
int CONF_module_add(const char *name, conf_init_func *ifunc,
|
||||||
|
conf_finish_func *ffunc);
|
||||||
|
|
||||||
|
const char *CONF_imodule_get_name(const CONF_IMODULE *md);
|
||||||
|
const char *CONF_imodule_get_value(const CONF_IMODULE *md);
|
||||||
|
void *CONF_imodule_get_usr_data(const CONF_IMODULE *md);
|
||||||
|
void CONF_imodule_set_usr_data(CONF_IMODULE *md, void *usr_data);
|
||||||
|
CONF_MODULE *CONF_imodule_get_module(const CONF_IMODULE *md);
|
||||||
|
unsigned long CONF_imodule_get_flags(const CONF_IMODULE *md);
|
||||||
|
void CONF_imodule_set_flags(CONF_IMODULE *md, unsigned long flags);
|
||||||
|
void *CONF_module_get_usr_data(CONF_MODULE *pmod);
|
||||||
|
void CONF_module_set_usr_data(CONF_MODULE *pmod, void *usr_data);
|
||||||
|
|
||||||
|
char *CONF_get1_default_config_file(void);
|
||||||
|
|
||||||
|
int CONF_parse_list(const char *list, int sep, int nospc,
|
||||||
|
int (*list_cb) (const char *elem, int len, void *usr),
|
||||||
|
void *arg);
|
||||||
|
|
||||||
|
void OPENSSL_load_builtin_modules(void);
|
||||||
|
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
#endif
|
140
deps/openssl/mingw64/include/openssl/configuration.h
vendored
Normal file
140
deps/openssl/mingw64/include/openssl/configuration.h
vendored
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
/*
|
||||||
|
* WARNING: do not edit!
|
||||||
|
* Generated by configdata.pm from Configurations/common0.tmpl, Configurations/unix-Makefile.tmpl
|
||||||
|
* via Makefile.in
|
||||||
|
*
|
||||||
|
* Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_CONFIGURATION_H
|
||||||
|
# define OPENSSL_CONFIGURATION_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifdef OPENSSL_ALGORITHM_DEFINES
|
||||||
|
# error OPENSSL_ALGORITHM_DEFINES no longer supported
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* OpenSSL was configured with the following options:
|
||||||
|
*/
|
||||||
|
|
||||||
|
# ifndef OPENSSL_SYS_MINGW64
|
||||||
|
# define OPENSSL_SYS_MINGW64 1
|
||||||
|
# endif
|
||||||
|
# define OPENSSL_CONFIGURED_API 30100
|
||||||
|
# ifndef OPENSSL_RAND_SEED_OS
|
||||||
|
# define OPENSSL_RAND_SEED_OS
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_THREADS
|
||||||
|
# define OPENSSL_THREADS
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_ACVP_TESTS
|
||||||
|
# define OPENSSL_NO_ACVP_TESTS
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_AFALGENG
|
||||||
|
# define OPENSSL_NO_AFALGENG
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_ASAN
|
||||||
|
# define OPENSSL_NO_ASAN
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_CRYPTO_MDEBUG
|
||||||
|
# define OPENSSL_NO_CRYPTO_MDEBUG
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE
|
||||||
|
# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_DEVCRYPTOENG
|
||||||
|
# define OPENSSL_NO_DEVCRYPTOENG
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_EC_NISTP_64_GCC_128
|
||||||
|
# define OPENSSL_NO_EC_NISTP_64_GCC_128
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_EGD
|
||||||
|
# define OPENSSL_NO_EGD
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_EXTERNAL_TESTS
|
||||||
|
# define OPENSSL_NO_EXTERNAL_TESTS
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_FIPS_SECURITYCHECKS
|
||||||
|
# define OPENSSL_NO_FIPS_SECURITYCHECKS
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_FUZZ_AFL
|
||||||
|
# define OPENSSL_NO_FUZZ_AFL
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_FUZZ_LIBFUZZER
|
||||||
|
# define OPENSSL_NO_FUZZ_LIBFUZZER
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_KTLS
|
||||||
|
# define OPENSSL_NO_KTLS
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_LOADERENG
|
||||||
|
# define OPENSSL_NO_LOADERENG
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_MD2
|
||||||
|
# define OPENSSL_NO_MD2
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_MSAN
|
||||||
|
# define OPENSSL_NO_MSAN
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_RC5
|
||||||
|
# define OPENSSL_NO_RC5
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_SCTP
|
||||||
|
# define OPENSSL_NO_SCTP
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_SSL3
|
||||||
|
# define OPENSSL_NO_SSL3
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_SSL3_METHOD
|
||||||
|
# define OPENSSL_NO_SSL3_METHOD
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_TRACE
|
||||||
|
# define OPENSSL_NO_TRACE
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_UBSAN
|
||||||
|
# define OPENSSL_NO_UBSAN
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_UNIT_TEST
|
||||||
|
# define OPENSSL_NO_UNIT_TEST
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_UPLINK
|
||||||
|
# define OPENSSL_NO_UPLINK
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_WEAK_SSL_CIPHERS
|
||||||
|
# define OPENSSL_NO_WEAK_SSL_CIPHERS
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_DYNAMIC_ENGINE
|
||||||
|
# define OPENSSL_NO_DYNAMIC_ENGINE
|
||||||
|
# endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Generate 80386 code? */
|
||||||
|
# undef I386_ONLY
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The following are cipher-specific, but are part of the public API.
|
||||||
|
*/
|
||||||
|
# if !defined(OPENSSL_SYS_UEFI)
|
||||||
|
# undef BN_LLONG
|
||||||
|
/* Only one for the following should be defined */
|
||||||
|
# undef SIXTY_FOUR_BIT_LONG
|
||||||
|
# define SIXTY_FOUR_BIT
|
||||||
|
# undef THIRTY_TWO_BIT
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# define RC4_INT unsigned int
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif /* OPENSSL_CONFIGURATION_H */
|
69
deps/openssl/mingw64/include/openssl/configuration.h.in
vendored
Normal file
69
deps/openssl/mingw64/include/openssl/configuration.h.in
vendored
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
/*
|
||||||
|
* {- join("\n * ", @autowarntext) -}
|
||||||
|
*
|
||||||
|
* Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_CONFIGURATION_H
|
||||||
|
# define OPENSSL_CONFIGURATION_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifdef OPENSSL_ALGORITHM_DEFINES
|
||||||
|
# error OPENSSL_ALGORITHM_DEFINES no longer supported
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* OpenSSL was configured with the following options:
|
||||||
|
*/
|
||||||
|
|
||||||
|
{- if (@{$config{openssl_sys_defines}}) {
|
||||||
|
foreach (@{$config{openssl_sys_defines}}) {
|
||||||
|
$OUT .= "# ifndef $_\n";
|
||||||
|
$OUT .= "# define $_ 1\n";
|
||||||
|
$OUT .= "# endif\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach (@{$config{openssl_api_defines}}) {
|
||||||
|
(my $macro, my $value) = $_ =~ /^(.*?)=(.*?)$/;
|
||||||
|
$OUT .= "# define $macro $value\n";
|
||||||
|
}
|
||||||
|
if (@{$config{openssl_feature_defines}}) {
|
||||||
|
foreach (@{$config{openssl_feature_defines}}) {
|
||||||
|
$OUT .= "# ifndef $_\n";
|
||||||
|
$OUT .= "# define $_\n";
|
||||||
|
$OUT .= "# endif\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"";
|
||||||
|
-}
|
||||||
|
|
||||||
|
/* Generate 80386 code? */
|
||||||
|
{- $config{processor} eq "386" ? "# define" : "# undef" -} I386_ONLY
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The following are cipher-specific, but are part of the public API.
|
||||||
|
*/
|
||||||
|
# if !defined(OPENSSL_SYS_UEFI)
|
||||||
|
{- $config{bn_ll} ? "# define" : "# undef" -} BN_LLONG
|
||||||
|
/* Only one for the following should be defined */
|
||||||
|
{- $config{b64l} ? "# define" : "# undef" -} SIXTY_FOUR_BIT_LONG
|
||||||
|
{- $config{b64} ? "# define" : "# undef" -} SIXTY_FOUR_BIT
|
||||||
|
{- $config{b32} ? "# define" : "# undef" -} THIRTY_TWO_BIT
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# define RC4_INT {- $config{rc4_int} -}
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif /* OPENSSL_CONFIGURATION_H */
|
44
deps/openssl/mingw64/include/openssl/conftypes.h
vendored
Normal file
44
deps/openssl/mingw64/include/openssl/conftypes.h
vendored
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_CONFTYPES_H
|
||||||
|
# define OPENSSL_CONFTYPES_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
#ifndef OPENSSL_CONF_H
|
||||||
|
# include <openssl/conf.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The contents of this file are deprecated and will be made opaque
|
||||||
|
*/
|
||||||
|
struct conf_method_st {
|
||||||
|
const char *name;
|
||||||
|
CONF *(*create) (CONF_METHOD *meth);
|
||||||
|
int (*init) (CONF *conf);
|
||||||
|
int (*destroy) (CONF *conf);
|
||||||
|
int (*destroy_data) (CONF *conf);
|
||||||
|
int (*load_bio) (CONF *conf, BIO *bp, long *eline);
|
||||||
|
int (*dump) (const CONF *conf, BIO *bp);
|
||||||
|
int (*is_number) (const CONF *conf, char c);
|
||||||
|
int (*to_int) (const CONF *conf, char c);
|
||||||
|
int (*load) (CONF *conf, const char *name, long *eline);
|
||||||
|
};
|
||||||
|
|
||||||
|
struct conf_st {
|
||||||
|
CONF_METHOD *meth;
|
||||||
|
void *meth_data;
|
||||||
|
LHASH_OF(CONF_VALUE) *data;
|
||||||
|
int flag_dollarid;
|
||||||
|
int flag_abspath;
|
||||||
|
char *includedir;
|
||||||
|
OSSL_LIB_CTX *libctx;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
233
deps/openssl/mingw64/include/openssl/core.h
vendored
Normal file
233
deps/openssl/mingw64/include/openssl/core.h
vendored
Normal file
@ -0,0 +1,233 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_CORE_H
|
||||||
|
# define OPENSSL_CORE_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <stddef.h>
|
||||||
|
# include <openssl/types.h>
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* Base types
|
||||||
|
* ----------
|
||||||
|
*
|
||||||
|
* These are the types that the OpenSSL core and providers have in common
|
||||||
|
* to communicate data between them.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Opaque handles to be used with core upcall functions from providers */
|
||||||
|
typedef struct ossl_core_handle_st OSSL_CORE_HANDLE;
|
||||||
|
typedef struct openssl_core_ctx_st OPENSSL_CORE_CTX;
|
||||||
|
typedef struct ossl_core_bio_st OSSL_CORE_BIO;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dispatch table element. function_id numbers and the functions are defined
|
||||||
|
* in core_dispatch.h, see macros with 'OSSL_CORE_MAKE_FUNC' in their names.
|
||||||
|
*
|
||||||
|
* An array of these is always terminated by function_id == 0
|
||||||
|
*/
|
||||||
|
struct ossl_dispatch_st {
|
||||||
|
int function_id;
|
||||||
|
void (*function)(void);
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Other items, essentially an int<->pointer map element.
|
||||||
|
*
|
||||||
|
* We make this type distinct from OSSL_DISPATCH to ensure that dispatch
|
||||||
|
* tables remain tables with function pointers only.
|
||||||
|
*
|
||||||
|
* This is used whenever we need to pass things like a table of error reason
|
||||||
|
* codes <-> reason string maps, ...
|
||||||
|
*
|
||||||
|
* Usage determines which field works as key if any, rather than field order.
|
||||||
|
*
|
||||||
|
* An array of these is always terminated by id == 0 && ptr == NULL
|
||||||
|
*/
|
||||||
|
struct ossl_item_st {
|
||||||
|
unsigned int id;
|
||||||
|
void *ptr;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Type to tie together algorithm names, property definition string and
|
||||||
|
* the algorithm implementation in the form of a dispatch table.
|
||||||
|
*
|
||||||
|
* An array of these is always terminated by algorithm_names == NULL
|
||||||
|
*/
|
||||||
|
struct ossl_algorithm_st {
|
||||||
|
const char *algorithm_names; /* key */
|
||||||
|
const char *property_definition; /* key */
|
||||||
|
const OSSL_DISPATCH *implementation;
|
||||||
|
const char *algorithm_description;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Type to pass object data in a uniform way, without exposing the object
|
||||||
|
* structure.
|
||||||
|
*
|
||||||
|
* An array of these is always terminated by key == NULL
|
||||||
|
*/
|
||||||
|
struct ossl_param_st {
|
||||||
|
const char *key; /* the name of the parameter */
|
||||||
|
unsigned int data_type; /* declare what kind of content is in buffer */
|
||||||
|
void *data; /* value being passed in or out */
|
||||||
|
size_t data_size; /* data size */
|
||||||
|
size_t return_size; /* returned content size */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Currently supported OSSL_PARAM data types */
|
||||||
|
/*
|
||||||
|
* OSSL_PARAM_INTEGER and OSSL_PARAM_UNSIGNED_INTEGER
|
||||||
|
* are arbitrary length and therefore require an arbitrarily sized buffer,
|
||||||
|
* since they may be used to pass numbers larger than what is natively
|
||||||
|
* available.
|
||||||
|
*
|
||||||
|
* The number must be buffered in native form, i.e. MSB first on B_ENDIAN
|
||||||
|
* systems and LSB first on L_ENDIAN systems. This means that arbitrary
|
||||||
|
* native integers can be stored in the buffer, just make sure that the
|
||||||
|
* buffer size is correct and the buffer itself is properly aligned (for
|
||||||
|
* example by having the buffer field point at a C integer).
|
||||||
|
*/
|
||||||
|
# define OSSL_PARAM_INTEGER 1
|
||||||
|
# define OSSL_PARAM_UNSIGNED_INTEGER 2
|
||||||
|
/*-
|
||||||
|
* OSSL_PARAM_REAL
|
||||||
|
* is a C binary floating point values in native form and alignment.
|
||||||
|
*/
|
||||||
|
# define OSSL_PARAM_REAL 3
|
||||||
|
/*-
|
||||||
|
* OSSL_PARAM_UTF8_STRING
|
||||||
|
* is a printable string. It is expected to be printed as it is.
|
||||||
|
*/
|
||||||
|
# define OSSL_PARAM_UTF8_STRING 4
|
||||||
|
/*-
|
||||||
|
* OSSL_PARAM_OCTET_STRING
|
||||||
|
* is a string of bytes with no further specification. It is expected to be
|
||||||
|
* printed as a hexdump.
|
||||||
|
*/
|
||||||
|
# define OSSL_PARAM_OCTET_STRING 5
|
||||||
|
/*-
|
||||||
|
* OSSL_PARAM_UTF8_PTR
|
||||||
|
* is a pointer to a printable string. It is expected to be printed as it is.
|
||||||
|
*
|
||||||
|
* The difference between this and OSSL_PARAM_UTF8_STRING is that only pointers
|
||||||
|
* are manipulated for this type.
|
||||||
|
*
|
||||||
|
* This is more relevant for parameter requests, where the responding
|
||||||
|
* function doesn't need to copy the data to the provided buffer, but
|
||||||
|
* sets the provided buffer to point at the actual data instead.
|
||||||
|
*
|
||||||
|
* WARNING! Using these is FRAGILE, as it assumes that the actual
|
||||||
|
* data and its location are constant.
|
||||||
|
*
|
||||||
|
* EXTRA WARNING! If you are not completely sure you most likely want
|
||||||
|
* to use the OSSL_PARAM_UTF8_STRING type.
|
||||||
|
*/
|
||||||
|
# define OSSL_PARAM_UTF8_PTR 6
|
||||||
|
/*-
|
||||||
|
* OSSL_PARAM_OCTET_PTR
|
||||||
|
* is a pointer to a string of bytes with no further specification. It is
|
||||||
|
* expected to be printed as a hexdump.
|
||||||
|
*
|
||||||
|
* The difference between this and OSSL_PARAM_OCTET_STRING is that only pointers
|
||||||
|
* are manipulated for this type.
|
||||||
|
*
|
||||||
|
* This is more relevant for parameter requests, where the responding
|
||||||
|
* function doesn't need to copy the data to the provided buffer, but
|
||||||
|
* sets the provided buffer to point at the actual data instead.
|
||||||
|
*
|
||||||
|
* WARNING! Using these is FRAGILE, as it assumes that the actual
|
||||||
|
* data and its location are constant.
|
||||||
|
*
|
||||||
|
* EXTRA WARNING! If you are not completely sure you most likely want
|
||||||
|
* to use the OSSL_PARAM_OCTET_STRING type.
|
||||||
|
*/
|
||||||
|
# define OSSL_PARAM_OCTET_PTR 7
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Typedef for the thread stop handling callback. Used both internally and by
|
||||||
|
* providers.
|
||||||
|
*
|
||||||
|
* Providers may register for notifications about threads stopping by
|
||||||
|
* registering a callback to hear about such events. Providers register the
|
||||||
|
* callback using the OSSL_FUNC_CORE_THREAD_START function in the |in| dispatch
|
||||||
|
* table passed to OSSL_provider_init(). The arg passed back to a provider will
|
||||||
|
* be the provider side context object.
|
||||||
|
*/
|
||||||
|
typedef void (*OSSL_thread_stop_handler_fn)(void *arg);
|
||||||
|
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* Provider entry point
|
||||||
|
* --------------------
|
||||||
|
*
|
||||||
|
* This function is expected to be present in any dynamically loadable
|
||||||
|
* provider module. By definition, if this function doesn't exist in a
|
||||||
|
* module, that module is not an OpenSSL provider module.
|
||||||
|
*/
|
||||||
|
/*-
|
||||||
|
* |handle| pointer to opaque type OSSL_CORE_HANDLE. This can be used
|
||||||
|
* together with some functions passed via |in| to query data.
|
||||||
|
* |in| is the array of functions that the Core passes to the provider.
|
||||||
|
* |out| will be the array of base functions that the provider passes
|
||||||
|
* back to the Core.
|
||||||
|
* |provctx| a provider side context object, optionally created if the
|
||||||
|
* provider needs it. This value is passed to other provider
|
||||||
|
* functions, notably other context constructors.
|
||||||
|
*/
|
||||||
|
typedef int (OSSL_provider_init_fn)(const OSSL_CORE_HANDLE *handle,
|
||||||
|
const OSSL_DISPATCH *in,
|
||||||
|
const OSSL_DISPATCH **out,
|
||||||
|
void **provctx);
|
||||||
|
# ifdef __VMS
|
||||||
|
# pragma names save
|
||||||
|
# pragma names uppercase,truncated
|
||||||
|
# endif
|
||||||
|
OPENSSL_EXPORT OSSL_provider_init_fn OSSL_provider_init;
|
||||||
|
# ifdef __VMS
|
||||||
|
# pragma names restore
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Generic callback function signature.
|
||||||
|
*
|
||||||
|
* The expectation is that any provider function that wants to offer
|
||||||
|
* a callback / hook can do so by taking an argument with this type,
|
||||||
|
* as well as a pointer to caller-specific data. When calling the
|
||||||
|
* callback, the provider function can populate an OSSL_PARAM array
|
||||||
|
* with data of its choice and pass that in the callback call, along
|
||||||
|
* with the caller data argument.
|
||||||
|
*
|
||||||
|
* libcrypto may use the OSSL_PARAM array to create arguments for an
|
||||||
|
* application callback it knows about.
|
||||||
|
*/
|
||||||
|
typedef int (OSSL_CALLBACK)(const OSSL_PARAM params[], void *arg);
|
||||||
|
typedef int (OSSL_INOUT_CALLBACK)(const OSSL_PARAM in_params[],
|
||||||
|
OSSL_PARAM out_params[], void *arg);
|
||||||
|
/*
|
||||||
|
* Passphrase callback function signature
|
||||||
|
*
|
||||||
|
* This is similar to the generic callback function above, but adds a
|
||||||
|
* result parameter.
|
||||||
|
*/
|
||||||
|
typedef int (OSSL_PASSPHRASE_CALLBACK)(char *pass, size_t pass_size,
|
||||||
|
size_t *pass_len,
|
||||||
|
const OSSL_PARAM params[], void *arg);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif
|
943
deps/openssl/mingw64/include/openssl/core_dispatch.h
vendored
Normal file
943
deps/openssl/mingw64/include/openssl/core_dispatch.h
vendored
Normal file
@ -0,0 +1,943 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2019-2022 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_CORE_NUMBERS_H
|
||||||
|
# define OPENSSL_CORE_NUMBERS_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <stdarg.h>
|
||||||
|
# include <openssl/core.h>
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* Identities
|
||||||
|
* ----------
|
||||||
|
*
|
||||||
|
* All series start with 1, to allow 0 to be an array terminator.
|
||||||
|
* For any FUNC identity, we also provide a function signature typedef
|
||||||
|
* and a static inline function to extract a function pointer from a
|
||||||
|
* OSSL_DISPATCH element in a type safe manner.
|
||||||
|
*
|
||||||
|
* Names:
|
||||||
|
* for any function base name 'foo' (uppercase form 'FOO'), we will have
|
||||||
|
* the following:
|
||||||
|
* - a macro for the identity with the name OSSL_FUNC_'FOO' or derivatives
|
||||||
|
* thereof (to be specified further down)
|
||||||
|
* - a function signature typedef with the name OSSL_FUNC_'foo'_fn
|
||||||
|
* - a function pointer extractor function with the name OSSL_FUNC_'foo'
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Helper macro to create the function signature typedef and the extractor
|
||||||
|
* |type| is the return-type of the function, |name| is the name of the
|
||||||
|
* function to fetch, and |args| is a parenthesized list of parameters
|
||||||
|
* for the function (that is, it is |name|'s function signature).
|
||||||
|
* Note: This is considered a "reserved" internal macro. Applications should
|
||||||
|
* not use this or assume its existence.
|
||||||
|
*/
|
||||||
|
#define OSSL_CORE_MAKE_FUNC(type,name,args) \
|
||||||
|
typedef type (OSSL_FUNC_##name##_fn)args; \
|
||||||
|
static ossl_unused ossl_inline \
|
||||||
|
OSSL_FUNC_##name##_fn *OSSL_FUNC_##name(const OSSL_DISPATCH *opf) \
|
||||||
|
{ \
|
||||||
|
return (OSSL_FUNC_##name##_fn *)opf->function; \
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Core function identities, for the two OSSL_DISPATCH tables being passed
|
||||||
|
* in the OSSL_provider_init call.
|
||||||
|
*
|
||||||
|
* 0 serves as a marker for the end of the OSSL_DISPATCH array, and must
|
||||||
|
* therefore NEVER be used as a function identity.
|
||||||
|
*/
|
||||||
|
/* Functions provided by the Core to the provider, reserved numbers 1-1023 */
|
||||||
|
# define OSSL_FUNC_CORE_GETTABLE_PARAMS 1
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *,
|
||||||
|
core_gettable_params,(const OSSL_CORE_HANDLE *prov))
|
||||||
|
# define OSSL_FUNC_CORE_GET_PARAMS 2
|
||||||
|
OSSL_CORE_MAKE_FUNC(int,core_get_params,(const OSSL_CORE_HANDLE *prov,
|
||||||
|
OSSL_PARAM params[]))
|
||||||
|
# define OSSL_FUNC_CORE_THREAD_START 3
|
||||||
|
OSSL_CORE_MAKE_FUNC(int,core_thread_start,(const OSSL_CORE_HANDLE *prov,
|
||||||
|
OSSL_thread_stop_handler_fn handfn,
|
||||||
|
void *arg))
|
||||||
|
# define OSSL_FUNC_CORE_GET_LIBCTX 4
|
||||||
|
OSSL_CORE_MAKE_FUNC(OPENSSL_CORE_CTX *,core_get_libctx,
|
||||||
|
(const OSSL_CORE_HANDLE *prov))
|
||||||
|
# define OSSL_FUNC_CORE_NEW_ERROR 5
|
||||||
|
OSSL_CORE_MAKE_FUNC(void,core_new_error,(const OSSL_CORE_HANDLE *prov))
|
||||||
|
# define OSSL_FUNC_CORE_SET_ERROR_DEBUG 6
|
||||||
|
OSSL_CORE_MAKE_FUNC(void,core_set_error_debug,
|
||||||
|
(const OSSL_CORE_HANDLE *prov,
|
||||||
|
const char *file, int line, const char *func))
|
||||||
|
# define OSSL_FUNC_CORE_VSET_ERROR 7
|
||||||
|
OSSL_CORE_MAKE_FUNC(void,core_vset_error,
|
||||||
|
(const OSSL_CORE_HANDLE *prov,
|
||||||
|
uint32_t reason, const char *fmt, va_list args))
|
||||||
|
# define OSSL_FUNC_CORE_SET_ERROR_MARK 8
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, core_set_error_mark, (const OSSL_CORE_HANDLE *prov))
|
||||||
|
# define OSSL_FUNC_CORE_CLEAR_LAST_ERROR_MARK 9
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, core_clear_last_error_mark,
|
||||||
|
(const OSSL_CORE_HANDLE *prov))
|
||||||
|
# define OSSL_FUNC_CORE_POP_ERROR_TO_MARK 10
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, core_pop_error_to_mark, (const OSSL_CORE_HANDLE *prov))
|
||||||
|
|
||||||
|
|
||||||
|
/* Functions to access the OBJ database */
|
||||||
|
|
||||||
|
#define OSSL_FUNC_CORE_OBJ_ADD_SIGID 11
|
||||||
|
#define OSSL_FUNC_CORE_OBJ_CREATE 12
|
||||||
|
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, core_obj_add_sigid,
|
||||||
|
(const OSSL_CORE_HANDLE *prov, const char *sign_name,
|
||||||
|
const char *digest_name, const char *pkey_name))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, core_obj_create,
|
||||||
|
(const OSSL_CORE_HANDLE *prov, const char *oid,
|
||||||
|
const char *sn, const char *ln))
|
||||||
|
|
||||||
|
/* Memory allocation, freeing, clearing. */
|
||||||
|
#define OSSL_FUNC_CRYPTO_MALLOC 20
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *,
|
||||||
|
CRYPTO_malloc, (size_t num, const char *file, int line))
|
||||||
|
#define OSSL_FUNC_CRYPTO_ZALLOC 21
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *,
|
||||||
|
CRYPTO_zalloc, (size_t num, const char *file, int line))
|
||||||
|
#define OSSL_FUNC_CRYPTO_FREE 22
|
||||||
|
OSSL_CORE_MAKE_FUNC(void,
|
||||||
|
CRYPTO_free, (void *ptr, const char *file, int line))
|
||||||
|
#define OSSL_FUNC_CRYPTO_CLEAR_FREE 23
|
||||||
|
OSSL_CORE_MAKE_FUNC(void,
|
||||||
|
CRYPTO_clear_free, (void *ptr, size_t num, const char *file, int line))
|
||||||
|
#define OSSL_FUNC_CRYPTO_REALLOC 24
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *,
|
||||||
|
CRYPTO_realloc, (void *addr, size_t num, const char *file, int line))
|
||||||
|
#define OSSL_FUNC_CRYPTO_CLEAR_REALLOC 25
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *,
|
||||||
|
CRYPTO_clear_realloc, (void *addr, size_t old_num, size_t num,
|
||||||
|
const char *file, int line))
|
||||||
|
#define OSSL_FUNC_CRYPTO_SECURE_MALLOC 26
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *,
|
||||||
|
CRYPTO_secure_malloc, (size_t num, const char *file, int line))
|
||||||
|
#define OSSL_FUNC_CRYPTO_SECURE_ZALLOC 27
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *,
|
||||||
|
CRYPTO_secure_zalloc, (size_t num, const char *file, int line))
|
||||||
|
#define OSSL_FUNC_CRYPTO_SECURE_FREE 28
|
||||||
|
OSSL_CORE_MAKE_FUNC(void,
|
||||||
|
CRYPTO_secure_free, (void *ptr, const char *file, int line))
|
||||||
|
#define OSSL_FUNC_CRYPTO_SECURE_CLEAR_FREE 29
|
||||||
|
OSSL_CORE_MAKE_FUNC(void,
|
||||||
|
CRYPTO_secure_clear_free, (void *ptr, size_t num, const char *file,
|
||||||
|
int line))
|
||||||
|
#define OSSL_FUNC_CRYPTO_SECURE_ALLOCATED 30
|
||||||
|
OSSL_CORE_MAKE_FUNC(int,
|
||||||
|
CRYPTO_secure_allocated, (const void *ptr))
|
||||||
|
#define OSSL_FUNC_OPENSSL_CLEANSE 31
|
||||||
|
OSSL_CORE_MAKE_FUNC(void,
|
||||||
|
OPENSSL_cleanse, (void *ptr, size_t len))
|
||||||
|
|
||||||
|
/* Bio functions provided by the core */
|
||||||
|
#define OSSL_FUNC_BIO_NEW_FILE 40
|
||||||
|
#define OSSL_FUNC_BIO_NEW_MEMBUF 41
|
||||||
|
#define OSSL_FUNC_BIO_READ_EX 42
|
||||||
|
#define OSSL_FUNC_BIO_WRITE_EX 43
|
||||||
|
#define OSSL_FUNC_BIO_UP_REF 44
|
||||||
|
#define OSSL_FUNC_BIO_FREE 45
|
||||||
|
#define OSSL_FUNC_BIO_VPRINTF 46
|
||||||
|
#define OSSL_FUNC_BIO_VSNPRINTF 47
|
||||||
|
#define OSSL_FUNC_BIO_PUTS 48
|
||||||
|
#define OSSL_FUNC_BIO_GETS 49
|
||||||
|
#define OSSL_FUNC_BIO_CTRL 50
|
||||||
|
|
||||||
|
|
||||||
|
OSSL_CORE_MAKE_FUNC(OSSL_CORE_BIO *, BIO_new_file, (const char *filename,
|
||||||
|
const char *mode))
|
||||||
|
OSSL_CORE_MAKE_FUNC(OSSL_CORE_BIO *, BIO_new_membuf, (const void *buf, int len))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, BIO_read_ex, (OSSL_CORE_BIO *bio, void *data,
|
||||||
|
size_t data_len, size_t *bytes_read))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, BIO_write_ex, (OSSL_CORE_BIO *bio, const void *data,
|
||||||
|
size_t data_len, size_t *written))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, BIO_gets, (OSSL_CORE_BIO *bio, char *buf, int size))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, BIO_puts, (OSSL_CORE_BIO *bio, const char *str))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, BIO_up_ref, (OSSL_CORE_BIO *bio))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, BIO_free, (OSSL_CORE_BIO *bio))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, BIO_vprintf, (OSSL_CORE_BIO *bio, const char *format,
|
||||||
|
va_list args))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, BIO_vsnprintf,
|
||||||
|
(char *buf, size_t n, const char *fmt, va_list args))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, BIO_ctrl, (OSSL_CORE_BIO *bio,
|
||||||
|
int cmd, long num, void *ptr))
|
||||||
|
|
||||||
|
#define OSSL_FUNC_SELF_TEST_CB 100
|
||||||
|
OSSL_CORE_MAKE_FUNC(void, self_test_cb, (OPENSSL_CORE_CTX *ctx, OSSL_CALLBACK **cb,
|
||||||
|
void **cbarg))
|
||||||
|
|
||||||
|
/* Functions to get seed material from the operating system */
|
||||||
|
#define OSSL_FUNC_GET_ENTROPY 101
|
||||||
|
#define OSSL_FUNC_CLEANUP_ENTROPY 102
|
||||||
|
#define OSSL_FUNC_GET_NONCE 103
|
||||||
|
#define OSSL_FUNC_CLEANUP_NONCE 104
|
||||||
|
OSSL_CORE_MAKE_FUNC(size_t, get_entropy, (const OSSL_CORE_HANDLE *handle,
|
||||||
|
unsigned char **pout, int entropy,
|
||||||
|
size_t min_len, size_t max_len))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void, cleanup_entropy, (const OSSL_CORE_HANDLE *handle,
|
||||||
|
unsigned char *buf, size_t len))
|
||||||
|
OSSL_CORE_MAKE_FUNC(size_t, get_nonce, (const OSSL_CORE_HANDLE *handle,
|
||||||
|
unsigned char **pout, size_t min_len,
|
||||||
|
size_t max_len, const void *salt,
|
||||||
|
size_t salt_len))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void, cleanup_nonce, (const OSSL_CORE_HANDLE *handle,
|
||||||
|
unsigned char *buf, size_t len))
|
||||||
|
|
||||||
|
/* Functions to access the core's providers */
|
||||||
|
#define OSSL_FUNC_PROVIDER_REGISTER_CHILD_CB 105
|
||||||
|
#define OSSL_FUNC_PROVIDER_DEREGISTER_CHILD_CB 106
|
||||||
|
#define OSSL_FUNC_PROVIDER_NAME 107
|
||||||
|
#define OSSL_FUNC_PROVIDER_GET0_PROVIDER_CTX 108
|
||||||
|
#define OSSL_FUNC_PROVIDER_GET0_DISPATCH 109
|
||||||
|
#define OSSL_FUNC_PROVIDER_UP_REF 110
|
||||||
|
#define OSSL_FUNC_PROVIDER_FREE 111
|
||||||
|
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, provider_register_child_cb,
|
||||||
|
(const OSSL_CORE_HANDLE *handle,
|
||||||
|
int (*create_cb)(const OSSL_CORE_HANDLE *provider, void *cbdata),
|
||||||
|
int (*remove_cb)(const OSSL_CORE_HANDLE *provider, void *cbdata),
|
||||||
|
int (*global_props_cb)(const char *props, void *cbdata),
|
||||||
|
void *cbdata))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void, provider_deregister_child_cb,
|
||||||
|
(const OSSL_CORE_HANDLE *handle))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const char *, provider_name,
|
||||||
|
(const OSSL_CORE_HANDLE *prov))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, provider_get0_provider_ctx,
|
||||||
|
(const OSSL_CORE_HANDLE *prov))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_DISPATCH *, provider_get0_dispatch,
|
||||||
|
(const OSSL_CORE_HANDLE *prov))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, provider_up_ref,
|
||||||
|
(const OSSL_CORE_HANDLE *prov, int activate))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, provider_free,
|
||||||
|
(const OSSL_CORE_HANDLE *prov, int deactivate))
|
||||||
|
|
||||||
|
/* Functions provided by the provider to the Core, reserved numbers 1024-1535 */
|
||||||
|
# define OSSL_FUNC_PROVIDER_TEARDOWN 1024
|
||||||
|
OSSL_CORE_MAKE_FUNC(void,provider_teardown,(void *provctx))
|
||||||
|
# define OSSL_FUNC_PROVIDER_GETTABLE_PARAMS 1025
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *,
|
||||||
|
provider_gettable_params,(void *provctx))
|
||||||
|
# define OSSL_FUNC_PROVIDER_GET_PARAMS 1026
|
||||||
|
OSSL_CORE_MAKE_FUNC(int,provider_get_params,(void *provctx,
|
||||||
|
OSSL_PARAM params[]))
|
||||||
|
# define OSSL_FUNC_PROVIDER_QUERY_OPERATION 1027
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_ALGORITHM *,provider_query_operation,
|
||||||
|
(void *provctx, int operation_id, int *no_store))
|
||||||
|
# define OSSL_FUNC_PROVIDER_UNQUERY_OPERATION 1028
|
||||||
|
OSSL_CORE_MAKE_FUNC(void, provider_unquery_operation,
|
||||||
|
(void *provctx, int operation_id, const OSSL_ALGORITHM *))
|
||||||
|
# define OSSL_FUNC_PROVIDER_GET_REASON_STRINGS 1029
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_ITEM *,provider_get_reason_strings,
|
||||||
|
(void *provctx))
|
||||||
|
# define OSSL_FUNC_PROVIDER_GET_CAPABILITIES 1030
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, provider_get_capabilities, (void *provctx,
|
||||||
|
const char *capability, OSSL_CALLBACK *cb, void *arg))
|
||||||
|
# define OSSL_FUNC_PROVIDER_SELF_TEST 1031
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, provider_self_test, (void *provctx))
|
||||||
|
|
||||||
|
/* Operations */
|
||||||
|
|
||||||
|
# define OSSL_OP_DIGEST 1
|
||||||
|
# define OSSL_OP_CIPHER 2 /* Symmetric Ciphers */
|
||||||
|
# define OSSL_OP_MAC 3
|
||||||
|
# define OSSL_OP_KDF 4
|
||||||
|
# define OSSL_OP_RAND 5
|
||||||
|
# define OSSL_OP_KEYMGMT 10
|
||||||
|
# define OSSL_OP_KEYEXCH 11
|
||||||
|
# define OSSL_OP_SIGNATURE 12
|
||||||
|
# define OSSL_OP_ASYM_CIPHER 13
|
||||||
|
# define OSSL_OP_KEM 14
|
||||||
|
/* New section for non-EVP operations */
|
||||||
|
# define OSSL_OP_ENCODER 20
|
||||||
|
# define OSSL_OP_DECODER 21
|
||||||
|
# define OSSL_OP_STORE 22
|
||||||
|
/* Highest known operation number */
|
||||||
|
# define OSSL_OP__HIGHEST 22
|
||||||
|
|
||||||
|
/* Digests */
|
||||||
|
|
||||||
|
# define OSSL_FUNC_DIGEST_NEWCTX 1
|
||||||
|
# define OSSL_FUNC_DIGEST_INIT 2
|
||||||
|
# define OSSL_FUNC_DIGEST_UPDATE 3
|
||||||
|
# define OSSL_FUNC_DIGEST_FINAL 4
|
||||||
|
# define OSSL_FUNC_DIGEST_DIGEST 5
|
||||||
|
# define OSSL_FUNC_DIGEST_FREECTX 6
|
||||||
|
# define OSSL_FUNC_DIGEST_DUPCTX 7
|
||||||
|
# define OSSL_FUNC_DIGEST_GET_PARAMS 8
|
||||||
|
# define OSSL_FUNC_DIGEST_SET_CTX_PARAMS 9
|
||||||
|
# define OSSL_FUNC_DIGEST_GET_CTX_PARAMS 10
|
||||||
|
# define OSSL_FUNC_DIGEST_GETTABLE_PARAMS 11
|
||||||
|
# define OSSL_FUNC_DIGEST_SETTABLE_CTX_PARAMS 12
|
||||||
|
# define OSSL_FUNC_DIGEST_GETTABLE_CTX_PARAMS 13
|
||||||
|
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, digest_newctx, (void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, digest_init, (void *dctx, const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, digest_update,
|
||||||
|
(void *dctx, const unsigned char *in, size_t inl))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, digest_final,
|
||||||
|
(void *dctx,
|
||||||
|
unsigned char *out, size_t *outl, size_t outsz))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, digest_digest,
|
||||||
|
(void *provctx, const unsigned char *in, size_t inl,
|
||||||
|
unsigned char *out, size_t *outl, size_t outsz))
|
||||||
|
|
||||||
|
OSSL_CORE_MAKE_FUNC(void, digest_freectx, (void *dctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, digest_dupctx, (void *dctx))
|
||||||
|
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, digest_get_params, (OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, digest_set_ctx_params,
|
||||||
|
(void *vctx, const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, digest_get_ctx_params,
|
||||||
|
(void *vctx, OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, digest_gettable_params,
|
||||||
|
(void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, digest_settable_ctx_params,
|
||||||
|
(void *dctx, void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, digest_gettable_ctx_params,
|
||||||
|
(void *dctx, void *provctx))
|
||||||
|
|
||||||
|
/* Symmetric Ciphers */
|
||||||
|
|
||||||
|
# define OSSL_FUNC_CIPHER_NEWCTX 1
|
||||||
|
# define OSSL_FUNC_CIPHER_ENCRYPT_INIT 2
|
||||||
|
# define OSSL_FUNC_CIPHER_DECRYPT_INIT 3
|
||||||
|
# define OSSL_FUNC_CIPHER_UPDATE 4
|
||||||
|
# define OSSL_FUNC_CIPHER_FINAL 5
|
||||||
|
# define OSSL_FUNC_CIPHER_CIPHER 6
|
||||||
|
# define OSSL_FUNC_CIPHER_FREECTX 7
|
||||||
|
# define OSSL_FUNC_CIPHER_DUPCTX 8
|
||||||
|
# define OSSL_FUNC_CIPHER_GET_PARAMS 9
|
||||||
|
# define OSSL_FUNC_CIPHER_GET_CTX_PARAMS 10
|
||||||
|
# define OSSL_FUNC_CIPHER_SET_CTX_PARAMS 11
|
||||||
|
# define OSSL_FUNC_CIPHER_GETTABLE_PARAMS 12
|
||||||
|
# define OSSL_FUNC_CIPHER_GETTABLE_CTX_PARAMS 13
|
||||||
|
# define OSSL_FUNC_CIPHER_SETTABLE_CTX_PARAMS 14
|
||||||
|
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, cipher_newctx, (void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, cipher_encrypt_init, (void *cctx,
|
||||||
|
const unsigned char *key,
|
||||||
|
size_t keylen,
|
||||||
|
const unsigned char *iv,
|
||||||
|
size_t ivlen,
|
||||||
|
const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, cipher_decrypt_init, (void *cctx,
|
||||||
|
const unsigned char *key,
|
||||||
|
size_t keylen,
|
||||||
|
const unsigned char *iv,
|
||||||
|
size_t ivlen,
|
||||||
|
const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, cipher_update,
|
||||||
|
(void *cctx,
|
||||||
|
unsigned char *out, size_t *outl, size_t outsize,
|
||||||
|
const unsigned char *in, size_t inl))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, cipher_final,
|
||||||
|
(void *cctx,
|
||||||
|
unsigned char *out, size_t *outl, size_t outsize))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, cipher_cipher,
|
||||||
|
(void *cctx,
|
||||||
|
unsigned char *out, size_t *outl, size_t outsize,
|
||||||
|
const unsigned char *in, size_t inl))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void, cipher_freectx, (void *cctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, cipher_dupctx, (void *cctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, cipher_get_params, (OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, cipher_get_ctx_params, (void *cctx,
|
||||||
|
OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, cipher_set_ctx_params, (void *cctx,
|
||||||
|
const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, cipher_gettable_params,
|
||||||
|
(void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, cipher_settable_ctx_params,
|
||||||
|
(void *cctx, void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, cipher_gettable_ctx_params,
|
||||||
|
(void *cctx, void *provctx))
|
||||||
|
|
||||||
|
/* MACs */
|
||||||
|
|
||||||
|
# define OSSL_FUNC_MAC_NEWCTX 1
|
||||||
|
# define OSSL_FUNC_MAC_DUPCTX 2
|
||||||
|
# define OSSL_FUNC_MAC_FREECTX 3
|
||||||
|
# define OSSL_FUNC_MAC_INIT 4
|
||||||
|
# define OSSL_FUNC_MAC_UPDATE 5
|
||||||
|
# define OSSL_FUNC_MAC_FINAL 6
|
||||||
|
# define OSSL_FUNC_MAC_GET_PARAMS 7
|
||||||
|
# define OSSL_FUNC_MAC_GET_CTX_PARAMS 8
|
||||||
|
# define OSSL_FUNC_MAC_SET_CTX_PARAMS 9
|
||||||
|
# define OSSL_FUNC_MAC_GETTABLE_PARAMS 10
|
||||||
|
# define OSSL_FUNC_MAC_GETTABLE_CTX_PARAMS 11
|
||||||
|
# define OSSL_FUNC_MAC_SETTABLE_CTX_PARAMS 12
|
||||||
|
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, mac_newctx, (void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, mac_dupctx, (void *src))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void, mac_freectx, (void *mctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, mac_init, (void *mctx, const unsigned char *key,
|
||||||
|
size_t keylen, const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, mac_update,
|
||||||
|
(void *mctx, const unsigned char *in, size_t inl))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, mac_final,
|
||||||
|
(void *mctx,
|
||||||
|
unsigned char *out, size_t *outl, size_t outsize))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, mac_gettable_params, (void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, mac_gettable_ctx_params,
|
||||||
|
(void *mctx, void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, mac_settable_ctx_params,
|
||||||
|
(void *mctx, void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, mac_get_params, (OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, mac_get_ctx_params,
|
||||||
|
(void *mctx, OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, mac_set_ctx_params,
|
||||||
|
(void *mctx, const OSSL_PARAM params[]))
|
||||||
|
|
||||||
|
/* KDFs and PRFs */
|
||||||
|
|
||||||
|
# define OSSL_FUNC_KDF_NEWCTX 1
|
||||||
|
# define OSSL_FUNC_KDF_DUPCTX 2
|
||||||
|
# define OSSL_FUNC_KDF_FREECTX 3
|
||||||
|
# define OSSL_FUNC_KDF_RESET 4
|
||||||
|
# define OSSL_FUNC_KDF_DERIVE 5
|
||||||
|
# define OSSL_FUNC_KDF_GETTABLE_PARAMS 6
|
||||||
|
# define OSSL_FUNC_KDF_GETTABLE_CTX_PARAMS 7
|
||||||
|
# define OSSL_FUNC_KDF_SETTABLE_CTX_PARAMS 8
|
||||||
|
# define OSSL_FUNC_KDF_GET_PARAMS 9
|
||||||
|
# define OSSL_FUNC_KDF_GET_CTX_PARAMS 10
|
||||||
|
# define OSSL_FUNC_KDF_SET_CTX_PARAMS 11
|
||||||
|
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, kdf_newctx, (void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, kdf_dupctx, (void *src))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void, kdf_freectx, (void *kctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void, kdf_reset, (void *kctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, kdf_derive, (void *kctx, unsigned char *key,
|
||||||
|
size_t keylen, const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, kdf_gettable_params, (void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, kdf_gettable_ctx_params,
|
||||||
|
(void *kctx, void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, kdf_settable_ctx_params,
|
||||||
|
(void *kctx, void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, kdf_get_params, (OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, kdf_get_ctx_params,
|
||||||
|
(void *kctx, OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, kdf_set_ctx_params,
|
||||||
|
(void *kctx, const OSSL_PARAM params[]))
|
||||||
|
|
||||||
|
/* RAND */
|
||||||
|
|
||||||
|
# define OSSL_FUNC_RAND_NEWCTX 1
|
||||||
|
# define OSSL_FUNC_RAND_FREECTX 2
|
||||||
|
# define OSSL_FUNC_RAND_INSTANTIATE 3
|
||||||
|
# define OSSL_FUNC_RAND_UNINSTANTIATE 4
|
||||||
|
# define OSSL_FUNC_RAND_GENERATE 5
|
||||||
|
# define OSSL_FUNC_RAND_RESEED 6
|
||||||
|
# define OSSL_FUNC_RAND_NONCE 7
|
||||||
|
# define OSSL_FUNC_RAND_ENABLE_LOCKING 8
|
||||||
|
# define OSSL_FUNC_RAND_LOCK 9
|
||||||
|
# define OSSL_FUNC_RAND_UNLOCK 10
|
||||||
|
# define OSSL_FUNC_RAND_GETTABLE_PARAMS 11
|
||||||
|
# define OSSL_FUNC_RAND_GETTABLE_CTX_PARAMS 12
|
||||||
|
# define OSSL_FUNC_RAND_SETTABLE_CTX_PARAMS 13
|
||||||
|
# define OSSL_FUNC_RAND_GET_PARAMS 14
|
||||||
|
# define OSSL_FUNC_RAND_GET_CTX_PARAMS 15
|
||||||
|
# define OSSL_FUNC_RAND_SET_CTX_PARAMS 16
|
||||||
|
# define OSSL_FUNC_RAND_VERIFY_ZEROIZATION 17
|
||||||
|
# define OSSL_FUNC_RAND_GET_SEED 18
|
||||||
|
# define OSSL_FUNC_RAND_CLEAR_SEED 19
|
||||||
|
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *,rand_newctx,
|
||||||
|
(void *provctx, void *parent,
|
||||||
|
const OSSL_DISPATCH *parent_calls))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void,rand_freectx, (void *vctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int,rand_instantiate,
|
||||||
|
(void *vdrbg, unsigned int strength,
|
||||||
|
int prediction_resistance,
|
||||||
|
const unsigned char *pstr, size_t pstr_len,
|
||||||
|
const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int,rand_uninstantiate, (void *vdrbg))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int,rand_generate,
|
||||||
|
(void *vctx, unsigned char *out, size_t outlen,
|
||||||
|
unsigned int strength, int prediction_resistance,
|
||||||
|
const unsigned char *addin, size_t addin_len))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int,rand_reseed,
|
||||||
|
(void *vctx, int prediction_resistance,
|
||||||
|
const unsigned char *ent, size_t ent_len,
|
||||||
|
const unsigned char *addin, size_t addin_len))
|
||||||
|
OSSL_CORE_MAKE_FUNC(size_t,rand_nonce,
|
||||||
|
(void *vctx, unsigned char *out, unsigned int strength,
|
||||||
|
size_t min_noncelen, size_t max_noncelen))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int,rand_enable_locking, (void *vctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int,rand_lock, (void *vctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void,rand_unlock, (void *vctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *,rand_gettable_params, (void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *,rand_gettable_ctx_params,
|
||||||
|
(void *vctx, void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *,rand_settable_ctx_params,
|
||||||
|
(void *vctx, void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int,rand_get_params, (OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int,rand_get_ctx_params,
|
||||||
|
(void *vctx, OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int,rand_set_ctx_params,
|
||||||
|
(void *vctx, const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void,rand_set_callbacks,
|
||||||
|
(void *vctx, OSSL_INOUT_CALLBACK *get_entropy,
|
||||||
|
OSSL_CALLBACK *cleanup_entropy,
|
||||||
|
OSSL_INOUT_CALLBACK *get_nonce,
|
||||||
|
OSSL_CALLBACK *cleanup_nonce, void *arg))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int,rand_verify_zeroization,
|
||||||
|
(void *vctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(size_t,rand_get_seed,
|
||||||
|
(void *vctx, unsigned char **buffer,
|
||||||
|
int entropy, size_t min_len, size_t max_len,
|
||||||
|
int prediction_resistance,
|
||||||
|
const unsigned char *adin, size_t adin_len))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void,rand_clear_seed,
|
||||||
|
(void *vctx, unsigned char *buffer, size_t b_len))
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* Key management
|
||||||
|
*
|
||||||
|
* The Key Management takes care of provider side key objects, and includes
|
||||||
|
* all current functionality to create them, destroy them, set parameters
|
||||||
|
* and key material, etc, essentially everything that manipulates the keys
|
||||||
|
* themselves and their parameters.
|
||||||
|
*
|
||||||
|
* The key objects are commonly referred to as |keydata|, and it MUST be able
|
||||||
|
* to contain parameters if the key has any, the public key and the private
|
||||||
|
* key. All parts are optional, but their presence determines what can be
|
||||||
|
* done with the key object in terms of encryption, signature, and so on.
|
||||||
|
* The assumption from libcrypto is that the key object contains any of the
|
||||||
|
* following data combinations:
|
||||||
|
*
|
||||||
|
* - parameters only
|
||||||
|
* - public key only
|
||||||
|
* - public key + private key
|
||||||
|
* - parameters + public key
|
||||||
|
* - parameters + public key + private key
|
||||||
|
*
|
||||||
|
* What "parameters", "public key" and "private key" means in detail is left
|
||||||
|
* to the implementation. In the case of DH and DSA, they would typically
|
||||||
|
* include domain parameters, while for certain variants of RSA, they would
|
||||||
|
* typically include PSS or OAEP parameters.
|
||||||
|
*
|
||||||
|
* Key objects are created with OSSL_FUNC_keymgmt_new() and destroyed with
|
||||||
|
* OSSL_FUNC_keymgmt_free(). Key objects can have data filled in with
|
||||||
|
* OSSL_FUNC_keymgmt_import().
|
||||||
|
*
|
||||||
|
* Three functions are made available to check what selection of data is
|
||||||
|
* present in a key object: OSSL_FUNC_keymgmt_has_parameters(),
|
||||||
|
* OSSL_FUNC_keymgmt_has_public_key(), and OSSL_FUNC_keymgmt_has_private_key(),
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Key data subset selection - individual bits */
|
||||||
|
# define OSSL_KEYMGMT_SELECT_PRIVATE_KEY 0x01
|
||||||
|
# define OSSL_KEYMGMT_SELECT_PUBLIC_KEY 0x02
|
||||||
|
# define OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS 0x04
|
||||||
|
# define OSSL_KEYMGMT_SELECT_OTHER_PARAMETERS 0x80
|
||||||
|
|
||||||
|
/* Key data subset selection - combinations */
|
||||||
|
# define OSSL_KEYMGMT_SELECT_ALL_PARAMETERS \
|
||||||
|
( OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS \
|
||||||
|
| OSSL_KEYMGMT_SELECT_OTHER_PARAMETERS)
|
||||||
|
# define OSSL_KEYMGMT_SELECT_KEYPAIR \
|
||||||
|
( OSSL_KEYMGMT_SELECT_PRIVATE_KEY | OSSL_KEYMGMT_SELECT_PUBLIC_KEY )
|
||||||
|
# define OSSL_KEYMGMT_SELECT_ALL \
|
||||||
|
( OSSL_KEYMGMT_SELECT_KEYPAIR | OSSL_KEYMGMT_SELECT_ALL_PARAMETERS )
|
||||||
|
|
||||||
|
# define OSSL_KEYMGMT_VALIDATE_FULL_CHECK 0
|
||||||
|
# define OSSL_KEYMGMT_VALIDATE_QUICK_CHECK 1
|
||||||
|
|
||||||
|
/* Basic key object creation */
|
||||||
|
# define OSSL_FUNC_KEYMGMT_NEW 1
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, keymgmt_new, (void *provctx))
|
||||||
|
|
||||||
|
/* Generation, a more complex constructor */
|
||||||
|
# define OSSL_FUNC_KEYMGMT_GEN_INIT 2
|
||||||
|
# define OSSL_FUNC_KEYMGMT_GEN_SET_TEMPLATE 3
|
||||||
|
# define OSSL_FUNC_KEYMGMT_GEN_SET_PARAMS 4
|
||||||
|
# define OSSL_FUNC_KEYMGMT_GEN_SETTABLE_PARAMS 5
|
||||||
|
# define OSSL_FUNC_KEYMGMT_GEN 6
|
||||||
|
# define OSSL_FUNC_KEYMGMT_GEN_CLEANUP 7
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, keymgmt_gen_init,
|
||||||
|
(void *provctx, int selection, const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, keymgmt_gen_set_template,
|
||||||
|
(void *genctx, void *templ))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, keymgmt_gen_set_params,
|
||||||
|
(void *genctx, const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *,
|
||||||
|
keymgmt_gen_settable_params,
|
||||||
|
(void *genctx, void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, keymgmt_gen,
|
||||||
|
(void *genctx, OSSL_CALLBACK *cb, void *cbarg))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void, keymgmt_gen_cleanup, (void *genctx))
|
||||||
|
|
||||||
|
/* Key loading by object reference */
|
||||||
|
# define OSSL_FUNC_KEYMGMT_LOAD 8
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, keymgmt_load,
|
||||||
|
(const void *reference, size_t reference_sz))
|
||||||
|
|
||||||
|
/* Basic key object destruction */
|
||||||
|
# define OSSL_FUNC_KEYMGMT_FREE 10
|
||||||
|
OSSL_CORE_MAKE_FUNC(void, keymgmt_free, (void *keydata))
|
||||||
|
|
||||||
|
/* Key object information, with discovery */
|
||||||
|
#define OSSL_FUNC_KEYMGMT_GET_PARAMS 11
|
||||||
|
#define OSSL_FUNC_KEYMGMT_GETTABLE_PARAMS 12
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, keymgmt_get_params,
|
||||||
|
(void *keydata, OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keymgmt_gettable_params,
|
||||||
|
(void *provctx))
|
||||||
|
|
||||||
|
#define OSSL_FUNC_KEYMGMT_SET_PARAMS 13
|
||||||
|
#define OSSL_FUNC_KEYMGMT_SETTABLE_PARAMS 14
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, keymgmt_set_params,
|
||||||
|
(void *keydata, const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keymgmt_settable_params,
|
||||||
|
(void *provctx))
|
||||||
|
|
||||||
|
/* Key checks - discovery of supported operations */
|
||||||
|
# define OSSL_FUNC_KEYMGMT_QUERY_OPERATION_NAME 20
|
||||||
|
OSSL_CORE_MAKE_FUNC(const char *, keymgmt_query_operation_name,
|
||||||
|
(int operation_id))
|
||||||
|
|
||||||
|
/* Key checks - key data content checks */
|
||||||
|
# define OSSL_FUNC_KEYMGMT_HAS 21
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, keymgmt_has, (const void *keydata, int selection))
|
||||||
|
|
||||||
|
/* Key checks - validation */
|
||||||
|
# define OSSL_FUNC_KEYMGMT_VALIDATE 22
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, keymgmt_validate, (const void *keydata, int selection,
|
||||||
|
int checktype))
|
||||||
|
|
||||||
|
/* Key checks - matching */
|
||||||
|
# define OSSL_FUNC_KEYMGMT_MATCH 23
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, keymgmt_match,
|
||||||
|
(const void *keydata1, const void *keydata2,
|
||||||
|
int selection))
|
||||||
|
|
||||||
|
/* Import and export functions, with discovery */
|
||||||
|
# define OSSL_FUNC_KEYMGMT_IMPORT 40
|
||||||
|
# define OSSL_FUNC_KEYMGMT_IMPORT_TYPES 41
|
||||||
|
# define OSSL_FUNC_KEYMGMT_EXPORT 42
|
||||||
|
# define OSSL_FUNC_KEYMGMT_EXPORT_TYPES 43
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, keymgmt_import,
|
||||||
|
(void *keydata, int selection, const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keymgmt_import_types,
|
||||||
|
(int selection))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, keymgmt_export,
|
||||||
|
(void *keydata, int selection,
|
||||||
|
OSSL_CALLBACK *param_cb, void *cbarg))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keymgmt_export_types,
|
||||||
|
(int selection))
|
||||||
|
|
||||||
|
/* Dup function, constructor */
|
||||||
|
# define OSSL_FUNC_KEYMGMT_DUP 44
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, keymgmt_dup,
|
||||||
|
(const void *keydata_from, int selection))
|
||||||
|
|
||||||
|
/* Key Exchange */
|
||||||
|
|
||||||
|
# define OSSL_FUNC_KEYEXCH_NEWCTX 1
|
||||||
|
# define OSSL_FUNC_KEYEXCH_INIT 2
|
||||||
|
# define OSSL_FUNC_KEYEXCH_DERIVE 3
|
||||||
|
# define OSSL_FUNC_KEYEXCH_SET_PEER 4
|
||||||
|
# define OSSL_FUNC_KEYEXCH_FREECTX 5
|
||||||
|
# define OSSL_FUNC_KEYEXCH_DUPCTX 6
|
||||||
|
# define OSSL_FUNC_KEYEXCH_SET_CTX_PARAMS 7
|
||||||
|
# define OSSL_FUNC_KEYEXCH_SETTABLE_CTX_PARAMS 8
|
||||||
|
# define OSSL_FUNC_KEYEXCH_GET_CTX_PARAMS 9
|
||||||
|
# define OSSL_FUNC_KEYEXCH_GETTABLE_CTX_PARAMS 10
|
||||||
|
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, keyexch_newctx, (void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, keyexch_init, (void *ctx, void *provkey,
|
||||||
|
const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, keyexch_derive, (void *ctx, unsigned char *secret,
|
||||||
|
size_t *secretlen, size_t outlen))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, keyexch_set_peer, (void *ctx, void *provkey))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void, keyexch_freectx, (void *ctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, keyexch_dupctx, (void *ctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, keyexch_set_ctx_params, (void *ctx,
|
||||||
|
const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keyexch_settable_ctx_params,
|
||||||
|
(void *ctx, void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, keyexch_get_ctx_params, (void *ctx,
|
||||||
|
OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, keyexch_gettable_ctx_params,
|
||||||
|
(void *ctx, void *provctx))
|
||||||
|
|
||||||
|
/* Signature */
|
||||||
|
|
||||||
|
# define OSSL_FUNC_SIGNATURE_NEWCTX 1
|
||||||
|
# define OSSL_FUNC_SIGNATURE_SIGN_INIT 2
|
||||||
|
# define OSSL_FUNC_SIGNATURE_SIGN 3
|
||||||
|
# define OSSL_FUNC_SIGNATURE_VERIFY_INIT 4
|
||||||
|
# define OSSL_FUNC_SIGNATURE_VERIFY 5
|
||||||
|
# define OSSL_FUNC_SIGNATURE_VERIFY_RECOVER_INIT 6
|
||||||
|
# define OSSL_FUNC_SIGNATURE_VERIFY_RECOVER 7
|
||||||
|
# define OSSL_FUNC_SIGNATURE_DIGEST_SIGN_INIT 8
|
||||||
|
# define OSSL_FUNC_SIGNATURE_DIGEST_SIGN_UPDATE 9
|
||||||
|
# define OSSL_FUNC_SIGNATURE_DIGEST_SIGN_FINAL 10
|
||||||
|
# define OSSL_FUNC_SIGNATURE_DIGEST_SIGN 11
|
||||||
|
# define OSSL_FUNC_SIGNATURE_DIGEST_VERIFY_INIT 12
|
||||||
|
# define OSSL_FUNC_SIGNATURE_DIGEST_VERIFY_UPDATE 13
|
||||||
|
# define OSSL_FUNC_SIGNATURE_DIGEST_VERIFY_FINAL 14
|
||||||
|
# define OSSL_FUNC_SIGNATURE_DIGEST_VERIFY 15
|
||||||
|
# define OSSL_FUNC_SIGNATURE_FREECTX 16
|
||||||
|
# define OSSL_FUNC_SIGNATURE_DUPCTX 17
|
||||||
|
# define OSSL_FUNC_SIGNATURE_GET_CTX_PARAMS 18
|
||||||
|
# define OSSL_FUNC_SIGNATURE_GETTABLE_CTX_PARAMS 19
|
||||||
|
# define OSSL_FUNC_SIGNATURE_SET_CTX_PARAMS 20
|
||||||
|
# define OSSL_FUNC_SIGNATURE_SETTABLE_CTX_PARAMS 21
|
||||||
|
# define OSSL_FUNC_SIGNATURE_GET_CTX_MD_PARAMS 22
|
||||||
|
# define OSSL_FUNC_SIGNATURE_GETTABLE_CTX_MD_PARAMS 23
|
||||||
|
# define OSSL_FUNC_SIGNATURE_SET_CTX_MD_PARAMS 24
|
||||||
|
# define OSSL_FUNC_SIGNATURE_SETTABLE_CTX_MD_PARAMS 25
|
||||||
|
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, signature_newctx, (void *provctx,
|
||||||
|
const char *propq))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, signature_sign_init, (void *ctx, void *provkey,
|
||||||
|
const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, signature_sign, (void *ctx, unsigned char *sig,
|
||||||
|
size_t *siglen, size_t sigsize,
|
||||||
|
const unsigned char *tbs,
|
||||||
|
size_t tbslen))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, signature_verify_init, (void *ctx, void *provkey,
|
||||||
|
const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, signature_verify, (void *ctx,
|
||||||
|
const unsigned char *sig,
|
||||||
|
size_t siglen,
|
||||||
|
const unsigned char *tbs,
|
||||||
|
size_t tbslen))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, signature_verify_recover_init,
|
||||||
|
(void *ctx, void *provkey, const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, signature_verify_recover,
|
||||||
|
(void *ctx, unsigned char *rout, size_t *routlen,
|
||||||
|
size_t routsize, const unsigned char *sig, size_t siglen))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, signature_digest_sign_init,
|
||||||
|
(void *ctx, const char *mdname, void *provkey,
|
||||||
|
const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, signature_digest_sign_update,
|
||||||
|
(void *ctx, const unsigned char *data, size_t datalen))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, signature_digest_sign_final,
|
||||||
|
(void *ctx, unsigned char *sig, size_t *siglen,
|
||||||
|
size_t sigsize))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, signature_digest_sign,
|
||||||
|
(void *ctx, unsigned char *sigret, size_t *siglen,
|
||||||
|
size_t sigsize, const unsigned char *tbs, size_t tbslen))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, signature_digest_verify_init,
|
||||||
|
(void *ctx, const char *mdname, void *provkey,
|
||||||
|
const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, signature_digest_verify_update,
|
||||||
|
(void *ctx, const unsigned char *data, size_t datalen))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, signature_digest_verify_final,
|
||||||
|
(void *ctx, const unsigned char *sig, size_t siglen))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, signature_digest_verify,
|
||||||
|
(void *ctx, const unsigned char *sig, size_t siglen,
|
||||||
|
const unsigned char *tbs, size_t tbslen))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void, signature_freectx, (void *ctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, signature_dupctx, (void *ctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, signature_get_ctx_params,
|
||||||
|
(void *ctx, OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, signature_gettable_ctx_params,
|
||||||
|
(void *ctx, void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, signature_set_ctx_params,
|
||||||
|
(void *ctx, const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, signature_settable_ctx_params,
|
||||||
|
(void *ctx, void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, signature_get_ctx_md_params,
|
||||||
|
(void *ctx, OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, signature_gettable_ctx_md_params,
|
||||||
|
(void *ctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, signature_set_ctx_md_params,
|
||||||
|
(void *ctx, const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, signature_settable_ctx_md_params,
|
||||||
|
(void *ctx))
|
||||||
|
|
||||||
|
|
||||||
|
/* Asymmetric Ciphers */
|
||||||
|
|
||||||
|
# define OSSL_FUNC_ASYM_CIPHER_NEWCTX 1
|
||||||
|
# define OSSL_FUNC_ASYM_CIPHER_ENCRYPT_INIT 2
|
||||||
|
# define OSSL_FUNC_ASYM_CIPHER_ENCRYPT 3
|
||||||
|
# define OSSL_FUNC_ASYM_CIPHER_DECRYPT_INIT 4
|
||||||
|
# define OSSL_FUNC_ASYM_CIPHER_DECRYPT 5
|
||||||
|
# define OSSL_FUNC_ASYM_CIPHER_FREECTX 6
|
||||||
|
# define OSSL_FUNC_ASYM_CIPHER_DUPCTX 7
|
||||||
|
# define OSSL_FUNC_ASYM_CIPHER_GET_CTX_PARAMS 8
|
||||||
|
# define OSSL_FUNC_ASYM_CIPHER_GETTABLE_CTX_PARAMS 9
|
||||||
|
# define OSSL_FUNC_ASYM_CIPHER_SET_CTX_PARAMS 10
|
||||||
|
# define OSSL_FUNC_ASYM_CIPHER_SETTABLE_CTX_PARAMS 11
|
||||||
|
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, asym_cipher_newctx, (void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, asym_cipher_encrypt_init, (void *ctx, void *provkey,
|
||||||
|
const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, asym_cipher_encrypt, (void *ctx, unsigned char *out,
|
||||||
|
size_t *outlen,
|
||||||
|
size_t outsize,
|
||||||
|
const unsigned char *in,
|
||||||
|
size_t inlen))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, asym_cipher_decrypt_init, (void *ctx, void *provkey,
|
||||||
|
const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, asym_cipher_decrypt, (void *ctx, unsigned char *out,
|
||||||
|
size_t *outlen,
|
||||||
|
size_t outsize,
|
||||||
|
const unsigned char *in,
|
||||||
|
size_t inlen))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void, asym_cipher_freectx, (void *ctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, asym_cipher_dupctx, (void *ctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, asym_cipher_get_ctx_params,
|
||||||
|
(void *ctx, OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, asym_cipher_gettable_ctx_params,
|
||||||
|
(void *ctx, void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, asym_cipher_set_ctx_params,
|
||||||
|
(void *ctx, const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, asym_cipher_settable_ctx_params,
|
||||||
|
(void *ctx, void *provctx))
|
||||||
|
|
||||||
|
/* Asymmetric Key encapsulation */
|
||||||
|
# define OSSL_FUNC_KEM_NEWCTX 1
|
||||||
|
# define OSSL_FUNC_KEM_ENCAPSULATE_INIT 2
|
||||||
|
# define OSSL_FUNC_KEM_ENCAPSULATE 3
|
||||||
|
# define OSSL_FUNC_KEM_DECAPSULATE_INIT 4
|
||||||
|
# define OSSL_FUNC_KEM_DECAPSULATE 5
|
||||||
|
# define OSSL_FUNC_KEM_FREECTX 6
|
||||||
|
# define OSSL_FUNC_KEM_DUPCTX 7
|
||||||
|
# define OSSL_FUNC_KEM_GET_CTX_PARAMS 8
|
||||||
|
# define OSSL_FUNC_KEM_GETTABLE_CTX_PARAMS 9
|
||||||
|
# define OSSL_FUNC_KEM_SET_CTX_PARAMS 10
|
||||||
|
# define OSSL_FUNC_KEM_SETTABLE_CTX_PARAMS 11
|
||||||
|
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, kem_newctx, (void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, kem_encapsulate_init, (void *ctx, void *provkey,
|
||||||
|
const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, kem_encapsulate, (void *ctx,
|
||||||
|
unsigned char *out, size_t *outlen,
|
||||||
|
unsigned char *secret,
|
||||||
|
size_t *secretlen))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, kem_decapsulate_init, (void *ctx, void *provkey,
|
||||||
|
const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, kem_decapsulate, (void *ctx,
|
||||||
|
unsigned char *out, size_t *outlen,
|
||||||
|
const unsigned char *in, size_t inlen))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void, kem_freectx, (void *ctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, kem_dupctx, (void *ctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, kem_get_ctx_params, (void *ctx, OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, kem_gettable_ctx_params,
|
||||||
|
(void *ctx, void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, kem_set_ctx_params,
|
||||||
|
(void *ctx, const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, kem_settable_ctx_params,
|
||||||
|
(void *ctx, void *provctx))
|
||||||
|
|
||||||
|
/* Encoders and decoders */
|
||||||
|
# define OSSL_FUNC_ENCODER_NEWCTX 1
|
||||||
|
# define OSSL_FUNC_ENCODER_FREECTX 2
|
||||||
|
# define OSSL_FUNC_ENCODER_GET_PARAMS 3
|
||||||
|
# define OSSL_FUNC_ENCODER_GETTABLE_PARAMS 4
|
||||||
|
# define OSSL_FUNC_ENCODER_SET_CTX_PARAMS 5
|
||||||
|
# define OSSL_FUNC_ENCODER_SETTABLE_CTX_PARAMS 6
|
||||||
|
# define OSSL_FUNC_ENCODER_DOES_SELECTION 10
|
||||||
|
# define OSSL_FUNC_ENCODER_ENCODE 11
|
||||||
|
# define OSSL_FUNC_ENCODER_IMPORT_OBJECT 20
|
||||||
|
# define OSSL_FUNC_ENCODER_FREE_OBJECT 21
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, encoder_newctx, (void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void, encoder_freectx, (void *ctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, encoder_get_params, (OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, encoder_gettable_params,
|
||||||
|
(void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, encoder_set_ctx_params,
|
||||||
|
(void *ctx, const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, encoder_settable_ctx_params,
|
||||||
|
(void *provctx))
|
||||||
|
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, encoder_does_selection,
|
||||||
|
(void *provctx, int selection))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, encoder_encode,
|
||||||
|
(void *ctx, OSSL_CORE_BIO *out,
|
||||||
|
const void *obj_raw, const OSSL_PARAM obj_abstract[],
|
||||||
|
int selection,
|
||||||
|
OSSL_PASSPHRASE_CALLBACK *cb, void *cbarg))
|
||||||
|
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, encoder_import_object,
|
||||||
|
(void *ctx, int selection, const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void, encoder_free_object, (void *obj))
|
||||||
|
|
||||||
|
# define OSSL_FUNC_DECODER_NEWCTX 1
|
||||||
|
# define OSSL_FUNC_DECODER_FREECTX 2
|
||||||
|
# define OSSL_FUNC_DECODER_GET_PARAMS 3
|
||||||
|
# define OSSL_FUNC_DECODER_GETTABLE_PARAMS 4
|
||||||
|
# define OSSL_FUNC_DECODER_SET_CTX_PARAMS 5
|
||||||
|
# define OSSL_FUNC_DECODER_SETTABLE_CTX_PARAMS 6
|
||||||
|
# define OSSL_FUNC_DECODER_DOES_SELECTION 10
|
||||||
|
# define OSSL_FUNC_DECODER_DECODE 11
|
||||||
|
# define OSSL_FUNC_DECODER_EXPORT_OBJECT 20
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, decoder_newctx, (void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void, decoder_freectx, (void *ctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, decoder_get_params, (OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, decoder_gettable_params,
|
||||||
|
(void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, decoder_set_ctx_params,
|
||||||
|
(void *ctx, const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, decoder_settable_ctx_params,
|
||||||
|
(void *provctx))
|
||||||
|
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, decoder_does_selection,
|
||||||
|
(void *provctx, int selection))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, decoder_decode,
|
||||||
|
(void *ctx, OSSL_CORE_BIO *in, int selection,
|
||||||
|
OSSL_CALLBACK *data_cb, void *data_cbarg,
|
||||||
|
OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, decoder_export_object,
|
||||||
|
(void *ctx, const void *objref, size_t objref_sz,
|
||||||
|
OSSL_CALLBACK *export_cb, void *export_cbarg))
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* Store
|
||||||
|
*
|
||||||
|
* Objects are scanned by using the 'open', 'load', 'eof' and 'close'
|
||||||
|
* functions, which implement an OSSL_STORE loader.
|
||||||
|
*
|
||||||
|
* store_load() works in a way that's very similar to the decoders, in
|
||||||
|
* that they pass an abstract object through a callback, either as a DER
|
||||||
|
* octet string or as an object reference, which libcrypto will have to
|
||||||
|
* deal with.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define OSSL_FUNC_STORE_OPEN 1
|
||||||
|
#define OSSL_FUNC_STORE_ATTACH 2
|
||||||
|
#define OSSL_FUNC_STORE_SETTABLE_CTX_PARAMS 3
|
||||||
|
#define OSSL_FUNC_STORE_SET_CTX_PARAMS 4
|
||||||
|
#define OSSL_FUNC_STORE_LOAD 5
|
||||||
|
#define OSSL_FUNC_STORE_EOF 6
|
||||||
|
#define OSSL_FUNC_STORE_CLOSE 7
|
||||||
|
#define OSSL_FUNC_STORE_EXPORT_OBJECT 8
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, store_open, (void *provctx, const char *uri))
|
||||||
|
OSSL_CORE_MAKE_FUNC(void *, store_attach, (void *provctx, OSSL_CORE_BIO *in))
|
||||||
|
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, store_settable_ctx_params,
|
||||||
|
(void *provctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, store_set_ctx_params,
|
||||||
|
(void *loaderctx, const OSSL_PARAM params[]))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, store_load,
|
||||||
|
(void *loaderctx,
|
||||||
|
OSSL_CALLBACK *object_cb, void *object_cbarg,
|
||||||
|
OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, store_eof, (void *loaderctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, store_close, (void *loaderctx))
|
||||||
|
OSSL_CORE_MAKE_FUNC(int, store_export_object,
|
||||||
|
(void *loaderctx, const void *objref, size_t objref_sz,
|
||||||
|
OSSL_CALLBACK *export_cb, void *export_cbarg))
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif
|
560
deps/openssl/mingw64/include/openssl/core_names.h
vendored
Normal file
560
deps/openssl/mingw64/include/openssl/core_names.h
vendored
Normal file
@ -0,0 +1,560 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_CORE_NAMES_H
|
||||||
|
# define OPENSSL_CORE_NAMES_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/* Well known parameter names that core passes to providers */
|
||||||
|
#define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" /* utf8_ptr */
|
||||||
|
#define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" /* utf8_ptr */
|
||||||
|
#define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" /* utf8_ptr */
|
||||||
|
|
||||||
|
/* Well known parameter names that Providers can define */
|
||||||
|
#define OSSL_PROV_PARAM_NAME "name" /* utf8_ptr */
|
||||||
|
#define OSSL_PROV_PARAM_VERSION "version" /* utf8_ptr */
|
||||||
|
#define OSSL_PROV_PARAM_BUILDINFO "buildinfo" /* utf8_ptr */
|
||||||
|
#define OSSL_PROV_PARAM_STATUS "status" /* uint */
|
||||||
|
#define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" /* uint */
|
||||||
|
#define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" /* uint */
|
||||||
|
#define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" /* uint */
|
||||||
|
|
||||||
|
/* Self test callback parameters */
|
||||||
|
#define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" /* utf8_string */
|
||||||
|
#define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" /* utf8_string */
|
||||||
|
#define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" /* utf8_string */
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* Provider-native object abstractions
|
||||||
|
*
|
||||||
|
* These are used when a provider wants to pass object data or an object
|
||||||
|
* reference back to libcrypto. This is only useful for provider functions
|
||||||
|
* that take a callback to which an OSSL_PARAM array with these parameters
|
||||||
|
* can be passed.
|
||||||
|
*
|
||||||
|
* This set of parameter names is explained in detail in provider-object(7)
|
||||||
|
* (doc/man7/provider-object.pod)
|
||||||
|
*/
|
||||||
|
#define OSSL_OBJECT_PARAM_TYPE "type" /* INTEGER */
|
||||||
|
#define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" /* UTF8_STRING */
|
||||||
|
#define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" /* UTF8_STRING */
|
||||||
|
#define OSSL_OBJECT_PARAM_REFERENCE "reference" /* OCTET_STRING */
|
||||||
|
#define OSSL_OBJECT_PARAM_DATA "data" /* OCTET_STRING or UTF8_STRING */
|
||||||
|
#define OSSL_OBJECT_PARAM_DESC "desc" /* UTF8_STRING */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Algorithm parameters
|
||||||
|
* If "engine" or "properties" are specified, they should always be paired
|
||||||
|
* with the algorithm type.
|
||||||
|
* Note these are common names that are shared by many types (such as kdf, mac,
|
||||||
|
* and pkey) e.g: see OSSL_MAC_PARAM_DIGEST below.
|
||||||
|
*/
|
||||||
|
#define OSSL_ALG_PARAM_DIGEST "digest" /* utf8_string */
|
||||||
|
#define OSSL_ALG_PARAM_CIPHER "cipher" /* utf8_string */
|
||||||
|
#define OSSL_ALG_PARAM_ENGINE "engine" /* utf8_string */
|
||||||
|
#define OSSL_ALG_PARAM_MAC "mac" /* utf8_string */
|
||||||
|
#define OSSL_ALG_PARAM_PROPERTIES "properties"/* utf8_string */
|
||||||
|
|
||||||
|
/* cipher parameters */
|
||||||
|
#define OSSL_CIPHER_PARAM_PADDING "padding" /* uint */
|
||||||
|
#define OSSL_CIPHER_PARAM_USE_BITS "use-bits" /* uint */
|
||||||
|
#define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" /* uint */
|
||||||
|
#define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" /* octet_ptr */
|
||||||
|
#define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" /* size_t */
|
||||||
|
#define OSSL_CIPHER_PARAM_MODE "mode" /* uint */
|
||||||
|
#define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" /* size_t */
|
||||||
|
#define OSSL_CIPHER_PARAM_AEAD "aead" /* int, 0 or 1 */
|
||||||
|
#define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" /* int, 0 or 1 */
|
||||||
|
#define OSSL_CIPHER_PARAM_CTS "cts" /* int, 0 or 1 */
|
||||||
|
#define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" /* int, 0 or 1 */
|
||||||
|
#define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" /* int, 0 or 1 */
|
||||||
|
#define OSSL_CIPHER_PARAM_KEYLEN "keylen" /* size_t */
|
||||||
|
#define OSSL_CIPHER_PARAM_IVLEN "ivlen" /* size_t */
|
||||||
|
#define OSSL_CIPHER_PARAM_IV "iv" /* octet_string OR octet_ptr */
|
||||||
|
#define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" /* octet_string OR octet_ptr */
|
||||||
|
#define OSSL_CIPHER_PARAM_NUM "num" /* uint */
|
||||||
|
#define OSSL_CIPHER_PARAM_ROUNDS "rounds" /* uint */
|
||||||
|
#define OSSL_CIPHER_PARAM_AEAD_TAG "tag" /* octet_string */
|
||||||
|
#define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" /* octet_string */
|
||||||
|
#define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" /* size_t */
|
||||||
|
#define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" /* octet_string */
|
||||||
|
#define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" /* octet_string */
|
||||||
|
#define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" /* octet_string */
|
||||||
|
#define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN
|
||||||
|
#define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" /* size_t */
|
||||||
|
#define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" /* octet_string */
|
||||||
|
#define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" /* octet_string */
|
||||||
|
#define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" /* size_t */
|
||||||
|
#define OSSL_CIPHER_PARAM_SPEED "speed" /* uint */
|
||||||
|
#define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" /* utf8_string */
|
||||||
|
/* For passing the AlgorithmIdentifier parameter in DER form */
|
||||||
|
#define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS "alg_id_param" /* octet_string */
|
||||||
|
|
||||||
|
#define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT \
|
||||||
|
"tls1multi_maxsndfrag" /* uint */
|
||||||
|
#define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE \
|
||||||
|
"tls1multi_maxbufsz" /* size_t */
|
||||||
|
#define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE \
|
||||||
|
"tls1multi_interleave" /* uint */
|
||||||
|
#define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD \
|
||||||
|
"tls1multi_aad" /* octet_string */
|
||||||
|
#define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN \
|
||||||
|
"tls1multi_aadpacklen" /* uint */
|
||||||
|
#define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC \
|
||||||
|
"tls1multi_enc" /* octet_string */
|
||||||
|
#define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN \
|
||||||
|
"tls1multi_encin" /* octet_string */
|
||||||
|
#define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN \
|
||||||
|
"tls1multi_enclen" /* size_t */
|
||||||
|
|
||||||
|
/* OSSL_CIPHER_PARAM_CTS_MODE Values */
|
||||||
|
#define OSSL_CIPHER_CTS_MODE_CS1 "CS1"
|
||||||
|
#define OSSL_CIPHER_CTS_MODE_CS2 "CS2"
|
||||||
|
#define OSSL_CIPHER_CTS_MODE_CS3 "CS3"
|
||||||
|
|
||||||
|
/* digest parameters */
|
||||||
|
#define OSSL_DIGEST_PARAM_XOFLEN "xoflen" /* size_t */
|
||||||
|
#define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" /* octet string */
|
||||||
|
#define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" /* uint */
|
||||||
|
#define OSSL_DIGEST_PARAM_MICALG "micalg" /* utf8 string */
|
||||||
|
#define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" /* size_t */
|
||||||
|
#define OSSL_DIGEST_PARAM_SIZE "size" /* size_t */
|
||||||
|
#define OSSL_DIGEST_PARAM_XOF "xof" /* int, 0 or 1 */
|
||||||
|
#define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" /* int, 0 or 1 */
|
||||||
|
|
||||||
|
/* Known DIGEST names (not a complete list) */
|
||||||
|
#define OSSL_DIGEST_NAME_MD5 "MD5"
|
||||||
|
#define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1"
|
||||||
|
#define OSSL_DIGEST_NAME_SHA1 "SHA1"
|
||||||
|
#define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224"
|
||||||
|
#define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256"
|
||||||
|
#define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384"
|
||||||
|
#define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512"
|
||||||
|
#define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224"
|
||||||
|
#define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256"
|
||||||
|
#define OSSL_DIGEST_NAME_MD2 "MD2"
|
||||||
|
#define OSSL_DIGEST_NAME_MD4 "MD4"
|
||||||
|
#define OSSL_DIGEST_NAME_MDC2 "MDC2"
|
||||||
|
#define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160"
|
||||||
|
#define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224"
|
||||||
|
#define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256"
|
||||||
|
#define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384"
|
||||||
|
#define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512"
|
||||||
|
#define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128"
|
||||||
|
#define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256"
|
||||||
|
#define OSSL_DIGEST_NAME_SM3 "SM3"
|
||||||
|
|
||||||
|
/* MAC parameters */
|
||||||
|
#define OSSL_MAC_PARAM_KEY "key" /* octet string */
|
||||||
|
#define OSSL_MAC_PARAM_IV "iv" /* octet string */
|
||||||
|
#define OSSL_MAC_PARAM_CUSTOM "custom" /* utf8 string */
|
||||||
|
#define OSSL_MAC_PARAM_SALT "salt" /* octet string */
|
||||||
|
#define OSSL_MAC_PARAM_XOF "xof" /* int, 0 or 1 */
|
||||||
|
#define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" /* int, 0 or 1 */
|
||||||
|
#define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" /* int, 0 or 1 */
|
||||||
|
#define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" /* unsigned int */
|
||||||
|
#define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" /* unsigned int */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If "engine" or "properties" are specified, they should always be paired
|
||||||
|
* with "cipher" or "digest".
|
||||||
|
*/
|
||||||
|
#define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER /* utf8 string */
|
||||||
|
#define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST /* utf8 string */
|
||||||
|
#define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES /* utf8 string */
|
||||||
|
#define OSSL_MAC_PARAM_SIZE "size" /* size_t */
|
||||||
|
#define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" /* size_t */
|
||||||
|
#define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" /* size_t */
|
||||||
|
|
||||||
|
/* Known MAC names */
|
||||||
|
#define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC"
|
||||||
|
#define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC"
|
||||||
|
#define OSSL_MAC_NAME_CMAC "CMAC"
|
||||||
|
#define OSSL_MAC_NAME_GMAC "GMAC"
|
||||||
|
#define OSSL_MAC_NAME_HMAC "HMAC"
|
||||||
|
#define OSSL_MAC_NAME_KMAC128 "KMAC128"
|
||||||
|
#define OSSL_MAC_NAME_KMAC256 "KMAC256"
|
||||||
|
#define OSSL_MAC_NAME_POLY1305 "POLY1305"
|
||||||
|
#define OSSL_MAC_NAME_SIPHASH "SIPHASH"
|
||||||
|
|
||||||
|
/* KDF / PRF parameters */
|
||||||
|
#define OSSL_KDF_PARAM_SECRET "secret" /* octet string */
|
||||||
|
#define OSSL_KDF_PARAM_KEY "key" /* octet string */
|
||||||
|
#define OSSL_KDF_PARAM_SALT "salt" /* octet string */
|
||||||
|
#define OSSL_KDF_PARAM_PASSWORD "pass" /* octet string */
|
||||||
|
#define OSSL_KDF_PARAM_PREFIX "prefix" /* octet string */
|
||||||
|
#define OSSL_KDF_PARAM_LABEL "label" /* octet string */
|
||||||
|
#define OSSL_KDF_PARAM_DATA "data" /* octet string */
|
||||||
|
#define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST /* utf8 string */
|
||||||
|
#define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER /* utf8 string */
|
||||||
|
#define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC /* utf8 string */
|
||||||
|
#define OSSL_KDF_PARAM_MAC_SIZE "maclen" /* size_t */
|
||||||
|
#define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES /* utf8 string */
|
||||||
|
#define OSSL_KDF_PARAM_ITER "iter" /* unsigned int */
|
||||||
|
#define OSSL_KDF_PARAM_MODE "mode" /* utf8 string or int */
|
||||||
|
#define OSSL_KDF_PARAM_PKCS5 "pkcs5" /* int */
|
||||||
|
#define OSSL_KDF_PARAM_UKM "ukm" /* octet string */
|
||||||
|
#define OSSL_KDF_PARAM_CEK_ALG "cekalg" /* utf8 string */
|
||||||
|
#define OSSL_KDF_PARAM_SCRYPT_N "n" /* uint64_t */
|
||||||
|
#define OSSL_KDF_PARAM_SCRYPT_R "r" /* uint32_t */
|
||||||
|
#define OSSL_KDF_PARAM_SCRYPT_P "p" /* uint32_t */
|
||||||
|
#define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" /* uint64_t */
|
||||||
|
#define OSSL_KDF_PARAM_INFO "info" /* octet string */
|
||||||
|
#define OSSL_KDF_PARAM_SEED "seed" /* octet string */
|
||||||
|
#define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" /* octet string */
|
||||||
|
#define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" /* octet string */
|
||||||
|
#define OSSL_KDF_PARAM_SSHKDF_TYPE "type" /* int */
|
||||||
|
#define OSSL_KDF_PARAM_SIZE "size" /* size_t */
|
||||||
|
#define OSSL_KDF_PARAM_CONSTANT "constant" /* octet string */
|
||||||
|
#define OSSL_KDF_PARAM_PKCS12_ID "id" /* int */
|
||||||
|
#define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" /* int */
|
||||||
|
#define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" /* int */
|
||||||
|
#define OSSL_KDF_PARAM_KBKDF_R "r" /* int */
|
||||||
|
#define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info"
|
||||||
|
#define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info"
|
||||||
|
#define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info"
|
||||||
|
#define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo"
|
||||||
|
#define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo"
|
||||||
|
#define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits"
|
||||||
|
|
||||||
|
/* Known KDF names */
|
||||||
|
#define OSSL_KDF_NAME_HKDF "HKDF"
|
||||||
|
#define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF"
|
||||||
|
#define OSSL_KDF_NAME_PBKDF1 "PBKDF1"
|
||||||
|
#define OSSL_KDF_NAME_PBKDF2 "PBKDF2"
|
||||||
|
#define OSSL_KDF_NAME_SCRYPT "SCRYPT"
|
||||||
|
#define OSSL_KDF_NAME_SSHKDF "SSHKDF"
|
||||||
|
#define OSSL_KDF_NAME_SSKDF "SSKDF"
|
||||||
|
#define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF"
|
||||||
|
#define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1"
|
||||||
|
#define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT"
|
||||||
|
#define OSSL_KDF_NAME_X963KDF "X963KDF"
|
||||||
|
#define OSSL_KDF_NAME_KBKDF "KBKDF"
|
||||||
|
#define OSSL_KDF_NAME_KRB5KDF "KRB5KDF"
|
||||||
|
|
||||||
|
/* Known RAND names */
|
||||||
|
#define OSSL_RAND_PARAM_STATE "state"
|
||||||
|
#define OSSL_RAND_PARAM_STRENGTH "strength"
|
||||||
|
#define OSSL_RAND_PARAM_MAX_REQUEST "max_request"
|
||||||
|
#define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy"
|
||||||
|
#define OSSL_RAND_PARAM_TEST_NONCE "test_nonce"
|
||||||
|
|
||||||
|
/* RAND/DRBG names */
|
||||||
|
#define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests"
|
||||||
|
#define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval"
|
||||||
|
#define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen"
|
||||||
|
#define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen"
|
||||||
|
#define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen"
|
||||||
|
#define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen"
|
||||||
|
#define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen"
|
||||||
|
#define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen"
|
||||||
|
#define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter"
|
||||||
|
#define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time"
|
||||||
|
#define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES
|
||||||
|
#define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST
|
||||||
|
#define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER
|
||||||
|
#define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC
|
||||||
|
#define OSSL_DRBG_PARAM_USE_DF "use_derivation_function"
|
||||||
|
|
||||||
|
/* DRBG call back parameters */
|
||||||
|
#define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required"
|
||||||
|
#define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance"
|
||||||
|
#define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length"
|
||||||
|
#define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length"
|
||||||
|
#define OSSL_DRBG_PARAM_RANDOM_DATA "random_data"
|
||||||
|
#define OSSL_DRBG_PARAM_SIZE "size"
|
||||||
|
|
||||||
|
/* PKEY parameters */
|
||||||
|
/* Common PKEY parameters */
|
||||||
|
#define OSSL_PKEY_PARAM_BITS "bits" /* integer */
|
||||||
|
#define OSSL_PKEY_PARAM_MAX_SIZE "max-size" /* integer */
|
||||||
|
#define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" /* integer */
|
||||||
|
#define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST
|
||||||
|
#define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER /* utf8 string */
|
||||||
|
#define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE /* utf8 string */
|
||||||
|
#define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES
|
||||||
|
#define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" /* utf8 string */
|
||||||
|
#define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" /* utf8 string */
|
||||||
|
#define OSSL_PKEY_PARAM_PAD_MODE "pad-mode"
|
||||||
|
#define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size"
|
||||||
|
#define OSSL_PKEY_PARAM_MASKGENFUNC "mgf"
|
||||||
|
#define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest"
|
||||||
|
#define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties"
|
||||||
|
#define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key"
|
||||||
|
#define OSSL_PKEY_PARAM_GROUP_NAME "group"
|
||||||
|
#define OSSL_PKEY_PARAM_DIST_ID "distid"
|
||||||
|
#define OSSL_PKEY_PARAM_PUB_KEY "pub"
|
||||||
|
#define OSSL_PKEY_PARAM_PRIV_KEY "priv"
|
||||||
|
|
||||||
|
/* Diffie-Hellman/DSA Parameters */
|
||||||
|
#define OSSL_PKEY_PARAM_FFC_P "p"
|
||||||
|
#define OSSL_PKEY_PARAM_FFC_G "g"
|
||||||
|
#define OSSL_PKEY_PARAM_FFC_Q "q"
|
||||||
|
#define OSSL_PKEY_PARAM_FFC_GINDEX "gindex"
|
||||||
|
#define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter"
|
||||||
|
#define OSSL_PKEY_PARAM_FFC_SEED "seed"
|
||||||
|
#define OSSL_PKEY_PARAM_FFC_COFACTOR "j"
|
||||||
|
#define OSSL_PKEY_PARAM_FFC_H "hindex"
|
||||||
|
#define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq"
|
||||||
|
#define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g"
|
||||||
|
#define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy"
|
||||||
|
|
||||||
|
/* Diffie-Hellman params */
|
||||||
|
#define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator"
|
||||||
|
#define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len"
|
||||||
|
|
||||||
|
/* Elliptic Curve Domain Parameters */
|
||||||
|
#define OSSL_PKEY_PARAM_EC_PUB_X "qx"
|
||||||
|
#define OSSL_PKEY_PARAM_EC_PUB_Y "qy"
|
||||||
|
|
||||||
|
/* Elliptic Curve Explicit Domain Parameters */
|
||||||
|
#define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type"
|
||||||
|
#define OSSL_PKEY_PARAM_EC_P "p"
|
||||||
|
#define OSSL_PKEY_PARAM_EC_A "a"
|
||||||
|
#define OSSL_PKEY_PARAM_EC_B "b"
|
||||||
|
#define OSSL_PKEY_PARAM_EC_GENERATOR "generator"
|
||||||
|
#define OSSL_PKEY_PARAM_EC_ORDER "order"
|
||||||
|
#define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor"
|
||||||
|
#define OSSL_PKEY_PARAM_EC_SEED "seed"
|
||||||
|
#define OSSL_PKEY_PARAM_EC_CHAR2_M "m"
|
||||||
|
#define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type"
|
||||||
|
#define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp"
|
||||||
|
#define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1"
|
||||||
|
#define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2"
|
||||||
|
#define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3"
|
||||||
|
#define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit"
|
||||||
|
|
||||||
|
/* Elliptic Curve Key Parameters */
|
||||||
|
#define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag"
|
||||||
|
#define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH \
|
||||||
|
OSSL_PKEY_PARAM_USE_COFACTOR_FLAG
|
||||||
|
|
||||||
|
/* RSA Keys */
|
||||||
|
/*
|
||||||
|
* n, e, d are the usual public and private key components
|
||||||
|
*
|
||||||
|
* rsa-num is the number of factors, including p and q
|
||||||
|
* rsa-factor is used for each factor: p, q, r_i (i = 3, ...)
|
||||||
|
* rsa-exponent is used for each exponent: dP, dQ, d_i (i = 3, ...)
|
||||||
|
* rsa-coefficient is used for each coefficient: qInv, t_i (i = 3, ...)
|
||||||
|
*
|
||||||
|
* The number of rsa-factor items must be equal to the number of rsa-exponent
|
||||||
|
* items, and the number of rsa-coefficients must be one less.
|
||||||
|
* (the base i for the coefficients is 2, not 1, at least as implied by
|
||||||
|
* RFC 8017)
|
||||||
|
*/
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_N "n"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_E "e"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_D "d"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_FACTOR1 OSSL_PKEY_PARAM_RSA_FACTOR"1"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_FACTOR2 OSSL_PKEY_PARAM_RSA_FACTOR"2"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_FACTOR3 OSSL_PKEY_PARAM_RSA_FACTOR"3"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_FACTOR4 OSSL_PKEY_PARAM_RSA_FACTOR"4"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_FACTOR5 OSSL_PKEY_PARAM_RSA_FACTOR"5"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_FACTOR6 OSSL_PKEY_PARAM_RSA_FACTOR"6"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_FACTOR7 OSSL_PKEY_PARAM_RSA_FACTOR"7"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_FACTOR8 OSSL_PKEY_PARAM_RSA_FACTOR"8"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_FACTOR9 OSSL_PKEY_PARAM_RSA_FACTOR"9"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_FACTOR10 OSSL_PKEY_PARAM_RSA_FACTOR"10"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_EXPONENT1 OSSL_PKEY_PARAM_RSA_EXPONENT"1"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_EXPONENT2 OSSL_PKEY_PARAM_RSA_EXPONENT"2"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_EXPONENT3 OSSL_PKEY_PARAM_RSA_EXPONENT"3"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_EXPONENT4 OSSL_PKEY_PARAM_RSA_EXPONENT"4"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_EXPONENT5 OSSL_PKEY_PARAM_RSA_EXPONENT"5"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_EXPONENT6 OSSL_PKEY_PARAM_RSA_EXPONENT"6"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_EXPONENT7 OSSL_PKEY_PARAM_RSA_EXPONENT"7"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_EXPONENT8 OSSL_PKEY_PARAM_RSA_EXPONENT"8"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_EXPONENT9 OSSL_PKEY_PARAM_RSA_EXPONENT"9"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_EXPONENT10 OSSL_PKEY_PARAM_RSA_EXPONENT"10"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 OSSL_PKEY_PARAM_RSA_COEFFICIENT"1"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 OSSL_PKEY_PARAM_RSA_COEFFICIENT"2"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 OSSL_PKEY_PARAM_RSA_COEFFICIENT"3"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 OSSL_PKEY_PARAM_RSA_COEFFICIENT"4"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 OSSL_PKEY_PARAM_RSA_COEFFICIENT"5"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 OSSL_PKEY_PARAM_RSA_COEFFICIENT"6"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 OSSL_PKEY_PARAM_RSA_COEFFICIENT"7"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 OSSL_PKEY_PARAM_RSA_COEFFICIENT"8"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 OSSL_PKEY_PARAM_RSA_COEFFICIENT"9"
|
||||||
|
|
||||||
|
/* RSA padding modes */
|
||||||
|
#define OSSL_PKEY_RSA_PAD_MODE_NONE "none"
|
||||||
|
#define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1"
|
||||||
|
#define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep"
|
||||||
|
#define OSSL_PKEY_RSA_PAD_MODE_X931 "x931"
|
||||||
|
#define OSSL_PKEY_RSA_PAD_MODE_PSS "pss"
|
||||||
|
|
||||||
|
/* RSA pss padding salt length */
|
||||||
|
#define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest"
|
||||||
|
#define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max"
|
||||||
|
#define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto"
|
||||||
|
#define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax"
|
||||||
|
|
||||||
|
/* Key generation parameters */
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_PRIMES "primes"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen"
|
||||||
|
|
||||||
|
/* Key generation parameters */
|
||||||
|
#define OSSL_PKEY_PARAM_FFC_TYPE "type"
|
||||||
|
#define OSSL_PKEY_PARAM_FFC_PBITS "pbits"
|
||||||
|
#define OSSL_PKEY_PARAM_FFC_QBITS "qbits"
|
||||||
|
#define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST
|
||||||
|
#define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES
|
||||||
|
|
||||||
|
#define OSSL_PKEY_PARAM_EC_ENCODING "encoding" /* utf8_string */
|
||||||
|
#define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format"
|
||||||
|
#define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check"
|
||||||
|
#define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public"
|
||||||
|
|
||||||
|
/* OSSL_PKEY_PARAM_EC_ENCODING values */
|
||||||
|
#define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit"
|
||||||
|
#define OSSL_PKEY_EC_ENCODING_GROUP "named_curve"
|
||||||
|
|
||||||
|
#define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed"
|
||||||
|
#define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed"
|
||||||
|
#define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid"
|
||||||
|
|
||||||
|
#define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default"
|
||||||
|
#define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named"
|
||||||
|
#define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist"
|
||||||
|
|
||||||
|
/* Key Exchange parameters */
|
||||||
|
#define OSSL_EXCHANGE_PARAM_PAD "pad" /* uint */
|
||||||
|
#define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" /* int */
|
||||||
|
#define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" /* utf8_string */
|
||||||
|
#define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" /* utf8_string */
|
||||||
|
#define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" /* utf8_string */
|
||||||
|
#define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" /* size_t */
|
||||||
|
/* The following parameter is an octet_string on set and an octet_ptr on get */
|
||||||
|
#define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm"
|
||||||
|
|
||||||
|
/* Signature parameters */
|
||||||
|
#define OSSL_SIGNATURE_PARAM_ALGORITHM_ID "algorithm-id"
|
||||||
|
#define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE
|
||||||
|
#define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST
|
||||||
|
#define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES
|
||||||
|
#define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen"
|
||||||
|
#define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST
|
||||||
|
#define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES \
|
||||||
|
OSSL_PKEY_PARAM_MGF1_PROPERTIES
|
||||||
|
#define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE
|
||||||
|
|
||||||
|
/* Asym cipher parameters */
|
||||||
|
#define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST
|
||||||
|
#define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES
|
||||||
|
#define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE
|
||||||
|
#define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE
|
||||||
|
#define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST \
|
||||||
|
OSSL_PKEY_PARAM_MGF1_DIGEST
|
||||||
|
#define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS \
|
||||||
|
OSSL_PKEY_PARAM_MGF1_PROPERTIES
|
||||||
|
#define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST
|
||||||
|
#define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props"
|
||||||
|
/* The following parameter is an octet_string on set and an octet_ptr on get */
|
||||||
|
#define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label"
|
||||||
|
#define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version"
|
||||||
|
#define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Encoder / decoder parameters
|
||||||
|
*/
|
||||||
|
#define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER
|
||||||
|
#define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES
|
||||||
|
/* Currently PVK only, but reusable for others as needed */
|
||||||
|
#define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level"
|
||||||
|
#define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" /* integer */
|
||||||
|
|
||||||
|
#define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES
|
||||||
|
|
||||||
|
/* Passphrase callback parameters */
|
||||||
|
#define OSSL_PASSPHRASE_PARAM_INFO "info"
|
||||||
|
|
||||||
|
/* Keygen callback parameters, from provider to libcrypto */
|
||||||
|
#define OSSL_GEN_PARAM_POTENTIAL "potential" /* integer */
|
||||||
|
#define OSSL_GEN_PARAM_ITERATION "iteration" /* integer */
|
||||||
|
|
||||||
|
/* ACVP Test parameters : These should not be used normally */
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_TEST_XP "xp"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1"
|
||||||
|
#define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2"
|
||||||
|
#define OSSL_SIGNATURE_PARAM_KAT "kat"
|
||||||
|
|
||||||
|
/* KEM parameters */
|
||||||
|
#define OSSL_KEM_PARAM_OPERATION "operation"
|
||||||
|
|
||||||
|
/* OSSL_KEM_PARAM_OPERATION values */
|
||||||
|
#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE"
|
||||||
|
|
||||||
|
/* Capabilities */
|
||||||
|
|
||||||
|
/* TLS-GROUP Capability */
|
||||||
|
#define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name"
|
||||||
|
#define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal"
|
||||||
|
#define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id"
|
||||||
|
#define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg"
|
||||||
|
#define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits"
|
||||||
|
#define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem"
|
||||||
|
#define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls"
|
||||||
|
#define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls"
|
||||||
|
#define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls"
|
||||||
|
#define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls"
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* storemgmt parameters
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Used by storemgmt_ctx_set_params():
|
||||||
|
*
|
||||||
|
* - OSSL_STORE_PARAM_EXPECT is an INTEGER, and the value is any of the
|
||||||
|
* OSSL_STORE_INFO numbers. This is used to set the expected type of
|
||||||
|
* object loaded.
|
||||||
|
*
|
||||||
|
* - OSSL_STORE_PARAM_SUBJECT, OSSL_STORE_PARAM_ISSUER,
|
||||||
|
* OSSL_STORE_PARAM_SERIAL, OSSL_STORE_PARAM_FINGERPRINT,
|
||||||
|
* OSSL_STORE_PARAM_DIGEST, OSSL_STORE_PARAM_ALIAS
|
||||||
|
* are used as search criteria.
|
||||||
|
* (OSSL_STORE_PARAM_DIGEST is used with OSSL_STORE_PARAM_FINGERPRINT)
|
||||||
|
*/
|
||||||
|
#define OSSL_STORE_PARAM_EXPECT "expect" /* INTEGER */
|
||||||
|
#define OSSL_STORE_PARAM_SUBJECT "subject" /* DER blob => OCTET_STRING */
|
||||||
|
#define OSSL_STORE_PARAM_ISSUER "name" /* DER blob => OCTET_STRING */
|
||||||
|
#define OSSL_STORE_PARAM_SERIAL "serial" /* INTEGER */
|
||||||
|
#define OSSL_STORE_PARAM_DIGEST "digest" /* UTF8_STRING */
|
||||||
|
#define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" /* OCTET_STRING */
|
||||||
|
#define OSSL_STORE_PARAM_ALIAS "alias" /* UTF8_STRING */
|
||||||
|
|
||||||
|
/* You may want to pass properties for the provider implementation to use */
|
||||||
|
#define OSSL_STORE_PARAM_PROPERTIES "properties" /* utf8_string */
|
||||||
|
/* OSSL_DECODER input type if a decoder is used by the store */
|
||||||
|
#define OSSL_STORE_PARAM_INPUT_TYPE "input-type" /* UTF8_STRING */
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif
|
41
deps/openssl/mingw64/include/openssl/core_object.h
vendored
Normal file
41
deps/openssl/mingw64/include/openssl/core_object.h
vendored
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_CORE_OBJECT_H
|
||||||
|
# define OPENSSL_CORE_OBJECT_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* Known object types
|
||||||
|
*
|
||||||
|
* These numbers are used as values for the OSSL_PARAM parameter
|
||||||
|
* OSSL_OBJECT_PARAM_TYPE.
|
||||||
|
*
|
||||||
|
* For most of these types, there's a corresponding libcrypto object type.
|
||||||
|
* The corresponding type is indicated with a comment after the number.
|
||||||
|
*/
|
||||||
|
# define OSSL_OBJECT_UNKNOWN 0
|
||||||
|
# define OSSL_OBJECT_NAME 1 /* char * */
|
||||||
|
# define OSSL_OBJECT_PKEY 2 /* EVP_PKEY * */
|
||||||
|
# define OSSL_OBJECT_CERT 3 /* X509 * */
|
||||||
|
# define OSSL_OBJECT_CRL 4 /* X509_CRL * */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The rest of the associated OSSL_PARAM elements is described in core_names.h
|
||||||
|
*/
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif
|
227
deps/openssl/mingw64/include/openssl/crmf.h
vendored
Normal file
227
deps/openssl/mingw64/include/openssl/crmf.h
vendored
Normal file
@ -0,0 +1,227 @@
|
|||||||
|
/*-
|
||||||
|
* WARNING: do not edit!
|
||||||
|
* Generated by Makefile from include/openssl/crmf.h.in
|
||||||
|
*
|
||||||
|
* Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
* Copyright Nokia 2007-2019
|
||||||
|
* Copyright Siemens AG 2015-2019
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*
|
||||||
|
* CRMF (RFC 4211) implementation by M. Peylo, M. Viljanen, and D. von Oheimb.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef OPENSSL_CRMF_H
|
||||||
|
# define OPENSSL_CRMF_H
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_CRMF
|
||||||
|
# include <openssl/opensslv.h>
|
||||||
|
# include <openssl/safestack.h>
|
||||||
|
# include <openssl/crmferr.h>
|
||||||
|
# include <openssl/x509v3.h> /* for GENERAL_NAME etc. */
|
||||||
|
|
||||||
|
/* explicit #includes not strictly needed since implied by the above: */
|
||||||
|
# include <openssl/types.h>
|
||||||
|
# include <openssl/x509.h>
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# define OSSL_CRMF_POPOPRIVKEY_THISMESSAGE 0
|
||||||
|
# define OSSL_CRMF_POPOPRIVKEY_SUBSEQUENTMESSAGE 1
|
||||||
|
# define OSSL_CRMF_POPOPRIVKEY_DHMAC 2
|
||||||
|
# define OSSL_CRMF_POPOPRIVKEY_AGREEMAC 3
|
||||||
|
# define OSSL_CRMF_POPOPRIVKEY_ENCRYPTEDKEY 4
|
||||||
|
|
||||||
|
# define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0
|
||||||
|
# define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1
|
||||||
|
|
||||||
|
typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE;
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE)
|
||||||
|
typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG;
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG)
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG)
|
||||||
|
SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG)
|
||||||
|
#define sk_OSSL_CRMF_MSG_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk))
|
||||||
|
#define sk_OSSL_CRMF_MSG_value(sk, idx) ((OSSL_CRMF_MSG *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk), (idx)))
|
||||||
|
#define sk_OSSL_CRMF_MSG_new(cmp) ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp)))
|
||||||
|
#define sk_OSSL_CRMF_MSG_new_null() ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_new_null())
|
||||||
|
#define sk_OSSL_CRMF_MSG_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp), (n)))
|
||||||
|
#define sk_OSSL_CRMF_MSG_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_MSG_sk_type(sk), (n))
|
||||||
|
#define sk_OSSL_CRMF_MSG_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_MSG_sk_type(sk))
|
||||||
|
#define sk_OSSL_CRMF_MSG_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_MSG_sk_type(sk))
|
||||||
|
#define sk_OSSL_CRMF_MSG_delete(sk, i) ((OSSL_CRMF_MSG *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_MSG_sk_type(sk), (i)))
|
||||||
|
#define sk_OSSL_CRMF_MSG_delete_ptr(sk, ptr) ((OSSL_CRMF_MSG *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr)))
|
||||||
|
#define sk_OSSL_CRMF_MSG_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr))
|
||||||
|
#define sk_OSSL_CRMF_MSG_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr))
|
||||||
|
#define sk_OSSL_CRMF_MSG_pop(sk) ((OSSL_CRMF_MSG *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_MSG_sk_type(sk)))
|
||||||
|
#define sk_OSSL_CRMF_MSG_shift(sk) ((OSSL_CRMF_MSG *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_MSG_sk_type(sk)))
|
||||||
|
#define sk_OSSL_CRMF_MSG_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_MSG_sk_type(sk),ossl_check_OSSL_CRMF_MSG_freefunc_type(freefunc))
|
||||||
|
#define sk_OSSL_CRMF_MSG_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr), (idx))
|
||||||
|
#define sk_OSSL_CRMF_MSG_set(sk, idx, ptr) ((OSSL_CRMF_MSG *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_MSG_sk_type(sk), (idx), ossl_check_OSSL_CRMF_MSG_type(ptr)))
|
||||||
|
#define sk_OSSL_CRMF_MSG_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr))
|
||||||
|
#define sk_OSSL_CRMF_MSG_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr))
|
||||||
|
#define sk_OSSL_CRMF_MSG_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr), pnum)
|
||||||
|
#define sk_OSSL_CRMF_MSG_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_MSG_sk_type(sk))
|
||||||
|
#define sk_OSSL_CRMF_MSG_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk))
|
||||||
|
#define sk_OSSL_CRMF_MSG_dup(sk) ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk)))
|
||||||
|
#define sk_OSSL_CRMF_MSG_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_MSG_freefunc_type(freefunc)))
|
||||||
|
#define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp)))
|
||||||
|
|
||||||
|
typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE;
|
||||||
|
typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER;
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER)
|
||||||
|
typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY;
|
||||||
|
typedef struct ossl_crmf_certrequest_st OSSL_CRMF_CERTREQUEST;
|
||||||
|
typedef struct ossl_crmf_certid_st OSSL_CRMF_CERTID;
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTID)
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTID)
|
||||||
|
SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_CERTID, OSSL_CRMF_CERTID, OSSL_CRMF_CERTID)
|
||||||
|
#define sk_OSSL_CRMF_CERTID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_CERTID_sk_type(sk))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_value(sk, idx) ((OSSL_CRMF_CERTID *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_CERTID_sk_type(sk), (idx)))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_new(cmp) ((STACK_OF(OSSL_CRMF_CERTID) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_CERTID_compfunc_type(cmp)))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_new_null() ((STACK_OF(OSSL_CRMF_CERTID) *)OPENSSL_sk_new_null())
|
||||||
|
#define sk_OSSL_CRMF_CERTID_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_CERTID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_CERTID_compfunc_type(cmp), (n)))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), (n))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_CERTID_sk_type(sk))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_CERTID_sk_type(sk))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_delete(sk, i) ((OSSL_CRMF_CERTID *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), (i)))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_delete_ptr(sk, ptr) ((OSSL_CRMF_CERTID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr)))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_pop(sk) ((OSSL_CRMF_CERTID *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_CERTID_sk_type(sk)))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_shift(sk) ((OSSL_CRMF_CERTID *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_CERTID_sk_type(sk)))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_CERTID_sk_type(sk),ossl_check_OSSL_CRMF_CERTID_freefunc_type(freefunc))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr), (idx))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_set(sk, idx, ptr) ((OSSL_CRMF_CERTID *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), (idx), ossl_check_OSSL_CRMF_CERTID_type(ptr)))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr), pnum)
|
||||||
|
#define sk_OSSL_CRMF_CERTID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_CERTID_sk_type(sk))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_CERTID_sk_type(sk))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_dup(sk) ((STACK_OF(OSSL_CRMF_CERTID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_CERTID_sk_type(sk)))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_CERTID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_CERTID_freefunc_type(freefunc)))
|
||||||
|
#define sk_OSSL_CRMF_CERTID_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_CERTID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_compfunc_type(cmp)))
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct ossl_crmf_pkipublicationinfo_st OSSL_CRMF_PKIPUBLICATIONINFO;
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PKIPUBLICATIONINFO)
|
||||||
|
typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO;
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO)
|
||||||
|
typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE;
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE)
|
||||||
|
typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS;
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS)
|
||||||
|
|
||||||
|
typedef struct ossl_crmf_optionalvalidity_st OSSL_CRMF_OPTIONALVALIDITY;
|
||||||
|
|
||||||
|
/* crmf_pbm.c */
|
||||||
|
OSSL_CRMF_PBMPARAMETER *OSSL_CRMF_pbmp_new(OSSL_LIB_CTX *libctx, size_t slen,
|
||||||
|
int owfnid, size_t itercnt,
|
||||||
|
int macnid);
|
||||||
|
int OSSL_CRMF_pbm_new(OSSL_LIB_CTX *libctx, const char *propq,
|
||||||
|
const OSSL_CRMF_PBMPARAMETER *pbmp,
|
||||||
|
const unsigned char *msg, size_t msglen,
|
||||||
|
const unsigned char *sec, size_t seclen,
|
||||||
|
unsigned char **mac, size_t *maclen);
|
||||||
|
|
||||||
|
/* crmf_lib.c */
|
||||||
|
int OSSL_CRMF_MSG_set1_regCtrl_regToken(OSSL_CRMF_MSG *msg,
|
||||||
|
const ASN1_UTF8STRING *tok);
|
||||||
|
ASN1_UTF8STRING
|
||||||
|
*OSSL_CRMF_MSG_get0_regCtrl_regToken(const OSSL_CRMF_MSG *msg);
|
||||||
|
int OSSL_CRMF_MSG_set1_regCtrl_authenticator(OSSL_CRMF_MSG *msg,
|
||||||
|
const ASN1_UTF8STRING *auth);
|
||||||
|
ASN1_UTF8STRING
|
||||||
|
*OSSL_CRMF_MSG_get0_regCtrl_authenticator(const OSSL_CRMF_MSG *msg);
|
||||||
|
int
|
||||||
|
OSSL_CRMF_MSG_PKIPublicationInfo_push0_SinglePubInfo(OSSL_CRMF_PKIPUBLICATIONINFO *pi,
|
||||||
|
OSSL_CRMF_SINGLEPUBINFO *spi);
|
||||||
|
# define OSSL_CRMF_PUB_METHOD_DONTCARE 0
|
||||||
|
# define OSSL_CRMF_PUB_METHOD_X500 1
|
||||||
|
# define OSSL_CRMF_PUB_METHOD_WEB 2
|
||||||
|
# define OSSL_CRMF_PUB_METHOD_LDAP 3
|
||||||
|
int OSSL_CRMF_MSG_set0_SinglePubInfo(OSSL_CRMF_SINGLEPUBINFO *spi,
|
||||||
|
int method, GENERAL_NAME *nm);
|
||||||
|
# define OSSL_CRMF_PUB_ACTION_DONTPUBLISH 0
|
||||||
|
# define OSSL_CRMF_PUB_ACTION_PLEASEPUBLISH 1
|
||||||
|
int OSSL_CRMF_MSG_set_PKIPublicationInfo_action(OSSL_CRMF_PKIPUBLICATIONINFO *pi,
|
||||||
|
int action);
|
||||||
|
int OSSL_CRMF_MSG_set1_regCtrl_pkiPublicationInfo(OSSL_CRMF_MSG *msg,
|
||||||
|
const OSSL_CRMF_PKIPUBLICATIONINFO *pi);
|
||||||
|
OSSL_CRMF_PKIPUBLICATIONINFO
|
||||||
|
*OSSL_CRMF_MSG_get0_regCtrl_pkiPublicationInfo(const OSSL_CRMF_MSG *msg);
|
||||||
|
int OSSL_CRMF_MSG_set1_regCtrl_protocolEncrKey(OSSL_CRMF_MSG *msg,
|
||||||
|
const X509_PUBKEY *pubkey);
|
||||||
|
X509_PUBKEY
|
||||||
|
*OSSL_CRMF_MSG_get0_regCtrl_protocolEncrKey(const OSSL_CRMF_MSG *msg);
|
||||||
|
int OSSL_CRMF_MSG_set1_regCtrl_oldCertID(OSSL_CRMF_MSG *msg,
|
||||||
|
const OSSL_CRMF_CERTID *cid);
|
||||||
|
OSSL_CRMF_CERTID
|
||||||
|
*OSSL_CRMF_MSG_get0_regCtrl_oldCertID(const OSSL_CRMF_MSG *msg);
|
||||||
|
OSSL_CRMF_CERTID *OSSL_CRMF_CERTID_gen(const X509_NAME *issuer,
|
||||||
|
const ASN1_INTEGER *serial);
|
||||||
|
|
||||||
|
int OSSL_CRMF_MSG_set1_regInfo_utf8Pairs(OSSL_CRMF_MSG *msg,
|
||||||
|
const ASN1_UTF8STRING *utf8pairs);
|
||||||
|
ASN1_UTF8STRING
|
||||||
|
*OSSL_CRMF_MSG_get0_regInfo_utf8Pairs(const OSSL_CRMF_MSG *msg);
|
||||||
|
int OSSL_CRMF_MSG_set1_regInfo_certReq(OSSL_CRMF_MSG *msg,
|
||||||
|
const OSSL_CRMF_CERTREQUEST *cr);
|
||||||
|
OSSL_CRMF_CERTREQUEST
|
||||||
|
*OSSL_CRMF_MSG_get0_regInfo_certReq(const OSSL_CRMF_MSG *msg);
|
||||||
|
|
||||||
|
int OSSL_CRMF_MSG_set0_validity(OSSL_CRMF_MSG *crm,
|
||||||
|
ASN1_TIME *notBefore, ASN1_TIME *notAfter);
|
||||||
|
int OSSL_CRMF_MSG_set_certReqId(OSSL_CRMF_MSG *crm, int rid);
|
||||||
|
int OSSL_CRMF_MSG_get_certReqId(const OSSL_CRMF_MSG *crm);
|
||||||
|
int OSSL_CRMF_MSG_set0_extensions(OSSL_CRMF_MSG *crm, X509_EXTENSIONS *exts);
|
||||||
|
|
||||||
|
int OSSL_CRMF_MSG_push0_extension(OSSL_CRMF_MSG *crm, X509_EXTENSION *ext);
|
||||||
|
# define OSSL_CRMF_POPO_NONE -1
|
||||||
|
# define OSSL_CRMF_POPO_RAVERIFIED 0
|
||||||
|
# define OSSL_CRMF_POPO_SIGNATURE 1
|
||||||
|
# define OSSL_CRMF_POPO_KEYENC 2
|
||||||
|
# define OSSL_CRMF_POPO_KEYAGREE 3
|
||||||
|
int OSSL_CRMF_MSG_create_popo(int meth, OSSL_CRMF_MSG *crm,
|
||||||
|
EVP_PKEY *pkey, const EVP_MD *digest,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs,
|
||||||
|
int rid, int acceptRAVerified,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm);
|
||||||
|
const ASN1_INTEGER
|
||||||
|
*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl);
|
||||||
|
const X509_NAME
|
||||||
|
*OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl);
|
||||||
|
const X509_NAME
|
||||||
|
*OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl);
|
||||||
|
X509_EXTENSIONS
|
||||||
|
*OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl);
|
||||||
|
const X509_NAME
|
||||||
|
*OSSL_CRMF_CERTID_get0_issuer(const OSSL_CRMF_CERTID *cid);
|
||||||
|
const ASN1_INTEGER
|
||||||
|
*OSSL_CRMF_CERTID_get0_serialNumber(const OSSL_CRMF_CERTID *cid);
|
||||||
|
int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl,
|
||||||
|
EVP_PKEY *pubkey,
|
||||||
|
const X509_NAME *subject,
|
||||||
|
const X509_NAME *issuer,
|
||||||
|
const ASN1_INTEGER *serial);
|
||||||
|
X509
|
||||||
|
*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq,
|
||||||
|
EVP_PKEY *pkey);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
# endif /* !defined(OPENSSL_NO_CRMF) */
|
||||||
|
#endif /* !defined(OPENSSL_CRMF_H) */
|
180
deps/openssl/mingw64/include/openssl/crmf.h.in
vendored
Normal file
180
deps/openssl/mingw64/include/openssl/crmf.h.in
vendored
Normal file
@ -0,0 +1,180 @@
|
|||||||
|
/*-
|
||||||
|
* {- join("\n * ", @autowarntext) -}
|
||||||
|
*
|
||||||
|
* Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
* Copyright Nokia 2007-2019
|
||||||
|
* Copyright Siemens AG 2015-2019
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*
|
||||||
|
* CRMF (RFC 4211) implementation by M. Peylo, M. Viljanen, and D. von Oheimb.
|
||||||
|
*/
|
||||||
|
|
||||||
|
{-
|
||||||
|
use OpenSSL::stackhash qw(generate_stack_macros);
|
||||||
|
-}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_CRMF_H
|
||||||
|
# define OPENSSL_CRMF_H
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_CRMF
|
||||||
|
# include <openssl/opensslv.h>
|
||||||
|
# include <openssl/safestack.h>
|
||||||
|
# include <openssl/crmferr.h>
|
||||||
|
# include <openssl/x509v3.h> /* for GENERAL_NAME etc. */
|
||||||
|
|
||||||
|
/* explicit #includes not strictly needed since implied by the above: */
|
||||||
|
# include <openssl/types.h>
|
||||||
|
# include <openssl/x509.h>
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# define OSSL_CRMF_POPOPRIVKEY_THISMESSAGE 0
|
||||||
|
# define OSSL_CRMF_POPOPRIVKEY_SUBSEQUENTMESSAGE 1
|
||||||
|
# define OSSL_CRMF_POPOPRIVKEY_DHMAC 2
|
||||||
|
# define OSSL_CRMF_POPOPRIVKEY_AGREEMAC 3
|
||||||
|
# define OSSL_CRMF_POPOPRIVKEY_ENCRYPTEDKEY 4
|
||||||
|
|
||||||
|
# define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0
|
||||||
|
# define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1
|
||||||
|
|
||||||
|
typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE;
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE)
|
||||||
|
typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG;
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG)
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG)
|
||||||
|
{-
|
||||||
|
generate_stack_macros("OSSL_CRMF_MSG");
|
||||||
|
-}
|
||||||
|
typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE;
|
||||||
|
typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER;
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER)
|
||||||
|
typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY;
|
||||||
|
typedef struct ossl_crmf_certrequest_st OSSL_CRMF_CERTREQUEST;
|
||||||
|
typedef struct ossl_crmf_certid_st OSSL_CRMF_CERTID;
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTID)
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTID)
|
||||||
|
{-
|
||||||
|
generate_stack_macros("OSSL_CRMF_CERTID");
|
||||||
|
-}
|
||||||
|
|
||||||
|
typedef struct ossl_crmf_pkipublicationinfo_st OSSL_CRMF_PKIPUBLICATIONINFO;
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PKIPUBLICATIONINFO)
|
||||||
|
typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO;
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO)
|
||||||
|
typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE;
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE)
|
||||||
|
typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS;
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS)
|
||||||
|
|
||||||
|
typedef struct ossl_crmf_optionalvalidity_st OSSL_CRMF_OPTIONALVALIDITY;
|
||||||
|
|
||||||
|
/* crmf_pbm.c */
|
||||||
|
OSSL_CRMF_PBMPARAMETER *OSSL_CRMF_pbmp_new(OSSL_LIB_CTX *libctx, size_t slen,
|
||||||
|
int owfnid, size_t itercnt,
|
||||||
|
int macnid);
|
||||||
|
int OSSL_CRMF_pbm_new(OSSL_LIB_CTX *libctx, const char *propq,
|
||||||
|
const OSSL_CRMF_PBMPARAMETER *pbmp,
|
||||||
|
const unsigned char *msg, size_t msglen,
|
||||||
|
const unsigned char *sec, size_t seclen,
|
||||||
|
unsigned char **mac, size_t *maclen);
|
||||||
|
|
||||||
|
/* crmf_lib.c */
|
||||||
|
int OSSL_CRMF_MSG_set1_regCtrl_regToken(OSSL_CRMF_MSG *msg,
|
||||||
|
const ASN1_UTF8STRING *tok);
|
||||||
|
ASN1_UTF8STRING
|
||||||
|
*OSSL_CRMF_MSG_get0_regCtrl_regToken(const OSSL_CRMF_MSG *msg);
|
||||||
|
int OSSL_CRMF_MSG_set1_regCtrl_authenticator(OSSL_CRMF_MSG *msg,
|
||||||
|
const ASN1_UTF8STRING *auth);
|
||||||
|
ASN1_UTF8STRING
|
||||||
|
*OSSL_CRMF_MSG_get0_regCtrl_authenticator(const OSSL_CRMF_MSG *msg);
|
||||||
|
int
|
||||||
|
OSSL_CRMF_MSG_PKIPublicationInfo_push0_SinglePubInfo(OSSL_CRMF_PKIPUBLICATIONINFO *pi,
|
||||||
|
OSSL_CRMF_SINGLEPUBINFO *spi);
|
||||||
|
# define OSSL_CRMF_PUB_METHOD_DONTCARE 0
|
||||||
|
# define OSSL_CRMF_PUB_METHOD_X500 1
|
||||||
|
# define OSSL_CRMF_PUB_METHOD_WEB 2
|
||||||
|
# define OSSL_CRMF_PUB_METHOD_LDAP 3
|
||||||
|
int OSSL_CRMF_MSG_set0_SinglePubInfo(OSSL_CRMF_SINGLEPUBINFO *spi,
|
||||||
|
int method, GENERAL_NAME *nm);
|
||||||
|
# define OSSL_CRMF_PUB_ACTION_DONTPUBLISH 0
|
||||||
|
# define OSSL_CRMF_PUB_ACTION_PLEASEPUBLISH 1
|
||||||
|
int OSSL_CRMF_MSG_set_PKIPublicationInfo_action(OSSL_CRMF_PKIPUBLICATIONINFO *pi,
|
||||||
|
int action);
|
||||||
|
int OSSL_CRMF_MSG_set1_regCtrl_pkiPublicationInfo(OSSL_CRMF_MSG *msg,
|
||||||
|
const OSSL_CRMF_PKIPUBLICATIONINFO *pi);
|
||||||
|
OSSL_CRMF_PKIPUBLICATIONINFO
|
||||||
|
*OSSL_CRMF_MSG_get0_regCtrl_pkiPublicationInfo(const OSSL_CRMF_MSG *msg);
|
||||||
|
int OSSL_CRMF_MSG_set1_regCtrl_protocolEncrKey(OSSL_CRMF_MSG *msg,
|
||||||
|
const X509_PUBKEY *pubkey);
|
||||||
|
X509_PUBKEY
|
||||||
|
*OSSL_CRMF_MSG_get0_regCtrl_protocolEncrKey(const OSSL_CRMF_MSG *msg);
|
||||||
|
int OSSL_CRMF_MSG_set1_regCtrl_oldCertID(OSSL_CRMF_MSG *msg,
|
||||||
|
const OSSL_CRMF_CERTID *cid);
|
||||||
|
OSSL_CRMF_CERTID
|
||||||
|
*OSSL_CRMF_MSG_get0_regCtrl_oldCertID(const OSSL_CRMF_MSG *msg);
|
||||||
|
OSSL_CRMF_CERTID *OSSL_CRMF_CERTID_gen(const X509_NAME *issuer,
|
||||||
|
const ASN1_INTEGER *serial);
|
||||||
|
|
||||||
|
int OSSL_CRMF_MSG_set1_regInfo_utf8Pairs(OSSL_CRMF_MSG *msg,
|
||||||
|
const ASN1_UTF8STRING *utf8pairs);
|
||||||
|
ASN1_UTF8STRING
|
||||||
|
*OSSL_CRMF_MSG_get0_regInfo_utf8Pairs(const OSSL_CRMF_MSG *msg);
|
||||||
|
int OSSL_CRMF_MSG_set1_regInfo_certReq(OSSL_CRMF_MSG *msg,
|
||||||
|
const OSSL_CRMF_CERTREQUEST *cr);
|
||||||
|
OSSL_CRMF_CERTREQUEST
|
||||||
|
*OSSL_CRMF_MSG_get0_regInfo_certReq(const OSSL_CRMF_MSG *msg);
|
||||||
|
|
||||||
|
int OSSL_CRMF_MSG_set0_validity(OSSL_CRMF_MSG *crm,
|
||||||
|
ASN1_TIME *notBefore, ASN1_TIME *notAfter);
|
||||||
|
int OSSL_CRMF_MSG_set_certReqId(OSSL_CRMF_MSG *crm, int rid);
|
||||||
|
int OSSL_CRMF_MSG_get_certReqId(const OSSL_CRMF_MSG *crm);
|
||||||
|
int OSSL_CRMF_MSG_set0_extensions(OSSL_CRMF_MSG *crm, X509_EXTENSIONS *exts);
|
||||||
|
|
||||||
|
int OSSL_CRMF_MSG_push0_extension(OSSL_CRMF_MSG *crm, X509_EXTENSION *ext);
|
||||||
|
# define OSSL_CRMF_POPO_NONE -1
|
||||||
|
# define OSSL_CRMF_POPO_RAVERIFIED 0
|
||||||
|
# define OSSL_CRMF_POPO_SIGNATURE 1
|
||||||
|
# define OSSL_CRMF_POPO_KEYENC 2
|
||||||
|
# define OSSL_CRMF_POPO_KEYAGREE 3
|
||||||
|
int OSSL_CRMF_MSG_create_popo(int meth, OSSL_CRMF_MSG *crm,
|
||||||
|
EVP_PKEY *pkey, const EVP_MD *digest,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs,
|
||||||
|
int rid, int acceptRAVerified,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm);
|
||||||
|
const ASN1_INTEGER
|
||||||
|
*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl);
|
||||||
|
const X509_NAME
|
||||||
|
*OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl);
|
||||||
|
const X509_NAME
|
||||||
|
*OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl);
|
||||||
|
X509_EXTENSIONS
|
||||||
|
*OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl);
|
||||||
|
const X509_NAME
|
||||||
|
*OSSL_CRMF_CERTID_get0_issuer(const OSSL_CRMF_CERTID *cid);
|
||||||
|
const ASN1_INTEGER
|
||||||
|
*OSSL_CRMF_CERTID_get0_serialNumber(const OSSL_CRMF_CERTID *cid);
|
||||||
|
int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl,
|
||||||
|
EVP_PKEY *pubkey,
|
||||||
|
const X509_NAME *subject,
|
||||||
|
const X509_NAME *issuer,
|
||||||
|
const ASN1_INTEGER *serial);
|
||||||
|
X509
|
||||||
|
*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq,
|
||||||
|
EVP_PKEY *pkey);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
# endif /* !defined(OPENSSL_NO_CRMF) */
|
||||||
|
#endif /* !defined(OPENSSL_CRMF_H) */
|
50
deps/openssl/mingw64/include/openssl/crmferr.h
vendored
Normal file
50
deps/openssl/mingw64/include/openssl/crmferr.h
vendored
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
/*
|
||||||
|
* Generated by util/mkerr.pl DO NOT EDIT
|
||||||
|
* Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_CRMFERR_H
|
||||||
|
# define OPENSSL_CRMFERR_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
# include <openssl/symhacks.h>
|
||||||
|
# include <openssl/cryptoerr_legacy.h>
|
||||||
|
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_CRMF
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* CRMF reason codes.
|
||||||
|
*/
|
||||||
|
# define CRMF_R_BAD_PBM_ITERATIONCOUNT 100
|
||||||
|
# define CRMF_R_CRMFERROR 102
|
||||||
|
# define CRMF_R_ERROR 103
|
||||||
|
# define CRMF_R_ERROR_DECODING_CERTIFICATE 104
|
||||||
|
# define CRMF_R_ERROR_DECRYPTING_CERTIFICATE 105
|
||||||
|
# define CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY 106
|
||||||
|
# define CRMF_R_FAILURE_OBTAINING_RANDOM 107
|
||||||
|
# define CRMF_R_ITERATIONCOUNT_BELOW_100 108
|
||||||
|
# define CRMF_R_MALFORMED_IV 101
|
||||||
|
# define CRMF_R_NULL_ARGUMENT 109
|
||||||
|
# define CRMF_R_POPOSKINPUT_NOT_SUPPORTED 113
|
||||||
|
# define CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY 117
|
||||||
|
# define CRMF_R_POPO_MISSING 121
|
||||||
|
# define CRMF_R_POPO_MISSING_PUBLIC_KEY 118
|
||||||
|
# define CRMF_R_POPO_MISSING_SUBJECT 119
|
||||||
|
# define CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED 120
|
||||||
|
# define CRMF_R_SETTING_MAC_ALGOR_FAILURE 110
|
||||||
|
# define CRMF_R_SETTING_OWF_ALGOR_FAILURE 111
|
||||||
|
# define CRMF_R_UNSUPPORTED_ALGORITHM 112
|
||||||
|
# define CRMF_R_UNSUPPORTED_CIPHER 114
|
||||||
|
# define CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO 115
|
||||||
|
# define CRMF_R_UNSUPPORTED_POPO_METHOD 116
|
||||||
|
|
||||||
|
# endif
|
||||||
|
#endif
|
535
deps/openssl/mingw64/include/openssl/crypto.h.in
vendored
Normal file
535
deps/openssl/mingw64/include/openssl/crypto.h.in
vendored
Normal file
@ -0,0 +1,535 @@
|
|||||||
|
/*
|
||||||
|
* {- join("\n * ", @autowarntext) -}
|
||||||
|
*
|
||||||
|
* Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
{-
|
||||||
|
use OpenSSL::stackhash qw(generate_stack_macros);
|
||||||
|
-}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_CRYPTO_H
|
||||||
|
# define OPENSSL_CRYPTO_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/macros.h>
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# define HEADER_CRYPTO_H
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# include <stdlib.h>
|
||||||
|
# include <time.h>
|
||||||
|
|
||||||
|
# include <openssl/e_os2.h>
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
# include <stdio.h>
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# include <openssl/safestack.h>
|
||||||
|
# include <openssl/opensslv.h>
|
||||||
|
# include <openssl/types.h>
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
# include <openssl/cryptoerr.h>
|
||||||
|
# include <openssl/core.h>
|
||||||
|
|
||||||
|
# ifdef CHARSET_EBCDIC
|
||||||
|
# include <openssl/ebcdic.h>
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Resolve problems on some operating systems with symbol names that clash
|
||||||
|
* one way or another
|
||||||
|
*/
|
||||||
|
# include <openssl/symhacks.h>
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
# include <openssl/opensslv.h>
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
# define SSLeay OpenSSL_version_num
|
||||||
|
# define SSLeay_version OpenSSL_version
|
||||||
|
# define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER
|
||||||
|
# define SSLEAY_VERSION OPENSSL_VERSION
|
||||||
|
# define SSLEAY_CFLAGS OPENSSL_CFLAGS
|
||||||
|
# define SSLEAY_BUILT_ON OPENSSL_BUILT_ON
|
||||||
|
# define SSLEAY_PLATFORM OPENSSL_PLATFORM
|
||||||
|
# define SSLEAY_DIR OPENSSL_DIR
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Old type for allocating dynamic locks. No longer used. Use the new thread
|
||||||
|
* API instead.
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
int dummy;
|
||||||
|
} CRYPTO_dynlock;
|
||||||
|
|
||||||
|
# endif /* OPENSSL_NO_DEPRECATED_1_1_0 */
|
||||||
|
|
||||||
|
typedef void CRYPTO_RWLOCK;
|
||||||
|
|
||||||
|
CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void);
|
||||||
|
__owur int CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock);
|
||||||
|
__owur int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock);
|
||||||
|
int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock);
|
||||||
|
void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock);
|
||||||
|
|
||||||
|
int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock);
|
||||||
|
int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret,
|
||||||
|
CRYPTO_RWLOCK *lock);
|
||||||
|
int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock);
|
||||||
|
|
||||||
|
/* No longer needed, so this is a no-op */
|
||||||
|
#define OPENSSL_malloc_init() while(0) continue
|
||||||
|
|
||||||
|
# define OPENSSL_malloc(num) \
|
||||||
|
CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE)
|
||||||
|
# define OPENSSL_zalloc(num) \
|
||||||
|
CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE)
|
||||||
|
# define OPENSSL_realloc(addr, num) \
|
||||||
|
CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE)
|
||||||
|
# define OPENSSL_clear_realloc(addr, old_num, num) \
|
||||||
|
CRYPTO_clear_realloc(addr, old_num, num, OPENSSL_FILE, OPENSSL_LINE)
|
||||||
|
# define OPENSSL_clear_free(addr, num) \
|
||||||
|
CRYPTO_clear_free(addr, num, OPENSSL_FILE, OPENSSL_LINE)
|
||||||
|
# define OPENSSL_free(addr) \
|
||||||
|
CRYPTO_free(addr, OPENSSL_FILE, OPENSSL_LINE)
|
||||||
|
# define OPENSSL_memdup(str, s) \
|
||||||
|
CRYPTO_memdup((str), s, OPENSSL_FILE, OPENSSL_LINE)
|
||||||
|
# define OPENSSL_strdup(str) \
|
||||||
|
CRYPTO_strdup(str, OPENSSL_FILE, OPENSSL_LINE)
|
||||||
|
# define OPENSSL_strndup(str, n) \
|
||||||
|
CRYPTO_strndup(str, n, OPENSSL_FILE, OPENSSL_LINE)
|
||||||
|
# define OPENSSL_secure_malloc(num) \
|
||||||
|
CRYPTO_secure_malloc(num, OPENSSL_FILE, OPENSSL_LINE)
|
||||||
|
# define OPENSSL_secure_zalloc(num) \
|
||||||
|
CRYPTO_secure_zalloc(num, OPENSSL_FILE, OPENSSL_LINE)
|
||||||
|
# define OPENSSL_secure_free(addr) \
|
||||||
|
CRYPTO_secure_free(addr, OPENSSL_FILE, OPENSSL_LINE)
|
||||||
|
# define OPENSSL_secure_clear_free(addr, num) \
|
||||||
|
CRYPTO_secure_clear_free(addr, num, OPENSSL_FILE, OPENSSL_LINE)
|
||||||
|
# define OPENSSL_secure_actual_size(ptr) \
|
||||||
|
CRYPTO_secure_actual_size(ptr)
|
||||||
|
|
||||||
|
size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz);
|
||||||
|
size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz);
|
||||||
|
size_t OPENSSL_strnlen(const char *str, size_t maxlen);
|
||||||
|
int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength,
|
||||||
|
const unsigned char *buf, size_t buflen,
|
||||||
|
const char sep);
|
||||||
|
char *OPENSSL_buf2hexstr(const unsigned char *buf, long buflen);
|
||||||
|
int OPENSSL_hexstr2buf_ex(unsigned char *buf, size_t buf_n, size_t *buflen,
|
||||||
|
const char *str, const char sep);
|
||||||
|
unsigned char *OPENSSL_hexstr2buf(const char *str, long *buflen);
|
||||||
|
int OPENSSL_hexchar2int(unsigned char c);
|
||||||
|
int OPENSSL_strcasecmp(const char *s1, const char *s2);
|
||||||
|
int OPENSSL_strncasecmp(const char *s1, const char *s2, size_t n);
|
||||||
|
|
||||||
|
# define OPENSSL_MALLOC_MAX_NELEMS(type) (((1U<<(sizeof(int)*8-1))-1)/sizeof(type))
|
||||||
|
|
||||||
|
/*
|
||||||
|
* These functions return the values of OPENSSL_VERSION_MAJOR,
|
||||||
|
* OPENSSL_VERSION_MINOR, OPENSSL_VERSION_PATCH, OPENSSL_VERSION_PRE_RELEASE
|
||||||
|
* and OPENSSL_VERSION_BUILD_METADATA, respectively.
|
||||||
|
*/
|
||||||
|
unsigned int OPENSSL_version_major(void);
|
||||||
|
unsigned int OPENSSL_version_minor(void);
|
||||||
|
unsigned int OPENSSL_version_patch(void);
|
||||||
|
const char *OPENSSL_version_pre_release(void);
|
||||||
|
const char *OPENSSL_version_build_metadata(void);
|
||||||
|
|
||||||
|
unsigned long OpenSSL_version_num(void);
|
||||||
|
const char *OpenSSL_version(int type);
|
||||||
|
# define OPENSSL_VERSION 0
|
||||||
|
# define OPENSSL_CFLAGS 1
|
||||||
|
# define OPENSSL_BUILT_ON 2
|
||||||
|
# define OPENSSL_PLATFORM 3
|
||||||
|
# define OPENSSL_DIR 4
|
||||||
|
# define OPENSSL_ENGINES_DIR 5
|
||||||
|
# define OPENSSL_VERSION_STRING 6
|
||||||
|
# define OPENSSL_FULL_VERSION_STRING 7
|
||||||
|
# define OPENSSL_MODULES_DIR 8
|
||||||
|
# define OPENSSL_CPU_INFO 9
|
||||||
|
|
||||||
|
const char *OPENSSL_info(int type);
|
||||||
|
/*
|
||||||
|
* The series starts at 1001 to avoid confusion with the OpenSSL_version
|
||||||
|
* types.
|
||||||
|
*/
|
||||||
|
# define OPENSSL_INFO_CONFIG_DIR 1001
|
||||||
|
# define OPENSSL_INFO_ENGINES_DIR 1002
|
||||||
|
# define OPENSSL_INFO_MODULES_DIR 1003
|
||||||
|
# define OPENSSL_INFO_DSO_EXTENSION 1004
|
||||||
|
# define OPENSSL_INFO_DIR_FILENAME_SEPARATOR 1005
|
||||||
|
# define OPENSSL_INFO_LIST_SEPARATOR 1006
|
||||||
|
# define OPENSSL_INFO_SEED_SOURCE 1007
|
||||||
|
# define OPENSSL_INFO_CPU_SETTINGS 1008
|
||||||
|
|
||||||
|
int OPENSSL_issetugid(void);
|
||||||
|
|
||||||
|
struct crypto_ex_data_st {
|
||||||
|
OSSL_LIB_CTX *ctx;
|
||||||
|
STACK_OF(void) *sk;
|
||||||
|
};
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_stack_macros("void");
|
||||||
|
-}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Per class, we have a STACK of function pointers.
|
||||||
|
*/
|
||||||
|
# define CRYPTO_EX_INDEX_SSL 0
|
||||||
|
# define CRYPTO_EX_INDEX_SSL_CTX 1
|
||||||
|
# define CRYPTO_EX_INDEX_SSL_SESSION 2
|
||||||
|
# define CRYPTO_EX_INDEX_X509 3
|
||||||
|
# define CRYPTO_EX_INDEX_X509_STORE 4
|
||||||
|
# define CRYPTO_EX_INDEX_X509_STORE_CTX 5
|
||||||
|
# define CRYPTO_EX_INDEX_DH 6
|
||||||
|
# define CRYPTO_EX_INDEX_DSA 7
|
||||||
|
# define CRYPTO_EX_INDEX_EC_KEY 8
|
||||||
|
# define CRYPTO_EX_INDEX_RSA 9
|
||||||
|
# define CRYPTO_EX_INDEX_ENGINE 10
|
||||||
|
# define CRYPTO_EX_INDEX_UI 11
|
||||||
|
# define CRYPTO_EX_INDEX_BIO 12
|
||||||
|
# define CRYPTO_EX_INDEX_APP 13
|
||||||
|
# define CRYPTO_EX_INDEX_UI_METHOD 14
|
||||||
|
# define CRYPTO_EX_INDEX_RAND_DRBG 15
|
||||||
|
# define CRYPTO_EX_INDEX_DRBG CRYPTO_EX_INDEX_RAND_DRBG
|
||||||
|
# define CRYPTO_EX_INDEX_OSSL_LIB_CTX 16
|
||||||
|
# define CRYPTO_EX_INDEX_EVP_PKEY 17
|
||||||
|
# define CRYPTO_EX_INDEX__COUNT 18
|
||||||
|
|
||||||
|
typedef void CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad,
|
||||||
|
int idx, long argl, void *argp);
|
||||||
|
typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad,
|
||||||
|
int idx, long argl, void *argp);
|
||||||
|
typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from,
|
||||||
|
void **from_d, int idx, long argl, void *argp);
|
||||||
|
__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);
|
||||||
|
/* No longer use an index. */
|
||||||
|
int CRYPTO_free_ex_index(int class_index, int idx);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initialise/duplicate/free CRYPTO_EX_DATA variables corresponding to a
|
||||||
|
* given class (invokes whatever per-class callbacks are applicable)
|
||||||
|
*/
|
||||||
|
int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad);
|
||||||
|
int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to,
|
||||||
|
const CRYPTO_EX_DATA *from);
|
||||||
|
|
||||||
|
void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad);
|
||||||
|
|
||||||
|
/* Allocate a single item in the CRYPTO_EX_DATA variable */
|
||||||
|
int CRYPTO_alloc_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad,
|
||||||
|
int idx);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get/set data in a CRYPTO_EX_DATA variable corresponding to a particular
|
||||||
|
* index (relative to the class type involved)
|
||||||
|
*/
|
||||||
|
int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val);
|
||||||
|
void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx);
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
/*
|
||||||
|
* This function cleans up all "ex_data" state. It mustn't be called under
|
||||||
|
* potential race-conditions.
|
||||||
|
*/
|
||||||
|
# define CRYPTO_cleanup_all_ex_data() while(0) continue
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The old locking functions have been removed completely without compatibility
|
||||||
|
* macros. This is because the old functions either could not properly report
|
||||||
|
* errors, or the returned error values were not clearly documented.
|
||||||
|
* Replacing the locking functions with no-ops would cause race condition
|
||||||
|
* issues in the affected applications. It is far better for them to fail at
|
||||||
|
* compile time.
|
||||||
|
* On the other hand, the locking callbacks are no longer used. Consequently,
|
||||||
|
* the callback management functions can be safely replaced with no-op macros.
|
||||||
|
*/
|
||||||
|
# define CRYPTO_num_locks() (1)
|
||||||
|
# define CRYPTO_set_locking_callback(func)
|
||||||
|
# define CRYPTO_get_locking_callback() (NULL)
|
||||||
|
# define CRYPTO_set_add_lock_callback(func)
|
||||||
|
# define CRYPTO_get_add_lock_callback() (NULL)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* These defines where used in combination with the old locking callbacks,
|
||||||
|
* they are not called anymore, but old code that's not called might still
|
||||||
|
* use them.
|
||||||
|
*/
|
||||||
|
# define CRYPTO_LOCK 1
|
||||||
|
# define CRYPTO_UNLOCK 2
|
||||||
|
# define CRYPTO_READ 4
|
||||||
|
# define CRYPTO_WRITE 8
|
||||||
|
|
||||||
|
/* This structure is no longer used */
|
||||||
|
typedef struct crypto_threadid_st {
|
||||||
|
int dummy;
|
||||||
|
} CRYPTO_THREADID;
|
||||||
|
/* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */
|
||||||
|
# define CRYPTO_THREADID_set_numeric(id, val)
|
||||||
|
# define CRYPTO_THREADID_set_pointer(id, ptr)
|
||||||
|
# define CRYPTO_THREADID_set_callback(threadid_func) (0)
|
||||||
|
# define CRYPTO_THREADID_get_callback() (NULL)
|
||||||
|
# define CRYPTO_THREADID_current(id)
|
||||||
|
# define CRYPTO_THREADID_cmp(a, b) (-1)
|
||||||
|
# define CRYPTO_THREADID_cpy(dest, src)
|
||||||
|
# define CRYPTO_THREADID_hash(id) (0UL)
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_1_0_0
|
||||||
|
# define CRYPTO_set_id_callback(func)
|
||||||
|
# define CRYPTO_get_id_callback() (NULL)
|
||||||
|
# define CRYPTO_thread_id() (0UL)
|
||||||
|
# endif /* OPENSSL_NO_DEPRECATED_1_0_0 */
|
||||||
|
|
||||||
|
# define CRYPTO_set_dynlock_create_callback(dyn_create_function)
|
||||||
|
# define CRYPTO_set_dynlock_lock_callback(dyn_lock_function)
|
||||||
|
# define CRYPTO_set_dynlock_destroy_callback(dyn_destroy_function)
|
||||||
|
# define CRYPTO_get_dynlock_create_callback() (NULL)
|
||||||
|
# define CRYPTO_get_dynlock_lock_callback() (NULL)
|
||||||
|
# define CRYPTO_get_dynlock_destroy_callback() (NULL)
|
||||||
|
# endif /* OPENSSL_NO_DEPRECATED_1_1_0 */
|
||||||
|
|
||||||
|
typedef void *(*CRYPTO_malloc_fn)(size_t num, const char *file, int line);
|
||||||
|
typedef void *(*CRYPTO_realloc_fn)(void *addr, size_t num, const char *file,
|
||||||
|
int line);
|
||||||
|
typedef void (*CRYPTO_free_fn)(void *addr, const char *file, int line);
|
||||||
|
int CRYPTO_set_mem_functions(CRYPTO_malloc_fn malloc_fn,
|
||||||
|
CRYPTO_realloc_fn realloc_fn,
|
||||||
|
CRYPTO_free_fn free_fn);
|
||||||
|
void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn,
|
||||||
|
CRYPTO_realloc_fn *realloc_fn,
|
||||||
|
CRYPTO_free_fn *free_fn);
|
||||||
|
|
||||||
|
OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line);
|
||||||
|
OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line);
|
||||||
|
OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line);
|
||||||
|
OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line);
|
||||||
|
OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line);
|
||||||
|
void CRYPTO_free(void *ptr, const char *file, int line);
|
||||||
|
void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line);
|
||||||
|
void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line);
|
||||||
|
void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num,
|
||||||
|
const char *file, int line);
|
||||||
|
|
||||||
|
int CRYPTO_secure_malloc_init(size_t sz, size_t minsize);
|
||||||
|
int CRYPTO_secure_malloc_done(void);
|
||||||
|
OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line);
|
||||||
|
OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line);
|
||||||
|
void CRYPTO_secure_free(void *ptr, const char *file, int line);
|
||||||
|
void CRYPTO_secure_clear_free(void *ptr, size_t num,
|
||||||
|
const char *file, int line);
|
||||||
|
int CRYPTO_secure_allocated(const void *ptr);
|
||||||
|
int CRYPTO_secure_malloc_initialized(void);
|
||||||
|
size_t CRYPTO_secure_actual_size(void *ptr);
|
||||||
|
size_t CRYPTO_secure_used(void);
|
||||||
|
|
||||||
|
void OPENSSL_cleanse(void *ptr, size_t len);
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_CRYPTO_MDEBUG
|
||||||
|
/*
|
||||||
|
* The following can be used to detect memory leaks in the library. If
|
||||||
|
* used, it turns on malloc checking
|
||||||
|
*/
|
||||||
|
# define CRYPTO_MEM_CHECK_OFF 0x0 /* Control only */
|
||||||
|
# define CRYPTO_MEM_CHECK_ON 0x1 /* Control and mode bit */
|
||||||
|
# define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */
|
||||||
|
# define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */
|
||||||
|
|
||||||
|
void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount);
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# define OPENSSL_mem_debug_push(info) \
|
||||||
|
CRYPTO_mem_debug_push(info, OPENSSL_FILE, OPENSSL_LINE)
|
||||||
|
# define OPENSSL_mem_debug_pop() \
|
||||||
|
CRYPTO_mem_debug_pop()
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
OSSL_DEPRECATEDIN_3_0 int CRYPTO_set_mem_debug(int flag);
|
||||||
|
OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_ctrl(int mode);
|
||||||
|
OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_debug_push(const char *info,
|
||||||
|
const char *file, int line);
|
||||||
|
OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_debug_pop(void);
|
||||||
|
OSSL_DEPRECATEDIN_3_0 void CRYPTO_mem_debug_malloc(void *addr, size_t num,
|
||||||
|
int flag,
|
||||||
|
const char *file, int line);
|
||||||
|
OSSL_DEPRECATEDIN_3_0 void CRYPTO_mem_debug_realloc(void *addr1, void *addr2,
|
||||||
|
size_t num, int flag,
|
||||||
|
const char *file, int line);
|
||||||
|
OSSL_DEPRECATEDIN_3_0 void CRYPTO_mem_debug_free(void *addr, int flag,
|
||||||
|
const char *file, int line);
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
int CRYPTO_mem_leaks_cb(int (*cb)(const char *str, size_t len, void *u),
|
||||||
|
void *u);
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_leaks_fp(FILE *);
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_leaks(BIO *bio);
|
||||||
|
# endif
|
||||||
|
# endif /* OPENSSL_NO_CRYPTO_MDEBUG */
|
||||||
|
|
||||||
|
/* die if we have to */
|
||||||
|
ossl_noreturn void OPENSSL_die(const char *assertion, const char *file, int line);
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
# define OpenSSLDie(f,l,a) OPENSSL_die((a),(f),(l))
|
||||||
|
# endif
|
||||||
|
# define OPENSSL_assert(e) \
|
||||||
|
(void)((e) ? 0 : (OPENSSL_die("assertion failed: " #e, OPENSSL_FILE, OPENSSL_LINE), 1))
|
||||||
|
|
||||||
|
int OPENSSL_isservice(void);
|
||||||
|
|
||||||
|
void OPENSSL_init(void);
|
||||||
|
# ifdef OPENSSL_SYS_UNIX
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
OSSL_DEPRECATEDIN_3_0 void OPENSSL_fork_prepare(void);
|
||||||
|
OSSL_DEPRECATEDIN_3_0 void OPENSSL_fork_parent(void);
|
||||||
|
OSSL_DEPRECATEDIN_3_0 void OPENSSL_fork_child(void);
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result);
|
||||||
|
int OPENSSL_gmtime_adj(struct tm *tm, int offset_day, long offset_sec);
|
||||||
|
int OPENSSL_gmtime_diff(int *pday, int *psec,
|
||||||
|
const struct tm *from, const struct tm *to);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal.
|
||||||
|
* It takes an amount of time dependent on |len|, but independent of the
|
||||||
|
* contents of |a| and |b|. Unlike memcmp, it cannot be used to put elements
|
||||||
|
* into a defined order as the return value when a != b is undefined, other
|
||||||
|
* than to be non-zero.
|
||||||
|
*/
|
||||||
|
int CRYPTO_memcmp(const void * in_a, const void * in_b, size_t len);
|
||||||
|
|
||||||
|
/* Standard initialisation options */
|
||||||
|
# define OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS 0x00000001L
|
||||||
|
# define OPENSSL_INIT_LOAD_CRYPTO_STRINGS 0x00000002L
|
||||||
|
# define OPENSSL_INIT_ADD_ALL_CIPHERS 0x00000004L
|
||||||
|
# define OPENSSL_INIT_ADD_ALL_DIGESTS 0x00000008L
|
||||||
|
# define OPENSSL_INIT_NO_ADD_ALL_CIPHERS 0x00000010L
|
||||||
|
# define OPENSSL_INIT_NO_ADD_ALL_DIGESTS 0x00000020L
|
||||||
|
# define OPENSSL_INIT_LOAD_CONFIG 0x00000040L
|
||||||
|
# define OPENSSL_INIT_NO_LOAD_CONFIG 0x00000080L
|
||||||
|
# define OPENSSL_INIT_ASYNC 0x00000100L
|
||||||
|
# define OPENSSL_INIT_ENGINE_RDRAND 0x00000200L
|
||||||
|
# define OPENSSL_INIT_ENGINE_DYNAMIC 0x00000400L
|
||||||
|
# define OPENSSL_INIT_ENGINE_OPENSSL 0x00000800L
|
||||||
|
# define OPENSSL_INIT_ENGINE_CRYPTODEV 0x00001000L
|
||||||
|
# define OPENSSL_INIT_ENGINE_CAPI 0x00002000L
|
||||||
|
# define OPENSSL_INIT_ENGINE_PADLOCK 0x00004000L
|
||||||
|
# define OPENSSL_INIT_ENGINE_AFALG 0x00008000L
|
||||||
|
/* FREE: 0x00010000L */
|
||||||
|
# define OPENSSL_INIT_ATFORK 0x00020000L
|
||||||
|
/* OPENSSL_INIT_BASE_ONLY 0x00040000L */
|
||||||
|
# define OPENSSL_INIT_NO_ATEXIT 0x00080000L
|
||||||
|
/* OPENSSL_INIT flag range 0x03f00000 reserved for OPENSSL_init_ssl() */
|
||||||
|
/* FREE: 0x04000000L */
|
||||||
|
/* FREE: 0x08000000L */
|
||||||
|
/* FREE: 0x10000000L */
|
||||||
|
/* FREE: 0x20000000L */
|
||||||
|
/* FREE: 0x40000000L */
|
||||||
|
/* FREE: 0x80000000L */
|
||||||
|
/* Max OPENSSL_INIT flag value is 0x80000000 */
|
||||||
|
|
||||||
|
/* openssl and dasync not counted as builtin */
|
||||||
|
# define OPENSSL_INIT_ENGINE_ALL_BUILTIN \
|
||||||
|
(OPENSSL_INIT_ENGINE_RDRAND | OPENSSL_INIT_ENGINE_DYNAMIC \
|
||||||
|
| OPENSSL_INIT_ENGINE_CRYPTODEV | OPENSSL_INIT_ENGINE_CAPI | \
|
||||||
|
OPENSSL_INIT_ENGINE_PADLOCK)
|
||||||
|
|
||||||
|
/* Library initialisation functions */
|
||||||
|
void OPENSSL_cleanup(void);
|
||||||
|
int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
|
||||||
|
int OPENSSL_atexit(void (*handler)(void));
|
||||||
|
void OPENSSL_thread_stop(void);
|
||||||
|
void OPENSSL_thread_stop_ex(OSSL_LIB_CTX *ctx);
|
||||||
|
|
||||||
|
/* Low-level control of initialization */
|
||||||
|
OPENSSL_INIT_SETTINGS *OPENSSL_INIT_new(void);
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings,
|
||||||
|
const char *config_filename);
|
||||||
|
void OPENSSL_INIT_set_config_file_flags(OPENSSL_INIT_SETTINGS *settings,
|
||||||
|
unsigned long flags);
|
||||||
|
int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *settings,
|
||||||
|
const char *config_appname);
|
||||||
|
# endif
|
||||||
|
void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings);
|
||||||
|
|
||||||
|
# if defined(OPENSSL_THREADS) && !defined(CRYPTO_TDEBUG)
|
||||||
|
# if defined(_WIN32)
|
||||||
|
# if defined(BASETYPES) || defined(_WINDEF_H)
|
||||||
|
/* application has to include <windows.h> in order to use this */
|
||||||
|
typedef DWORD CRYPTO_THREAD_LOCAL;
|
||||||
|
typedef DWORD CRYPTO_THREAD_ID;
|
||||||
|
|
||||||
|
typedef LONG CRYPTO_ONCE;
|
||||||
|
# define CRYPTO_ONCE_STATIC_INIT 0
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# if defined(__TANDEM) && defined(_SPT_MODEL_)
|
||||||
|
# define SPT_THREAD_SIGNAL 1
|
||||||
|
# define SPT_THREAD_AWARE 1
|
||||||
|
# include <spthread.h>
|
||||||
|
# else
|
||||||
|
# include <pthread.h>
|
||||||
|
# endif
|
||||||
|
typedef pthread_once_t CRYPTO_ONCE;
|
||||||
|
typedef pthread_key_t CRYPTO_THREAD_LOCAL;
|
||||||
|
typedef pthread_t CRYPTO_THREAD_ID;
|
||||||
|
|
||||||
|
# define CRYPTO_ONCE_STATIC_INIT PTHREAD_ONCE_INIT
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if !defined(CRYPTO_ONCE_STATIC_INIT)
|
||||||
|
typedef unsigned int CRYPTO_ONCE;
|
||||||
|
typedef unsigned int CRYPTO_THREAD_LOCAL;
|
||||||
|
typedef unsigned int CRYPTO_THREAD_ID;
|
||||||
|
# define CRYPTO_ONCE_STATIC_INIT 0
|
||||||
|
# endif
|
||||||
|
|
||||||
|
int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void));
|
||||||
|
|
||||||
|
int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void *));
|
||||||
|
void *CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key);
|
||||||
|
int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val);
|
||||||
|
int CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key);
|
||||||
|
|
||||||
|
CRYPTO_THREAD_ID CRYPTO_THREAD_get_current_id(void);
|
||||||
|
int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b);
|
||||||
|
|
||||||
|
OSSL_LIB_CTX *OSSL_LIB_CTX_new(void);
|
||||||
|
OSSL_LIB_CTX *OSSL_LIB_CTX_new_from_dispatch(const OSSL_CORE_HANDLE *handle,
|
||||||
|
const OSSL_DISPATCH *in);
|
||||||
|
OSSL_LIB_CTX *OSSL_LIB_CTX_new_child(const OSSL_CORE_HANDLE *handle,
|
||||||
|
const OSSL_DISPATCH *in);
|
||||||
|
int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file);
|
||||||
|
void OSSL_LIB_CTX_free(OSSL_LIB_CTX *);
|
||||||
|
OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void);
|
||||||
|
OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
#endif
|
1466
deps/openssl/mingw64/include/openssl/cryptoerr_legacy.h
vendored
Normal file
1466
deps/openssl/mingw64/include/openssl/cryptoerr_legacy.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
525
deps/openssl/mingw64/include/openssl/ct.h.in
vendored
Normal file
525
deps/openssl/mingw64/include/openssl/ct.h.in
vendored
Normal file
@ -0,0 +1,525 @@
|
|||||||
|
/*
|
||||||
|
* {- join("\n * ", @autowarntext) -}
|
||||||
|
*
|
||||||
|
* Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
{-
|
||||||
|
use OpenSSL::stackhash qw(generate_stack_macros);
|
||||||
|
-}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_CT_H
|
||||||
|
# define OPENSSL_CT_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/macros.h>
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# define HEADER_CT_H
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_CT
|
||||||
|
# include <openssl/types.h>
|
||||||
|
# include <openssl/safestack.h>
|
||||||
|
# include <openssl/x509.h>
|
||||||
|
# include <openssl/cterr.h>
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Minimum RSA key size, from RFC6962 */
|
||||||
|
# define SCT_MIN_RSA_BITS 2048
|
||||||
|
|
||||||
|
/* All hashes are SHA256 in v1 of Certificate Transparency */
|
||||||
|
# define CT_V1_HASHLEN SHA256_DIGEST_LENGTH
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_stack_macros("SCT")
|
||||||
|
.generate_stack_macros("CTLOG");
|
||||||
|
-}
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
CT_LOG_ENTRY_TYPE_NOT_SET = -1,
|
||||||
|
CT_LOG_ENTRY_TYPE_X509 = 0,
|
||||||
|
CT_LOG_ENTRY_TYPE_PRECERT = 1
|
||||||
|
} ct_log_entry_type_t;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
SCT_VERSION_NOT_SET = -1,
|
||||||
|
SCT_VERSION_V1 = 0
|
||||||
|
} sct_version_t;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
SCT_SOURCE_UNKNOWN,
|
||||||
|
SCT_SOURCE_TLS_EXTENSION,
|
||||||
|
SCT_SOURCE_X509V3_EXTENSION,
|
||||||
|
SCT_SOURCE_OCSP_STAPLED_RESPONSE
|
||||||
|
} sct_source_t;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
SCT_VALIDATION_STATUS_NOT_SET,
|
||||||
|
SCT_VALIDATION_STATUS_UNKNOWN_LOG,
|
||||||
|
SCT_VALIDATION_STATUS_VALID,
|
||||||
|
SCT_VALIDATION_STATUS_INVALID,
|
||||||
|
SCT_VALIDATION_STATUS_UNVERIFIED,
|
||||||
|
SCT_VALIDATION_STATUS_UNKNOWN_VERSION
|
||||||
|
} sct_validation_status_t;
|
||||||
|
|
||||||
|
/******************************************
|
||||||
|
* CT policy evaluation context functions *
|
||||||
|
******************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Creates a new, empty policy evaluation context associated with the given
|
||||||
|
* library context and property query string.
|
||||||
|
* The caller is responsible for calling CT_POLICY_EVAL_CTX_free when finished
|
||||||
|
* with the CT_POLICY_EVAL_CTX.
|
||||||
|
*/
|
||||||
|
CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx,
|
||||||
|
const char *propq);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The same as CT_POLICY_EVAL_CTX_new_ex() but the default library
|
||||||
|
* context and property query string is used.
|
||||||
|
*/
|
||||||
|
CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new(void);
|
||||||
|
|
||||||
|
/* Deletes a policy evaluation context and anything it owns. */
|
||||||
|
void CT_POLICY_EVAL_CTX_free(CT_POLICY_EVAL_CTX *ctx);
|
||||||
|
|
||||||
|
/* Gets the peer certificate that the SCTs are for */
|
||||||
|
X509* CT_POLICY_EVAL_CTX_get0_cert(const CT_POLICY_EVAL_CTX *ctx);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sets the certificate associated with the received SCTs.
|
||||||
|
* Increments the reference count of cert.
|
||||||
|
* Returns 1 on success, 0 otherwise.
|
||||||
|
*/
|
||||||
|
int CT_POLICY_EVAL_CTX_set1_cert(CT_POLICY_EVAL_CTX *ctx, X509 *cert);
|
||||||
|
|
||||||
|
/* Gets the issuer of the aforementioned certificate */
|
||||||
|
X509* CT_POLICY_EVAL_CTX_get0_issuer(const CT_POLICY_EVAL_CTX *ctx);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sets the issuer of the certificate associated with the received SCTs.
|
||||||
|
* Increments the reference count of issuer.
|
||||||
|
* Returns 1 on success, 0 otherwise.
|
||||||
|
*/
|
||||||
|
int CT_POLICY_EVAL_CTX_set1_issuer(CT_POLICY_EVAL_CTX *ctx, X509 *issuer);
|
||||||
|
|
||||||
|
/* Gets the CT logs that are trusted sources of SCTs */
|
||||||
|
const CTLOG_STORE *CT_POLICY_EVAL_CTX_get0_log_store(const CT_POLICY_EVAL_CTX *ctx);
|
||||||
|
|
||||||
|
/* Sets the log store that is in use. It must outlive the CT_POLICY_EVAL_CTX. */
|
||||||
|
void CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE(CT_POLICY_EVAL_CTX *ctx,
|
||||||
|
CTLOG_STORE *log_store);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Gets the time, in milliseconds since the Unix epoch, that will be used as the
|
||||||
|
* current time when checking whether an SCT was issued in the future.
|
||||||
|
* Such SCTs will fail validation, as required by RFC6962.
|
||||||
|
*/
|
||||||
|
uint64_t CT_POLICY_EVAL_CTX_get_time(const CT_POLICY_EVAL_CTX *ctx);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sets the time to evaluate SCTs against, in milliseconds since the Unix epoch.
|
||||||
|
* If an SCT's timestamp is after this time, it will be interpreted as having
|
||||||
|
* been issued in the future. RFC6962 states that "TLS clients MUST reject SCTs
|
||||||
|
* whose timestamp is in the future", so an SCT will not validate in this case.
|
||||||
|
*/
|
||||||
|
void CT_POLICY_EVAL_CTX_set_time(CT_POLICY_EVAL_CTX *ctx, uint64_t time_in_ms);
|
||||||
|
|
||||||
|
/*****************
|
||||||
|
* SCT functions *
|
||||||
|
*****************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Creates a new, blank SCT.
|
||||||
|
* The caller is responsible for calling SCT_free when finished with the SCT.
|
||||||
|
*/
|
||||||
|
SCT *SCT_new(void);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Creates a new SCT from some base64-encoded strings.
|
||||||
|
* The caller is responsible for calling SCT_free when finished with the 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);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Frees the SCT and the underlying data structures.
|
||||||
|
*/
|
||||||
|
void SCT_free(SCT *sct);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Free a stack of SCTs, and the underlying SCTs themselves.
|
||||||
|
* Intended to be compatible with X509V3_EXT_FREE.
|
||||||
|
*/
|
||||||
|
void SCT_LIST_free(STACK_OF(SCT) *a);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Returns the version of the SCT.
|
||||||
|
*/
|
||||||
|
sct_version_t SCT_get_version(const SCT *sct);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the version of an SCT.
|
||||||
|
* Returns 1 on success, 0 if the version is unrecognized.
|
||||||
|
*/
|
||||||
|
__owur int SCT_set_version(SCT *sct, sct_version_t version);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Returns the log entry type of the SCT.
|
||||||
|
*/
|
||||||
|
ct_log_entry_type_t SCT_get_log_entry_type(const SCT *sct);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the log entry type of an SCT.
|
||||||
|
* Returns 1 on success, 0 otherwise.
|
||||||
|
*/
|
||||||
|
__owur int SCT_set_log_entry_type(SCT *sct, ct_log_entry_type_t entry_type);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Gets the ID of the log that an SCT came from.
|
||||||
|
* Ownership of the log ID remains with the SCT.
|
||||||
|
* Returns the length of the log ID.
|
||||||
|
*/
|
||||||
|
size_t SCT_get0_log_id(const SCT *sct, unsigned char **log_id);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the log ID of an SCT to point directly to the *log_id specified.
|
||||||
|
* The SCT takes ownership of the specified pointer.
|
||||||
|
* Returns 1 on success, 0 otherwise.
|
||||||
|
*/
|
||||||
|
__owur int SCT_set0_log_id(SCT *sct, unsigned char *log_id, size_t log_id_len);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the log ID of an SCT.
|
||||||
|
* This makes a copy of the log_id.
|
||||||
|
* Returns 1 on success, 0 otherwise.
|
||||||
|
*/
|
||||||
|
__owur int SCT_set1_log_id(SCT *sct, const unsigned char *log_id,
|
||||||
|
size_t log_id_len);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Returns the timestamp for the SCT (epoch time in milliseconds).
|
||||||
|
*/
|
||||||
|
uint64_t SCT_get_timestamp(const SCT *sct);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the timestamp of an SCT (epoch time in milliseconds).
|
||||||
|
*/
|
||||||
|
void SCT_set_timestamp(SCT *sct, uint64_t timestamp);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Return the NID for the signature used by the SCT.
|
||||||
|
* For CT v1, this will be either NID_sha256WithRSAEncryption or
|
||||||
|
* NID_ecdsa_with_SHA256 (or NID_undef if incorrect/unset).
|
||||||
|
*/
|
||||||
|
int SCT_get_signature_nid(const SCT *sct);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the signature type of an SCT
|
||||||
|
* For CT v1, this should be either NID_sha256WithRSAEncryption or
|
||||||
|
* NID_ecdsa_with_SHA256.
|
||||||
|
* Returns 1 on success, 0 otherwise.
|
||||||
|
*/
|
||||||
|
__owur int SCT_set_signature_nid(SCT *sct, int nid);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set *ext to point to the extension data for the SCT. ext must not be NULL.
|
||||||
|
* The SCT retains ownership of this pointer.
|
||||||
|
* Returns length of the data pointed to.
|
||||||
|
*/
|
||||||
|
size_t SCT_get0_extensions(const SCT *sct, unsigned char **ext);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the extensions of an SCT to point directly to the *ext specified.
|
||||||
|
* The SCT takes ownership of the specified pointer.
|
||||||
|
*/
|
||||||
|
void SCT_set0_extensions(SCT *sct, unsigned char *ext, size_t ext_len);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the extensions of an SCT.
|
||||||
|
* This takes a copy of the ext.
|
||||||
|
* Returns 1 on success, 0 otherwise.
|
||||||
|
*/
|
||||||
|
__owur int SCT_set1_extensions(SCT *sct, const unsigned char *ext,
|
||||||
|
size_t ext_len);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set *sig to point to the signature for the SCT. sig must not be NULL.
|
||||||
|
* The SCT retains ownership of this pointer.
|
||||||
|
* Returns length of the data pointed to.
|
||||||
|
*/
|
||||||
|
size_t SCT_get0_signature(const SCT *sct, unsigned char **sig);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the signature of an SCT to point directly to the *sig specified.
|
||||||
|
* The SCT takes ownership of the specified pointer.
|
||||||
|
*/
|
||||||
|
void SCT_set0_signature(SCT *sct, unsigned char *sig, size_t sig_len);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the signature of an SCT to be a copy of the *sig specified.
|
||||||
|
* Returns 1 on success, 0 otherwise.
|
||||||
|
*/
|
||||||
|
__owur int SCT_set1_signature(SCT *sct, const unsigned char *sig,
|
||||||
|
size_t sig_len);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The origin of this SCT, e.g. TLS extension, OCSP response, etc.
|
||||||
|
*/
|
||||||
|
sct_source_t SCT_get_source(const SCT *sct);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the origin of this SCT, e.g. TLS extension, OCSP response, etc.
|
||||||
|
* Returns 1 on success, 0 otherwise.
|
||||||
|
*/
|
||||||
|
__owur int SCT_set_source(SCT *sct, sct_source_t source);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Returns a text string describing the validation status of |sct|.
|
||||||
|
*/
|
||||||
|
const char *SCT_validation_status_string(const SCT *sct);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Pretty-prints an |sct| to |out|.
|
||||||
|
* It will be indented by the number of spaces specified by |indent|.
|
||||||
|
* If |logs| is not NULL, it will be used to lookup the CT log that the SCT came
|
||||||
|
* from, so that the log name can be printed.
|
||||||
|
*/
|
||||||
|
void SCT_print(const SCT *sct, BIO *out, int indent, const CTLOG_STORE *logs);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Pretty-prints an |sct_list| to |out|.
|
||||||
|
* It will be indented by the number of spaces specified by |indent|.
|
||||||
|
* SCTs will be delimited by |separator|.
|
||||||
|
* If |logs| is not NULL, it will be used to lookup the CT log that each SCT
|
||||||
|
* came from, so that the log names can be printed.
|
||||||
|
*/
|
||||||
|
void SCT_LIST_print(const STACK_OF(SCT) *sct_list, BIO *out, int indent,
|
||||||
|
const char *separator, const CTLOG_STORE *logs);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Gets the last result of validating this SCT.
|
||||||
|
* If it has not been validated yet, returns SCT_VALIDATION_STATUS_NOT_SET.
|
||||||
|
*/
|
||||||
|
sct_validation_status_t SCT_get_validation_status(const SCT *sct);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Validates the given SCT with the provided context.
|
||||||
|
* Sets the "validation_status" field of the SCT.
|
||||||
|
* Returns 1 if the SCT is valid and the signature verifies.
|
||||||
|
* Returns 0 if the SCT is invalid or could not be verified.
|
||||||
|
* Returns -1 if an error occurs.
|
||||||
|
*/
|
||||||
|
__owur int SCT_validate(SCT *sct, const CT_POLICY_EVAL_CTX *ctx);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Validates the given list of SCTs with the provided context.
|
||||||
|
* Sets the "validation_status" field of each SCT.
|
||||||
|
* Returns 1 if there are no invalid SCTs and all signatures verify.
|
||||||
|
* Returns 0 if at least one SCT is invalid or could not be verified.
|
||||||
|
* Returns a negative integer if an error occurs.
|
||||||
|
*/
|
||||||
|
__owur int SCT_LIST_validate(const STACK_OF(SCT) *scts,
|
||||||
|
CT_POLICY_EVAL_CTX *ctx);
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************
|
||||||
|
* SCT parsing and serialization *
|
||||||
|
*********************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Serialize (to TLS format) a stack of SCTs and return the length.
|
||||||
|
* "a" must not be NULL.
|
||||||
|
* If "pp" is NULL, just return the length of what would have been serialized.
|
||||||
|
* If "pp" is not NULL and "*pp" is null, function will allocate a new pointer
|
||||||
|
* for data that caller is responsible for freeing (only if function returns
|
||||||
|
* successfully).
|
||||||
|
* If "pp" is NULL and "*pp" is not NULL, caller is responsible for ensuring
|
||||||
|
* that "*pp" is large enough to accept all of the serialized data.
|
||||||
|
* Returns < 0 on error, >= 0 indicating bytes written (or would have been)
|
||||||
|
* on success.
|
||||||
|
*/
|
||||||
|
__owur int i2o_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Convert TLS format SCT list to a stack of SCTs.
|
||||||
|
* If "a" or "*a" is NULL, a new stack will be created that the caller is
|
||||||
|
* responsible for freeing (by calling SCT_LIST_free).
|
||||||
|
* "**pp" and "*pp" must not be NULL.
|
||||||
|
* Upon success, "*pp" will point to after the last bytes read, and a stack
|
||||||
|
* will be returned.
|
||||||
|
* Upon failure, a NULL pointer will be returned, and the position of "*pp" is
|
||||||
|
* not defined.
|
||||||
|
*/
|
||||||
|
STACK_OF(SCT) *o2i_SCT_LIST(STACK_OF(SCT) **a, const unsigned char **pp,
|
||||||
|
size_t len);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Serialize (to DER format) a stack of SCTs and return the length.
|
||||||
|
* "a" must not be NULL.
|
||||||
|
* If "pp" is NULL, just returns the length of what would have been serialized.
|
||||||
|
* If "pp" is not NULL and "*pp" is null, function will allocate a new pointer
|
||||||
|
* for data that caller is responsible for freeing (only if function returns
|
||||||
|
* successfully).
|
||||||
|
* If "pp" is NULL and "*pp" is not NULL, caller is responsible for ensuring
|
||||||
|
* that "*pp" is large enough to accept all of the serialized data.
|
||||||
|
* Returns < 0 on error, >= 0 indicating bytes written (or would have been)
|
||||||
|
* on success.
|
||||||
|
*/
|
||||||
|
__owur int i2d_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Parses an SCT list in DER format and returns it.
|
||||||
|
* If "a" or "*a" is NULL, a new stack will be created that the caller is
|
||||||
|
* responsible for freeing (by calling SCT_LIST_free).
|
||||||
|
* "**pp" and "*pp" must not be NULL.
|
||||||
|
* Upon success, "*pp" will point to after the last bytes read, and a stack
|
||||||
|
* will be returned.
|
||||||
|
* Upon failure, a NULL pointer will be returned, and the position of "*pp" is
|
||||||
|
* not defined.
|
||||||
|
*/
|
||||||
|
STACK_OF(SCT) *d2i_SCT_LIST(STACK_OF(SCT) **a, const unsigned char **pp,
|
||||||
|
long len);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Serialize (to TLS format) an |sct| and write it to |out|.
|
||||||
|
* If |out| is null, no SCT will be output but the length will still be returned.
|
||||||
|
* If |out| points to a null pointer, a string will be allocated to hold the
|
||||||
|
* TLS-format SCT. It is the responsibility of the caller to free it.
|
||||||
|
* If |out| points to an allocated string, the TLS-format SCT will be written
|
||||||
|
* to it.
|
||||||
|
* The length of the SCT in TLS format will be returned.
|
||||||
|
*/
|
||||||
|
__owur int i2o_SCT(const SCT *sct, unsigned char **out);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Parses an SCT in TLS format and returns it.
|
||||||
|
* If |psct| is not null, it will end up pointing to the parsed SCT. If it
|
||||||
|
* already points to a non-null pointer, the pointer will be free'd.
|
||||||
|
* |in| should be a pointer to a string containing the TLS-format SCT.
|
||||||
|
* |in| will be advanced to the end of the SCT if parsing succeeds.
|
||||||
|
* |len| should be the length of the SCT in |in|.
|
||||||
|
* Returns NULL if an error occurs.
|
||||||
|
* If the SCT is an unsupported version, only the SCT's 'sct' and 'sct_len'
|
||||||
|
* fields will be populated (with |in| and |len| respectively).
|
||||||
|
*/
|
||||||
|
SCT *o2i_SCT(SCT **psct, const unsigned char **in, size_t len);
|
||||||
|
|
||||||
|
/********************
|
||||||
|
* CT log functions *
|
||||||
|
********************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Creates a new CT log instance with the given |public_key| and |name| and
|
||||||
|
* associates it with the give library context |libctx| and property query
|
||||||
|
* string |propq|.
|
||||||
|
* Takes ownership of |public_key| but copies |name|.
|
||||||
|
* Returns NULL if malloc fails or if |public_key| cannot be converted to DER.
|
||||||
|
* Should be deleted by the caller using CTLOG_free when no longer needed.
|
||||||
|
*/
|
||||||
|
CTLOG *CTLOG_new_ex(EVP_PKEY *public_key, const char *name, OSSL_LIB_CTX *libctx,
|
||||||
|
const char *propq);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The same as CTLOG_new_ex except that the default library context and
|
||||||
|
* property query string are used.
|
||||||
|
*/
|
||||||
|
CTLOG *CTLOG_new(EVP_PKEY *public_key, const char *name);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Creates a new CTLOG instance with the base64-encoded SubjectPublicKeyInfo DER
|
||||||
|
* in |pkey_base64| and associated with the given library context |libctx| and
|
||||||
|
* property query string |propq|. The |name| is a string to help users identify
|
||||||
|
* this log.
|
||||||
|
* Returns 1 on success, 0 on failure.
|
||||||
|
* Should be deleted by the caller using CTLOG_free when no longer needed.
|
||||||
|
*/
|
||||||
|
int CTLOG_new_from_base64_ex(CTLOG **ct_log, const char *pkey_base64,
|
||||||
|
const char *name, OSSL_LIB_CTX *libctx,
|
||||||
|
const char *propq);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The same as CTLOG_new_from_base64_ex() except that the default
|
||||||
|
* library context and property query string are used.
|
||||||
|
* Returns 1 on success, 0 on failure.
|
||||||
|
*/
|
||||||
|
int CTLOG_new_from_base64(CTLOG ** ct_log,
|
||||||
|
const char *pkey_base64, const char *name);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Deletes a CT log instance and its fields.
|
||||||
|
*/
|
||||||
|
void CTLOG_free(CTLOG *log);
|
||||||
|
|
||||||
|
/* Gets the name of the CT log */
|
||||||
|
const char *CTLOG_get0_name(const CTLOG *log);
|
||||||
|
/* Gets the ID of the CT log */
|
||||||
|
void CTLOG_get0_log_id(const CTLOG *log, const uint8_t **log_id,
|
||||||
|
size_t *log_id_len);
|
||||||
|
/* Gets the public key of the CT log */
|
||||||
|
EVP_PKEY *CTLOG_get0_public_key(const CTLOG *log);
|
||||||
|
|
||||||
|
/**************************
|
||||||
|
* CT log store functions *
|
||||||
|
**************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Creates a new CT log store and associates it with the given libctx and
|
||||||
|
* property query string.
|
||||||
|
* Should be deleted by the caller using CTLOG_STORE_free when no longer needed.
|
||||||
|
*/
|
||||||
|
CTLOG_STORE *CTLOG_STORE_new_ex(OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Same as CTLOG_STORE_new_ex except that the default libctx and
|
||||||
|
* property query string are used.
|
||||||
|
* Should be deleted by the caller using CTLOG_STORE_free when no longer needed.
|
||||||
|
*/
|
||||||
|
CTLOG_STORE *CTLOG_STORE_new(void);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Deletes a CT log store and all of the CT log instances held within.
|
||||||
|
*/
|
||||||
|
void CTLOG_STORE_free(CTLOG_STORE *store);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Finds a CT log in the store based on its log ID.
|
||||||
|
* Returns the CT log, or NULL if no match is found.
|
||||||
|
*/
|
||||||
|
const CTLOG *CTLOG_STORE_get0_log_by_id(const CTLOG_STORE *store,
|
||||||
|
const uint8_t *log_id,
|
||||||
|
size_t log_id_len);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Loads a CT log list into a |store| from a |file|.
|
||||||
|
* Returns 1 if loading is successful, or 0 otherwise.
|
||||||
|
*/
|
||||||
|
__owur int CTLOG_STORE_load_file(CTLOG_STORE *store, const char *file);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Loads the default CT log list into a |store|.
|
||||||
|
* Returns 1 if loading is successful, or 0 otherwise.
|
||||||
|
*/
|
||||||
|
__owur int CTLOG_STORE_load_default_file(CTLOG_STORE *store);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
133
deps/openssl/mingw64/include/openssl/decoder.h
vendored
Normal file
133
deps/openssl/mingw64/include/openssl/decoder.h
vendored
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_DECODER_H
|
||||||
|
# define OPENSSL_DECODER_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
# include <stdio.h>
|
||||||
|
# endif
|
||||||
|
# include <stdarg.h>
|
||||||
|
# include <stddef.h>
|
||||||
|
# include <openssl/decodererr.h>
|
||||||
|
# include <openssl/types.h>
|
||||||
|
# include <openssl/core.h>
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
OSSL_DECODER *OSSL_DECODER_fetch(OSSL_LIB_CTX *libctx, const char *name,
|
||||||
|
const char *properties);
|
||||||
|
int OSSL_DECODER_up_ref(OSSL_DECODER *encoder);
|
||||||
|
void OSSL_DECODER_free(OSSL_DECODER *encoder);
|
||||||
|
|
||||||
|
const OSSL_PROVIDER *OSSL_DECODER_get0_provider(const OSSL_DECODER *encoder);
|
||||||
|
const char *OSSL_DECODER_get0_properties(const OSSL_DECODER *encoder);
|
||||||
|
const char *OSSL_DECODER_get0_name(const OSSL_DECODER *decoder);
|
||||||
|
const char *OSSL_DECODER_get0_description(const OSSL_DECODER *decoder);
|
||||||
|
int OSSL_DECODER_is_a(const OSSL_DECODER *encoder, const char *name);
|
||||||
|
|
||||||
|
void OSSL_DECODER_do_all_provided(OSSL_LIB_CTX *libctx,
|
||||||
|
void (*fn)(OSSL_DECODER *encoder, void *arg),
|
||||||
|
void *arg);
|
||||||
|
int OSSL_DECODER_names_do_all(const OSSL_DECODER *encoder,
|
||||||
|
void (*fn)(const char *name, void *data),
|
||||||
|
void *data);
|
||||||
|
const OSSL_PARAM *OSSL_DECODER_gettable_params(OSSL_DECODER *decoder);
|
||||||
|
int OSSL_DECODER_get_params(OSSL_DECODER *decoder, OSSL_PARAM params[]);
|
||||||
|
|
||||||
|
const OSSL_PARAM *OSSL_DECODER_settable_ctx_params(OSSL_DECODER *encoder);
|
||||||
|
OSSL_DECODER_CTX *OSSL_DECODER_CTX_new(void);
|
||||||
|
int OSSL_DECODER_CTX_set_params(OSSL_DECODER_CTX *ctx,
|
||||||
|
const OSSL_PARAM params[]);
|
||||||
|
void OSSL_DECODER_CTX_free(OSSL_DECODER_CTX *ctx);
|
||||||
|
|
||||||
|
/* Utilities that help set specific parameters */
|
||||||
|
int OSSL_DECODER_CTX_set_passphrase(OSSL_DECODER_CTX *ctx,
|
||||||
|
const unsigned char *kstr, size_t klen);
|
||||||
|
int OSSL_DECODER_CTX_set_pem_password_cb(OSSL_DECODER_CTX *ctx,
|
||||||
|
pem_password_cb *cb, void *cbarg);
|
||||||
|
int OSSL_DECODER_CTX_set_passphrase_cb(OSSL_DECODER_CTX *ctx,
|
||||||
|
OSSL_PASSPHRASE_CALLBACK *cb,
|
||||||
|
void *cbarg);
|
||||||
|
int OSSL_DECODER_CTX_set_passphrase_ui(OSSL_DECODER_CTX *ctx,
|
||||||
|
const UI_METHOD *ui_method,
|
||||||
|
void *ui_data);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Utilities to read the object to decode, with the result sent to cb.
|
||||||
|
* These will discover all provided methods
|
||||||
|
*/
|
||||||
|
|
||||||
|
int OSSL_DECODER_CTX_set_selection(OSSL_DECODER_CTX *ctx, int selection);
|
||||||
|
int OSSL_DECODER_CTX_set_input_type(OSSL_DECODER_CTX *ctx,
|
||||||
|
const char *input_type);
|
||||||
|
int OSSL_DECODER_CTX_set_input_structure(OSSL_DECODER_CTX *ctx,
|
||||||
|
const char *input_structure);
|
||||||
|
int OSSL_DECODER_CTX_add_decoder(OSSL_DECODER_CTX *ctx, OSSL_DECODER *decoder);
|
||||||
|
int OSSL_DECODER_CTX_add_extra(OSSL_DECODER_CTX *ctx,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
int OSSL_DECODER_CTX_get_num_decoders(OSSL_DECODER_CTX *ctx);
|
||||||
|
|
||||||
|
typedef struct ossl_decoder_instance_st OSSL_DECODER_INSTANCE;
|
||||||
|
OSSL_DECODER *
|
||||||
|
OSSL_DECODER_INSTANCE_get_decoder(OSSL_DECODER_INSTANCE *decoder_inst);
|
||||||
|
void *
|
||||||
|
OSSL_DECODER_INSTANCE_get_decoder_ctx(OSSL_DECODER_INSTANCE *decoder_inst);
|
||||||
|
const char *
|
||||||
|
OSSL_DECODER_INSTANCE_get_input_type(OSSL_DECODER_INSTANCE *decoder_inst);
|
||||||
|
const char *
|
||||||
|
OSSL_DECODER_INSTANCE_get_input_structure(OSSL_DECODER_INSTANCE *decoder_inst,
|
||||||
|
int *was_set);
|
||||||
|
|
||||||
|
typedef int OSSL_DECODER_CONSTRUCT(OSSL_DECODER_INSTANCE *decoder_inst,
|
||||||
|
const OSSL_PARAM *params,
|
||||||
|
void *construct_data);
|
||||||
|
typedef void OSSL_DECODER_CLEANUP(void *construct_data);
|
||||||
|
|
||||||
|
int OSSL_DECODER_CTX_set_construct(OSSL_DECODER_CTX *ctx,
|
||||||
|
OSSL_DECODER_CONSTRUCT *construct);
|
||||||
|
int OSSL_DECODER_CTX_set_construct_data(OSSL_DECODER_CTX *ctx,
|
||||||
|
void *construct_data);
|
||||||
|
int OSSL_DECODER_CTX_set_cleanup(OSSL_DECODER_CTX *ctx,
|
||||||
|
OSSL_DECODER_CLEANUP *cleanup);
|
||||||
|
OSSL_DECODER_CONSTRUCT *OSSL_DECODER_CTX_get_construct(OSSL_DECODER_CTX *ctx);
|
||||||
|
void *OSSL_DECODER_CTX_get_construct_data(OSSL_DECODER_CTX *ctx);
|
||||||
|
OSSL_DECODER_CLEANUP *OSSL_DECODER_CTX_get_cleanup(OSSL_DECODER_CTX *ctx);
|
||||||
|
|
||||||
|
int OSSL_DECODER_export(OSSL_DECODER_INSTANCE *decoder_inst,
|
||||||
|
void *reference, size_t reference_sz,
|
||||||
|
OSSL_CALLBACK *export_cb, void *export_cbarg);
|
||||||
|
|
||||||
|
int OSSL_DECODER_from_bio(OSSL_DECODER_CTX *ctx, BIO *in);
|
||||||
|
#ifndef OPENSSL_NO_STDIO
|
||||||
|
int OSSL_DECODER_from_fp(OSSL_DECODER_CTX *ctx, FILE *in);
|
||||||
|
#endif
|
||||||
|
int OSSL_DECODER_from_data(OSSL_DECODER_CTX *ctx, const unsigned char **pdata,
|
||||||
|
size_t *pdata_len);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Create the OSSL_DECODER_CTX with an associated type. This will perform
|
||||||
|
* an implicit OSSL_DECODER_fetch(), suitable for the object of that type.
|
||||||
|
*/
|
||||||
|
OSSL_DECODER_CTX *
|
||||||
|
OSSL_DECODER_CTX_new_for_pkey(EVP_PKEY **pkey,
|
||||||
|
const char *input_type,
|
||||||
|
const char *input_struct,
|
||||||
|
const char *keytype, int selection,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propquery);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
#endif
|
28
deps/openssl/mingw64/include/openssl/decodererr.h
vendored
Normal file
28
deps/openssl/mingw64/include/openssl/decodererr.h
vendored
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
* Generated by util/mkerr.pl DO NOT EDIT
|
||||||
|
* Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_DECODERERR_H
|
||||||
|
# define OPENSSL_DECODERERR_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
# include <openssl/symhacks.h>
|
||||||
|
# include <openssl/cryptoerr_legacy.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* OSSL_DECODER reason codes.
|
||||||
|
*/
|
||||||
|
# define OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT 101
|
||||||
|
# define OSSL_DECODER_R_DECODER_NOT_FOUND 102
|
||||||
|
# define OSSL_DECODER_R_MISSING_GET_PARAMS 100
|
||||||
|
|
||||||
|
#endif
|
124
deps/openssl/mingw64/include/openssl/encoder.h
vendored
Normal file
124
deps/openssl/mingw64/include/openssl/encoder.h
vendored
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_ENCODER_H
|
||||||
|
# define OPENSSL_ENCODER_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
# include <stdio.h>
|
||||||
|
# endif
|
||||||
|
# include <stdarg.h>
|
||||||
|
# include <stddef.h>
|
||||||
|
# include <openssl/encodererr.h>
|
||||||
|
# include <openssl/types.h>
|
||||||
|
# include <openssl/core.h>
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
OSSL_ENCODER *OSSL_ENCODER_fetch(OSSL_LIB_CTX *libctx, const char *name,
|
||||||
|
const char *properties);
|
||||||
|
int OSSL_ENCODER_up_ref(OSSL_ENCODER *encoder);
|
||||||
|
void OSSL_ENCODER_free(OSSL_ENCODER *encoder);
|
||||||
|
|
||||||
|
const OSSL_PROVIDER *OSSL_ENCODER_get0_provider(const OSSL_ENCODER *encoder);
|
||||||
|
const char *OSSL_ENCODER_get0_properties(const OSSL_ENCODER *encoder);
|
||||||
|
const char *OSSL_ENCODER_get0_name(const OSSL_ENCODER *kdf);
|
||||||
|
const char *OSSL_ENCODER_get0_description(const OSSL_ENCODER *kdf);
|
||||||
|
int OSSL_ENCODER_is_a(const OSSL_ENCODER *encoder, const char *name);
|
||||||
|
|
||||||
|
void OSSL_ENCODER_do_all_provided(OSSL_LIB_CTX *libctx,
|
||||||
|
void (*fn)(OSSL_ENCODER *encoder, void *arg),
|
||||||
|
void *arg);
|
||||||
|
int OSSL_ENCODER_names_do_all(const OSSL_ENCODER *encoder,
|
||||||
|
void (*fn)(const char *name, void *data),
|
||||||
|
void *data);
|
||||||
|
const OSSL_PARAM *OSSL_ENCODER_gettable_params(OSSL_ENCODER *encoder);
|
||||||
|
int OSSL_ENCODER_get_params(OSSL_ENCODER *encoder, OSSL_PARAM params[]);
|
||||||
|
|
||||||
|
const OSSL_PARAM *OSSL_ENCODER_settable_ctx_params(OSSL_ENCODER *encoder);
|
||||||
|
OSSL_ENCODER_CTX *OSSL_ENCODER_CTX_new(void);
|
||||||
|
int OSSL_ENCODER_CTX_set_params(OSSL_ENCODER_CTX *ctx,
|
||||||
|
const OSSL_PARAM params[]);
|
||||||
|
void OSSL_ENCODER_CTX_free(OSSL_ENCODER_CTX *ctx);
|
||||||
|
|
||||||
|
/* Utilities that help set specific parameters */
|
||||||
|
int OSSL_ENCODER_CTX_set_passphrase(OSSL_ENCODER_CTX *ctx,
|
||||||
|
const unsigned char *kstr, size_t klen);
|
||||||
|
int OSSL_ENCODER_CTX_set_pem_password_cb(OSSL_ENCODER_CTX *ctx,
|
||||||
|
pem_password_cb *cb, void *cbarg);
|
||||||
|
int OSSL_ENCODER_CTX_set_passphrase_cb(OSSL_ENCODER_CTX *ctx,
|
||||||
|
OSSL_PASSPHRASE_CALLBACK *cb,
|
||||||
|
void *cbarg);
|
||||||
|
int OSSL_ENCODER_CTX_set_passphrase_ui(OSSL_ENCODER_CTX *ctx,
|
||||||
|
const UI_METHOD *ui_method,
|
||||||
|
void *ui_data);
|
||||||
|
int OSSL_ENCODER_CTX_set_cipher(OSSL_ENCODER_CTX *ctx,
|
||||||
|
const char *cipher_name,
|
||||||
|
const char *propquery);
|
||||||
|
int OSSL_ENCODER_CTX_set_selection(OSSL_ENCODER_CTX *ctx, int selection);
|
||||||
|
int OSSL_ENCODER_CTX_set_output_type(OSSL_ENCODER_CTX *ctx,
|
||||||
|
const char *output_type);
|
||||||
|
int OSSL_ENCODER_CTX_set_output_structure(OSSL_ENCODER_CTX *ctx,
|
||||||
|
const char *output_structure);
|
||||||
|
|
||||||
|
/* Utilities to add encoders */
|
||||||
|
int OSSL_ENCODER_CTX_add_encoder(OSSL_ENCODER_CTX *ctx, OSSL_ENCODER *encoder);
|
||||||
|
int OSSL_ENCODER_CTX_add_extra(OSSL_ENCODER_CTX *ctx,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
int OSSL_ENCODER_CTX_get_num_encoders(OSSL_ENCODER_CTX *ctx);
|
||||||
|
|
||||||
|
typedef struct ossl_encoder_instance_st OSSL_ENCODER_INSTANCE;
|
||||||
|
OSSL_ENCODER *
|
||||||
|
OSSL_ENCODER_INSTANCE_get_encoder(OSSL_ENCODER_INSTANCE *encoder_inst);
|
||||||
|
void *
|
||||||
|
OSSL_ENCODER_INSTANCE_get_encoder_ctx(OSSL_ENCODER_INSTANCE *encoder_inst);
|
||||||
|
const char *
|
||||||
|
OSSL_ENCODER_INSTANCE_get_output_type(OSSL_ENCODER_INSTANCE *encoder_inst);
|
||||||
|
const char *
|
||||||
|
OSSL_ENCODER_INSTANCE_get_output_structure(OSSL_ENCODER_INSTANCE *encoder_inst);
|
||||||
|
|
||||||
|
typedef const void *OSSL_ENCODER_CONSTRUCT(OSSL_ENCODER_INSTANCE *encoder_inst,
|
||||||
|
void *construct_data);
|
||||||
|
typedef void OSSL_ENCODER_CLEANUP(void *construct_data);
|
||||||
|
|
||||||
|
int OSSL_ENCODER_CTX_set_construct(OSSL_ENCODER_CTX *ctx,
|
||||||
|
OSSL_ENCODER_CONSTRUCT *construct);
|
||||||
|
int OSSL_ENCODER_CTX_set_construct_data(OSSL_ENCODER_CTX *ctx,
|
||||||
|
void *construct_data);
|
||||||
|
int OSSL_ENCODER_CTX_set_cleanup(OSSL_ENCODER_CTX *ctx,
|
||||||
|
OSSL_ENCODER_CLEANUP *cleanup);
|
||||||
|
|
||||||
|
/* Utilities to output the object to encode */
|
||||||
|
int OSSL_ENCODER_to_bio(OSSL_ENCODER_CTX *ctx, BIO *out);
|
||||||
|
#ifndef OPENSSL_NO_STDIO
|
||||||
|
int OSSL_ENCODER_to_fp(OSSL_ENCODER_CTX *ctx, FILE *fp);
|
||||||
|
#endif
|
||||||
|
int OSSL_ENCODER_to_data(OSSL_ENCODER_CTX *ctx, unsigned char **pdata,
|
||||||
|
size_t *pdata_len);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Create the OSSL_ENCODER_CTX with an associated type. This will perform
|
||||||
|
* an implicit OSSL_ENCODER_fetch(), suitable for the object of that type.
|
||||||
|
* This is more useful than calling OSSL_ENCODER_CTX_new().
|
||||||
|
*/
|
||||||
|
OSSL_ENCODER_CTX *OSSL_ENCODER_CTX_new_for_pkey(const EVP_PKEY *pkey,
|
||||||
|
int selection,
|
||||||
|
const char *output_type,
|
||||||
|
const char *output_struct,
|
||||||
|
const char *propquery);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
#endif
|
28
deps/openssl/mingw64/include/openssl/encodererr.h
vendored
Normal file
28
deps/openssl/mingw64/include/openssl/encodererr.h
vendored
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
* Generated by util/mkerr.pl DO NOT EDIT
|
||||||
|
* Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_ENCODERERR_H
|
||||||
|
# define OPENSSL_ENCODERERR_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
# include <openssl/symhacks.h>
|
||||||
|
# include <openssl/cryptoerr_legacy.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* OSSL_ENCODER reason codes.
|
||||||
|
*/
|
||||||
|
# define OSSL_ENCODER_R_ENCODER_NOT_FOUND 101
|
||||||
|
# define OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY 100
|
||||||
|
# define OSSL_ENCODER_R_MISSING_GET_PARAMS 102
|
||||||
|
|
||||||
|
#endif
|
493
deps/openssl/mingw64/include/openssl/err.h.in
vendored
Normal file
493
deps/openssl/mingw64/include/openssl/err.h.in
vendored
Normal file
@ -0,0 +1,493 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
{-
|
||||||
|
use OpenSSL::stackhash qw(generate_lhash_macros);
|
||||||
|
-}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_ERR_H
|
||||||
|
# define OPENSSL_ERR_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/macros.h>
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# define HEADER_ERR_H
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# include <openssl/e_os2.h>
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
# include <stdio.h>
|
||||||
|
# include <stdlib.h>
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# include <openssl/types.h>
|
||||||
|
# include <openssl/bio.h>
|
||||||
|
# include <openssl/lhash.h>
|
||||||
|
# include <openssl/cryptoerr_legacy.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# ifndef OPENSSL_NO_FILENAMES
|
||||||
|
# define ERR_PUT_error(l,f,r,fn,ln) ERR_put_error(l,f,r,fn,ln)
|
||||||
|
# else
|
||||||
|
# define ERR_PUT_error(l,f,r,fn,ln) ERR_put_error(l,f,r,NULL,0)
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# include <limits.h>
|
||||||
|
# include <errno.h>
|
||||||
|
|
||||||
|
# define ERR_TXT_MALLOCED 0x01
|
||||||
|
# define ERR_TXT_STRING 0x02
|
||||||
|
|
||||||
|
# if !defined(OPENSSL_NO_DEPRECATED_3_0) || defined(OSSL_FORCE_ERR_STATE)
|
||||||
|
# define ERR_FLAG_MARK 0x01
|
||||||
|
# define ERR_FLAG_CLEAR 0x02
|
||||||
|
|
||||||
|
# define ERR_NUM_ERRORS 16
|
||||||
|
struct err_state_st {
|
||||||
|
int err_flags[ERR_NUM_ERRORS];
|
||||||
|
int err_marks[ERR_NUM_ERRORS];
|
||||||
|
unsigned long err_buffer[ERR_NUM_ERRORS];
|
||||||
|
char *err_data[ERR_NUM_ERRORS];
|
||||||
|
size_t err_data_size[ERR_NUM_ERRORS];
|
||||||
|
int err_data_flags[ERR_NUM_ERRORS];
|
||||||
|
char *err_file[ERR_NUM_ERRORS];
|
||||||
|
int err_line[ERR_NUM_ERRORS];
|
||||||
|
char *err_func[ERR_NUM_ERRORS];
|
||||||
|
int top, bottom;
|
||||||
|
};
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/* library */
|
||||||
|
# define ERR_LIB_NONE 1
|
||||||
|
# define ERR_LIB_SYS 2
|
||||||
|
# define ERR_LIB_BN 3
|
||||||
|
# define ERR_LIB_RSA 4
|
||||||
|
# define ERR_LIB_DH 5
|
||||||
|
# define ERR_LIB_EVP 6
|
||||||
|
# define ERR_LIB_BUF 7
|
||||||
|
# define ERR_LIB_OBJ 8
|
||||||
|
# define ERR_LIB_PEM 9
|
||||||
|
# define ERR_LIB_DSA 10
|
||||||
|
# define ERR_LIB_X509 11
|
||||||
|
/* #define ERR_LIB_METH 12 */
|
||||||
|
# define ERR_LIB_ASN1 13
|
||||||
|
# define ERR_LIB_CONF 14
|
||||||
|
# define ERR_LIB_CRYPTO 15
|
||||||
|
# define ERR_LIB_EC 16
|
||||||
|
# define ERR_LIB_SSL 20
|
||||||
|
/* #define ERR_LIB_SSL23 21 */
|
||||||
|
/* #define ERR_LIB_SSL2 22 */
|
||||||
|
/* #define ERR_LIB_SSL3 23 */
|
||||||
|
/* #define ERR_LIB_RSAREF 30 */
|
||||||
|
/* #define ERR_LIB_PROXY 31 */
|
||||||
|
# define ERR_LIB_BIO 32
|
||||||
|
# define ERR_LIB_PKCS7 33
|
||||||
|
# define ERR_LIB_X509V3 34
|
||||||
|
# define ERR_LIB_PKCS12 35
|
||||||
|
# define ERR_LIB_RAND 36
|
||||||
|
# define ERR_LIB_DSO 37
|
||||||
|
# define ERR_LIB_ENGINE 38
|
||||||
|
# define ERR_LIB_OCSP 39
|
||||||
|
# define ERR_LIB_UI 40
|
||||||
|
# define ERR_LIB_COMP 41
|
||||||
|
# define ERR_LIB_ECDSA 42
|
||||||
|
# define ERR_LIB_ECDH 43
|
||||||
|
# define ERR_LIB_OSSL_STORE 44
|
||||||
|
# define ERR_LIB_FIPS 45
|
||||||
|
# define ERR_LIB_CMS 46
|
||||||
|
# define ERR_LIB_TS 47
|
||||||
|
# define ERR_LIB_HMAC 48
|
||||||
|
/* # define ERR_LIB_JPAKE 49 */
|
||||||
|
# define ERR_LIB_CT 50
|
||||||
|
# define ERR_LIB_ASYNC 51
|
||||||
|
# define ERR_LIB_KDF 52
|
||||||
|
# define ERR_LIB_SM2 53
|
||||||
|
# define ERR_LIB_ESS 54
|
||||||
|
# define ERR_LIB_PROP 55
|
||||||
|
# define ERR_LIB_CRMF 56
|
||||||
|
# define ERR_LIB_PROV 57
|
||||||
|
# define ERR_LIB_CMP 58
|
||||||
|
# define ERR_LIB_OSSL_ENCODER 59
|
||||||
|
# define ERR_LIB_OSSL_DECODER 60
|
||||||
|
# define ERR_LIB_HTTP 61
|
||||||
|
|
||||||
|
# define ERR_LIB_USER 128
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# define ASN1err(f, r) ERR_raise_data(ERR_LIB_ASN1, (r), NULL)
|
||||||
|
# define ASYNCerr(f, r) ERR_raise_data(ERR_LIB_ASYNC, (r), NULL)
|
||||||
|
# define BIOerr(f, r) ERR_raise_data(ERR_LIB_BIO, (r), NULL)
|
||||||
|
# define BNerr(f, r) ERR_raise_data(ERR_LIB_BN, (r), NULL)
|
||||||
|
# define BUFerr(f, r) ERR_raise_data(ERR_LIB_BUF, (r), NULL)
|
||||||
|
# define CMPerr(f, r) ERR_raise_data(ERR_LIB_CMP, (r), NULL)
|
||||||
|
# define CMSerr(f, r) ERR_raise_data(ERR_LIB_CMS, (r), NULL)
|
||||||
|
# define COMPerr(f, r) ERR_raise_data(ERR_LIB_COMP, (r), NULL)
|
||||||
|
# define CONFerr(f, r) ERR_raise_data(ERR_LIB_CONF, (r), NULL)
|
||||||
|
# define CRMFerr(f, r) ERR_raise_data(ERR_LIB_CRMF, (r), NULL)
|
||||||
|
# define CRYPTOerr(f, r) ERR_raise_data(ERR_LIB_CRYPTO, (r), NULL)
|
||||||
|
# define CTerr(f, r) ERR_raise_data(ERR_LIB_CT, (r), NULL)
|
||||||
|
# define DHerr(f, r) ERR_raise_data(ERR_LIB_DH, (r), NULL)
|
||||||
|
# define DSAerr(f, r) ERR_raise_data(ERR_LIB_DSA, (r), NULL)
|
||||||
|
# define DSOerr(f, r) ERR_raise_data(ERR_LIB_DSO, (r), NULL)
|
||||||
|
# define ECDHerr(f, r) ERR_raise_data(ERR_LIB_ECDH, (r), NULL)
|
||||||
|
# define ECDSAerr(f, r) ERR_raise_data(ERR_LIB_ECDSA, (r), NULL)
|
||||||
|
# define ECerr(f, r) ERR_raise_data(ERR_LIB_EC, (r), NULL)
|
||||||
|
# define ENGINEerr(f, r) ERR_raise_data(ERR_LIB_ENGINE, (r), NULL)
|
||||||
|
# define ESSerr(f, r) ERR_raise_data(ERR_LIB_ESS, (r), NULL)
|
||||||
|
# define EVPerr(f, r) ERR_raise_data(ERR_LIB_EVP, (r), NULL)
|
||||||
|
# define FIPSerr(f, r) ERR_raise_data(ERR_LIB_FIPS, (r), NULL)
|
||||||
|
# define HMACerr(f, r) ERR_raise_data(ERR_LIB_HMAC, (r), NULL)
|
||||||
|
# define HTTPerr(f, r) ERR_raise_data(ERR_LIB_HTTP, (r), NULL)
|
||||||
|
# define KDFerr(f, r) ERR_raise_data(ERR_LIB_KDF, (r), NULL)
|
||||||
|
# define OBJerr(f, r) ERR_raise_data(ERR_LIB_OBJ, (r), NULL)
|
||||||
|
# define OCSPerr(f, r) ERR_raise_data(ERR_LIB_OCSP, (r), NULL)
|
||||||
|
# define OSSL_STOREerr(f, r) ERR_raise_data(ERR_LIB_OSSL_STORE, (r), NULL)
|
||||||
|
# define PEMerr(f, r) ERR_raise_data(ERR_LIB_PEM, (r), NULL)
|
||||||
|
# define PKCS12err(f, r) ERR_raise_data(ERR_LIB_PKCS12, (r), NULL)
|
||||||
|
# define PKCS7err(f, r) ERR_raise_data(ERR_LIB_PKCS7, (r), NULL)
|
||||||
|
# define PROPerr(f, r) ERR_raise_data(ERR_LIB_PROP, (r), NULL)
|
||||||
|
# define PROVerr(f, r) ERR_raise_data(ERR_LIB_PROV, (r), NULL)
|
||||||
|
# define RANDerr(f, r) ERR_raise_data(ERR_LIB_RAND, (r), NULL)
|
||||||
|
# define RSAerr(f, r) ERR_raise_data(ERR_LIB_RSA, (r), NULL)
|
||||||
|
# define KDFerr(f, r) ERR_raise_data(ERR_LIB_KDF, (r), NULL)
|
||||||
|
# define SM2err(f, r) ERR_raise_data(ERR_LIB_SM2, (r), NULL)
|
||||||
|
# define SSLerr(f, r) ERR_raise_data(ERR_LIB_SSL, (r), NULL)
|
||||||
|
# define SYSerr(f, r) ERR_raise_data(ERR_LIB_SYS, (r), NULL)
|
||||||
|
# define TSerr(f, r) ERR_raise_data(ERR_LIB_TS, (r), NULL)
|
||||||
|
# define UIerr(f, r) ERR_raise_data(ERR_LIB_UI, (r), NULL)
|
||||||
|
# define X509V3err(f, r) ERR_raise_data(ERR_LIB_X509V3, (r), NULL)
|
||||||
|
# define X509err(f, r) ERR_raise_data(ERR_LIB_X509, (r), NULL)
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* The error code packs differently depending on if it records a system
|
||||||
|
* error or an OpenSSL error.
|
||||||
|
*
|
||||||
|
* A system error packs like this (we follow POSIX and only allow positive
|
||||||
|
* numbers that fit in an |int|):
|
||||||
|
*
|
||||||
|
* +-+-------------------------------------------------------------+
|
||||||
|
* |1| system error number |
|
||||||
|
* +-+-------------------------------------------------------------+
|
||||||
|
*
|
||||||
|
* An OpenSSL error packs like this:
|
||||||
|
*
|
||||||
|
* <---------------------------- 32 bits -------------------------->
|
||||||
|
* <--- 8 bits ---><------------------ 23 bits ----------------->
|
||||||
|
* +-+---------------+---------------------------------------------+
|
||||||
|
* |0| library | reason |
|
||||||
|
* +-+---------------+---------------------------------------------+
|
||||||
|
*
|
||||||
|
* A few of the reason bits are reserved as flags with special meaning:
|
||||||
|
*
|
||||||
|
* <5 bits-<>--------- 19 bits ----------------->
|
||||||
|
* +-------+-+-----------------------------------+
|
||||||
|
* | rflags| | reason |
|
||||||
|
* +-------+-+-----------------------------------+
|
||||||
|
* ^
|
||||||
|
* |
|
||||||
|
* ERR_RFLAG_FATAL = ERR_R_FATAL
|
||||||
|
*
|
||||||
|
* The reason flags are part of the overall reason code for practical
|
||||||
|
* reasons, as they provide an easy way to place different types of
|
||||||
|
* reason codes in different numeric ranges.
|
||||||
|
*
|
||||||
|
* The currently known reason flags are:
|
||||||
|
*
|
||||||
|
* ERR_RFLAG_FATAL Flags that the reason code is considered fatal.
|
||||||
|
* For backward compatibility reasons, this flag
|
||||||
|
* is also the code for ERR_R_FATAL (that reason
|
||||||
|
* code served the dual purpose of flag and reason
|
||||||
|
* code in one in pre-3.0 OpenSSL).
|
||||||
|
* ERR_RFLAG_COMMON Flags that the reason code is common to all
|
||||||
|
* libraries. All ERR_R_ macros must use this flag,
|
||||||
|
* and no other _R_ macro is allowed to use it.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Macros to help decode recorded system errors */
|
||||||
|
# define ERR_SYSTEM_FLAG ((unsigned int)INT_MAX + 1)
|
||||||
|
# define ERR_SYSTEM_MASK ((unsigned int)INT_MAX)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Macros to help decode recorded OpenSSL errors
|
||||||
|
* As expressed above, RFLAGS and REASON overlap by one bit to allow
|
||||||
|
* ERR_R_FATAL to use ERR_RFLAG_FATAL as its reason code.
|
||||||
|
*/
|
||||||
|
# define ERR_LIB_OFFSET 23L
|
||||||
|
# define ERR_LIB_MASK 0xFF
|
||||||
|
# define ERR_RFLAGS_OFFSET 18L
|
||||||
|
# define ERR_RFLAGS_MASK 0x1F
|
||||||
|
# define ERR_REASON_MASK 0X7FFFFF
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Reason flags are defined pre-shifted to easily combine with the reason
|
||||||
|
* number.
|
||||||
|
*/
|
||||||
|
# define ERR_RFLAG_FATAL (0x1 << ERR_RFLAGS_OFFSET)
|
||||||
|
# define ERR_RFLAG_COMMON (0x2 << ERR_RFLAGS_OFFSET)
|
||||||
|
|
||||||
|
# define ERR_SYSTEM_ERROR(errcode) (((errcode) & ERR_SYSTEM_FLAG) != 0)
|
||||||
|
|
||||||
|
static ossl_unused ossl_inline int ERR_GET_LIB(unsigned long errcode)
|
||||||
|
{
|
||||||
|
if (ERR_SYSTEM_ERROR(errcode))
|
||||||
|
return ERR_LIB_SYS;
|
||||||
|
return (errcode >> ERR_LIB_OFFSET) & ERR_LIB_MASK;
|
||||||
|
}
|
||||||
|
|
||||||
|
static ossl_unused ossl_inline int ERR_GET_RFLAGS(unsigned long errcode)
|
||||||
|
{
|
||||||
|
if (ERR_SYSTEM_ERROR(errcode))
|
||||||
|
return 0;
|
||||||
|
return errcode & (ERR_RFLAGS_MASK << ERR_RFLAGS_OFFSET);
|
||||||
|
}
|
||||||
|
|
||||||
|
static ossl_unused ossl_inline int ERR_GET_REASON(unsigned long errcode)
|
||||||
|
{
|
||||||
|
if (ERR_SYSTEM_ERROR(errcode))
|
||||||
|
return errcode & ERR_SYSTEM_MASK;
|
||||||
|
return errcode & ERR_REASON_MASK;
|
||||||
|
}
|
||||||
|
|
||||||
|
static ossl_unused ossl_inline int ERR_FATAL_ERROR(unsigned long errcode)
|
||||||
|
{
|
||||||
|
return (ERR_GET_RFLAGS(errcode) & ERR_RFLAG_FATAL) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static ossl_unused ossl_inline int ERR_COMMON_ERROR(unsigned long errcode)
|
||||||
|
{
|
||||||
|
return (ERR_GET_RFLAGS(errcode) & ERR_RFLAG_COMMON) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ERR_PACK is a helper macro to properly pack OpenSSL error codes and may
|
||||||
|
* only be used for that purpose. System errors are packed internally.
|
||||||
|
* ERR_PACK takes reason flags and reason code combined in |reason|.
|
||||||
|
* ERR_PACK ignores |func|, that parameter is just legacy from pre-3.0 OpenSSL.
|
||||||
|
*/
|
||||||
|
# define ERR_PACK(lib,func,reason) \
|
||||||
|
( (((unsigned long)(lib) & ERR_LIB_MASK ) << ERR_LIB_OFFSET) | \
|
||||||
|
(((unsigned long)(reason) & ERR_REASON_MASK)) )
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# define SYS_F_FOPEN 0
|
||||||
|
# define SYS_F_CONNECT 0
|
||||||
|
# define SYS_F_GETSERVBYNAME 0
|
||||||
|
# define SYS_F_SOCKET 0
|
||||||
|
# define SYS_F_IOCTLSOCKET 0
|
||||||
|
# define SYS_F_BIND 0
|
||||||
|
# define SYS_F_LISTEN 0
|
||||||
|
# define SYS_F_ACCEPT 0
|
||||||
|
# define SYS_F_WSASTARTUP 0
|
||||||
|
# define SYS_F_OPENDIR 0
|
||||||
|
# define SYS_F_FREAD 0
|
||||||
|
# define SYS_F_GETADDRINFO 0
|
||||||
|
# define SYS_F_GETNAMEINFO 0
|
||||||
|
# define SYS_F_SETSOCKOPT 0
|
||||||
|
# define SYS_F_GETSOCKOPT 0
|
||||||
|
# define SYS_F_GETSOCKNAME 0
|
||||||
|
# define SYS_F_GETHOSTBYNAME 0
|
||||||
|
# define SYS_F_FFLUSH 0
|
||||||
|
# define SYS_F_OPEN 0
|
||||||
|
# define SYS_F_CLOSE 0
|
||||||
|
# define SYS_F_IOCTL 0
|
||||||
|
# define SYS_F_STAT 0
|
||||||
|
# define SYS_F_FCNTL 0
|
||||||
|
# define SYS_F_FSTAT 0
|
||||||
|
# define SYS_F_SENDFILE 0
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* All ERR_R_ codes must be combined with ERR_RFLAG_COMMON.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* "we came from here" global reason codes, range 1..255 */
|
||||||
|
# define ERR_R_SYS_LIB (ERR_LIB_SYS/* 2 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_BN_LIB (ERR_LIB_BN/* 3 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_RSA_LIB (ERR_LIB_RSA/* 4 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_DH_LIB (ERR_LIB_DH/* 5 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_EVP_LIB (ERR_LIB_EVP/* 6 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_BUF_LIB (ERR_LIB_BUF/* 7 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_OBJ_LIB (ERR_LIB_OBJ/* 8 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_PEM_LIB (ERR_LIB_PEM/* 9 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_DSA_LIB (ERR_LIB_DSA/* 10 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_X509_LIB (ERR_LIB_X509/* 11 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_ASN1_LIB (ERR_LIB_ASN1/* 13 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_CONF_LIB (ERR_LIB_CONF/* 14 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_CRYPTO_LIB (ERR_LIB_CRYPTO/* 15 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_EC_LIB (ERR_LIB_EC/* 16 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_SSL_LIB (ERR_LIB_SSL/* 20 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_BIO_LIB (ERR_LIB_BIO/* 32 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_PKCS7_LIB (ERR_LIB_PKCS7/* 33 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_X509V3_LIB (ERR_LIB_X509V3/* 34 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_PKCS12_LIB (ERR_LIB_PKCS12/* 35 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_RAND_LIB (ERR_LIB_RAND/* 36 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_DSO_LIB (ERR_LIB_DSO/* 37 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_ENGINE_LIB (ERR_LIB_ENGINE/* 38 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_UI_LIB (ERR_LIB_UI/* 40 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_ECDSA_LIB (ERR_LIB_ECDSA/* 42 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_OSSL_STORE_LIB (ERR_LIB_OSSL_STORE/* 44 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_CMS_LIB (ERR_LIB_CMS/* 46 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_TS_LIB (ERR_LIB_TS/* 47 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_CT_LIB (ERR_LIB_CT/* 50 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_PROV_LIB (ERR_LIB_PROV/* 57 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_ESS_LIB (ERR_LIB_ESS/* 54 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_CMP_LIB (ERR_LIB_CMP/* 58 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_OSSL_ENCODER_LIB (ERR_LIB_OSSL_ENCODER/* 59 */ | ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_OSSL_DECODER_LIB (ERR_LIB_OSSL_DECODER/* 60 */ | ERR_RFLAG_COMMON)
|
||||||
|
|
||||||
|
/* Other common error codes, range 256..2^ERR_RFLAGS_OFFSET-1 */
|
||||||
|
# define ERR_R_FATAL (ERR_RFLAG_FATAL|ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_MALLOC_FAILURE (256|ERR_R_FATAL)
|
||||||
|
# define ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED (257|ERR_R_FATAL)
|
||||||
|
# define ERR_R_PASSED_NULL_PARAMETER (258|ERR_R_FATAL)
|
||||||
|
# define ERR_R_INTERNAL_ERROR (259|ERR_R_FATAL)
|
||||||
|
# define ERR_R_DISABLED (260|ERR_R_FATAL)
|
||||||
|
# define ERR_R_INIT_FAIL (261|ERR_R_FATAL)
|
||||||
|
# define ERR_R_PASSED_INVALID_ARGUMENT (262|ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_OPERATION_FAIL (263|ERR_R_FATAL)
|
||||||
|
# define ERR_R_INVALID_PROVIDER_FUNCTIONS (264|ERR_R_FATAL)
|
||||||
|
# define ERR_R_INTERRUPTED_OR_CANCELLED (265|ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_NESTED_ASN1_ERROR (266|ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_MISSING_ASN1_EOS (267|ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_UNSUPPORTED (268|ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_FETCH_FAILED (269|ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_INVALID_PROPERTY_DEFINITION (270|ERR_RFLAG_COMMON)
|
||||||
|
# define ERR_R_UNABLE_TO_GET_READ_LOCK (271|ERR_R_FATAL)
|
||||||
|
# define ERR_R_UNABLE_TO_GET_WRITE_LOCK (272|ERR_R_FATAL)
|
||||||
|
|
||||||
|
typedef struct ERR_string_data_st {
|
||||||
|
unsigned long error;
|
||||||
|
const char *string;
|
||||||
|
} ERR_STRING_DATA;
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_lhash_macros("ERR_STRING_DATA");
|
||||||
|
-}
|
||||||
|
|
||||||
|
/* 12 lines and some on an 80 column terminal */
|
||||||
|
#define ERR_MAX_DATA_SIZE 1024
|
||||||
|
|
||||||
|
/* Building blocks */
|
||||||
|
void ERR_new(void);
|
||||||
|
void ERR_set_debug(const char *file, int line, const char *func);
|
||||||
|
void ERR_set_error(int lib, int reason, const char *fmt, ...);
|
||||||
|
void ERR_vset_error(int lib, int reason, const char *fmt, va_list args);
|
||||||
|
|
||||||
|
/* Main error raising functions */
|
||||||
|
# define ERR_raise(lib, reason) ERR_raise_data((lib),(reason),NULL)
|
||||||
|
# define ERR_raise_data \
|
||||||
|
(ERR_new(), \
|
||||||
|
ERR_set_debug(OPENSSL_FILE,OPENSSL_LINE,OPENSSL_FUNC), \
|
||||||
|
ERR_set_error)
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
/* Backward compatibility */
|
||||||
|
# define ERR_put_error(lib, func, reason, file, line) \
|
||||||
|
(ERR_new(), \
|
||||||
|
ERR_set_debug((file), (line), OPENSSL_FUNC), \
|
||||||
|
ERR_set_error((lib), (reason), NULL))
|
||||||
|
# endif
|
||||||
|
|
||||||
|
void ERR_set_error_data(char *data, int flags);
|
||||||
|
|
||||||
|
unsigned long ERR_get_error(void);
|
||||||
|
unsigned long ERR_get_error_all(const char **file, int *line,
|
||||||
|
const char **func,
|
||||||
|
const char **data, int *flags);
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
unsigned long ERR_get_error_line(const char **file, int *line);
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
unsigned long ERR_get_error_line_data(const char **file, int *line,
|
||||||
|
const char **data, int *flags);
|
||||||
|
#endif
|
||||||
|
unsigned long ERR_peek_error(void);
|
||||||
|
unsigned long ERR_peek_error_line(const char **file, int *line);
|
||||||
|
unsigned long ERR_peek_error_func(const char **func);
|
||||||
|
unsigned long ERR_peek_error_data(const char **data, int *flags);
|
||||||
|
unsigned long ERR_peek_error_all(const char **file, int *line,
|
||||||
|
const char **func,
|
||||||
|
const char **data, int *flags);
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
unsigned long ERR_peek_error_line_data(const char **file, int *line,
|
||||||
|
const char **data, int *flags);
|
||||||
|
# endif
|
||||||
|
unsigned long ERR_peek_last_error(void);
|
||||||
|
unsigned long ERR_peek_last_error_line(const char **file, int *line);
|
||||||
|
unsigned long ERR_peek_last_error_func(const char **func);
|
||||||
|
unsigned long ERR_peek_last_error_data(const char **data, int *flags);
|
||||||
|
unsigned long ERR_peek_last_error_all(const char **file, int *line,
|
||||||
|
const char **func,
|
||||||
|
const char **data, int *flags);
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
unsigned long ERR_peek_last_error_line_data(const char **file, int *line,
|
||||||
|
const char **data, int *flags);
|
||||||
|
# endif
|
||||||
|
|
||||||
|
void ERR_clear_error(void);
|
||||||
|
|
||||||
|
char *ERR_error_string(unsigned long e, char *buf);
|
||||||
|
void ERR_error_string_n(unsigned long e, char *buf, size_t len);
|
||||||
|
const char *ERR_lib_error_string(unsigned long e);
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
OSSL_DEPRECATEDIN_3_0 const char *ERR_func_error_string(unsigned long e);
|
||||||
|
# endif
|
||||||
|
const char *ERR_reason_error_string(unsigned long e);
|
||||||
|
|
||||||
|
void ERR_print_errors_cb(int (*cb) (const char *str, size_t len, void *u),
|
||||||
|
void *u);
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
void ERR_print_errors_fp(FILE *fp);
|
||||||
|
# endif
|
||||||
|
void ERR_print_errors(BIO *bp);
|
||||||
|
|
||||||
|
void ERR_add_error_data(int num, ...);
|
||||||
|
void ERR_add_error_vdata(int num, va_list args);
|
||||||
|
void ERR_add_error_txt(const char *sepr, const char *txt);
|
||||||
|
void ERR_add_error_mem_bio(const char *sep, BIO *bio);
|
||||||
|
|
||||||
|
int ERR_load_strings(int lib, ERR_STRING_DATA *str);
|
||||||
|
int ERR_load_strings_const(const ERR_STRING_DATA *str);
|
||||||
|
int ERR_unload_strings(int lib, ERR_STRING_DATA *str);
|
||||||
|
|
||||||
|
#ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
# define ERR_load_crypto_strings() \
|
||||||
|
OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL)
|
||||||
|
# define ERR_free_strings() while(0) continue
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
OSSL_DEPRECATEDIN_1_1_0 void ERR_remove_thread_state(void *);
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_DEPRECATED_1_0_0
|
||||||
|
OSSL_DEPRECATEDIN_1_0_0 void ERR_remove_state(unsigned long pid);
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
OSSL_DEPRECATEDIN_3_0 ERR_STATE *ERR_get_state(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int ERR_get_next_error_library(void);
|
||||||
|
|
||||||
|
int ERR_set_mark(void);
|
||||||
|
int ERR_pop_to_mark(void);
|
||||||
|
int ERR_clear_last_mark(void);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
128
deps/openssl/mingw64/include/openssl/ess.h
vendored
Normal file
128
deps/openssl/mingw64/include/openssl/ess.h
vendored
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
/*
|
||||||
|
* WARNING: do not edit!
|
||||||
|
* Generated by Makefile from include/openssl/ess.h.in
|
||||||
|
*
|
||||||
|
* Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef OPENSSL_ESS_H
|
||||||
|
# define OPENSSL_ESS_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
|
||||||
|
# include <openssl/safestack.h>
|
||||||
|
# include <openssl/x509.h>
|
||||||
|
# include <openssl/esserr.h>
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct ESS_issuer_serial ESS_ISSUER_SERIAL;
|
||||||
|
typedef struct ESS_cert_id ESS_CERT_ID;
|
||||||
|
typedef struct ESS_signing_cert ESS_SIGNING_CERT;
|
||||||
|
|
||||||
|
SKM_DEFINE_STACK_OF_INTERNAL(ESS_CERT_ID, ESS_CERT_ID, ESS_CERT_ID)
|
||||||
|
#define sk_ESS_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_ESS_CERT_ID_sk_type(sk))
|
||||||
|
#define sk_ESS_CERT_ID_value(sk, idx) ((ESS_CERT_ID *)OPENSSL_sk_value(ossl_check_const_ESS_CERT_ID_sk_type(sk), (idx)))
|
||||||
|
#define sk_ESS_CERT_ID_new(cmp) ((STACK_OF(ESS_CERT_ID) *)OPENSSL_sk_new(ossl_check_ESS_CERT_ID_compfunc_type(cmp)))
|
||||||
|
#define sk_ESS_CERT_ID_new_null() ((STACK_OF(ESS_CERT_ID) *)OPENSSL_sk_new_null())
|
||||||
|
#define sk_ESS_CERT_ID_new_reserve(cmp, n) ((STACK_OF(ESS_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_ESS_CERT_ID_compfunc_type(cmp), (n)))
|
||||||
|
#define sk_ESS_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ESS_CERT_ID_sk_type(sk), (n))
|
||||||
|
#define sk_ESS_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_ESS_CERT_ID_sk_type(sk))
|
||||||
|
#define sk_ESS_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_ESS_CERT_ID_sk_type(sk))
|
||||||
|
#define sk_ESS_CERT_ID_delete(sk, i) ((ESS_CERT_ID *)OPENSSL_sk_delete(ossl_check_ESS_CERT_ID_sk_type(sk), (i)))
|
||||||
|
#define sk_ESS_CERT_ID_delete_ptr(sk, ptr) ((ESS_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr)))
|
||||||
|
#define sk_ESS_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr))
|
||||||
|
#define sk_ESS_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr))
|
||||||
|
#define sk_ESS_CERT_ID_pop(sk) ((ESS_CERT_ID *)OPENSSL_sk_pop(ossl_check_ESS_CERT_ID_sk_type(sk)))
|
||||||
|
#define sk_ESS_CERT_ID_shift(sk) ((ESS_CERT_ID *)OPENSSL_sk_shift(ossl_check_ESS_CERT_ID_sk_type(sk)))
|
||||||
|
#define sk_ESS_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ESS_CERT_ID_sk_type(sk),ossl_check_ESS_CERT_ID_freefunc_type(freefunc))
|
||||||
|
#define sk_ESS_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr), (idx))
|
||||||
|
#define sk_ESS_CERT_ID_set(sk, idx, ptr) ((ESS_CERT_ID *)OPENSSL_sk_set(ossl_check_ESS_CERT_ID_sk_type(sk), (idx), ossl_check_ESS_CERT_ID_type(ptr)))
|
||||||
|
#define sk_ESS_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr))
|
||||||
|
#define sk_ESS_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr))
|
||||||
|
#define sk_ESS_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr), pnum)
|
||||||
|
#define sk_ESS_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_ESS_CERT_ID_sk_type(sk))
|
||||||
|
#define sk_ESS_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ESS_CERT_ID_sk_type(sk))
|
||||||
|
#define sk_ESS_CERT_ID_dup(sk) ((STACK_OF(ESS_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_ESS_CERT_ID_sk_type(sk)))
|
||||||
|
#define sk_ESS_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ESS_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_copyfunc_type(copyfunc), ossl_check_ESS_CERT_ID_freefunc_type(freefunc)))
|
||||||
|
#define sk_ESS_CERT_ID_set_cmp_func(sk, cmp) ((sk_ESS_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_compfunc_type(cmp)))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct ESS_signing_cert_v2_st ESS_SIGNING_CERT_V2;
|
||||||
|
typedef struct ESS_cert_id_v2_st ESS_CERT_ID_V2;
|
||||||
|
|
||||||
|
SKM_DEFINE_STACK_OF_INTERNAL(ESS_CERT_ID_V2, ESS_CERT_ID_V2, ESS_CERT_ID_V2)
|
||||||
|
#define sk_ESS_CERT_ID_V2_num(sk) OPENSSL_sk_num(ossl_check_const_ESS_CERT_ID_V2_sk_type(sk))
|
||||||
|
#define sk_ESS_CERT_ID_V2_value(sk, idx) ((ESS_CERT_ID_V2 *)OPENSSL_sk_value(ossl_check_const_ESS_CERT_ID_V2_sk_type(sk), (idx)))
|
||||||
|
#define sk_ESS_CERT_ID_V2_new(cmp) ((STACK_OF(ESS_CERT_ID_V2) *)OPENSSL_sk_new(ossl_check_ESS_CERT_ID_V2_compfunc_type(cmp)))
|
||||||
|
#define sk_ESS_CERT_ID_V2_new_null() ((STACK_OF(ESS_CERT_ID_V2) *)OPENSSL_sk_new_null())
|
||||||
|
#define sk_ESS_CERT_ID_V2_new_reserve(cmp, n) ((STACK_OF(ESS_CERT_ID_V2) *)OPENSSL_sk_new_reserve(ossl_check_ESS_CERT_ID_V2_compfunc_type(cmp), (n)))
|
||||||
|
#define sk_ESS_CERT_ID_V2_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ESS_CERT_ID_V2_sk_type(sk), (n))
|
||||||
|
#define sk_ESS_CERT_ID_V2_free(sk) OPENSSL_sk_free(ossl_check_ESS_CERT_ID_V2_sk_type(sk))
|
||||||
|
#define sk_ESS_CERT_ID_V2_zero(sk) OPENSSL_sk_zero(ossl_check_ESS_CERT_ID_V2_sk_type(sk))
|
||||||
|
#define sk_ESS_CERT_ID_V2_delete(sk, i) ((ESS_CERT_ID_V2 *)OPENSSL_sk_delete(ossl_check_ESS_CERT_ID_V2_sk_type(sk), (i)))
|
||||||
|
#define sk_ESS_CERT_ID_V2_delete_ptr(sk, ptr) ((ESS_CERT_ID_V2 *)OPENSSL_sk_delete_ptr(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr)))
|
||||||
|
#define sk_ESS_CERT_ID_V2_push(sk, ptr) OPENSSL_sk_push(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr))
|
||||||
|
#define sk_ESS_CERT_ID_V2_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr))
|
||||||
|
#define sk_ESS_CERT_ID_V2_pop(sk) ((ESS_CERT_ID_V2 *)OPENSSL_sk_pop(ossl_check_ESS_CERT_ID_V2_sk_type(sk)))
|
||||||
|
#define sk_ESS_CERT_ID_V2_shift(sk) ((ESS_CERT_ID_V2 *)OPENSSL_sk_shift(ossl_check_ESS_CERT_ID_V2_sk_type(sk)))
|
||||||
|
#define sk_ESS_CERT_ID_V2_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ESS_CERT_ID_V2_sk_type(sk),ossl_check_ESS_CERT_ID_V2_freefunc_type(freefunc))
|
||||||
|
#define sk_ESS_CERT_ID_V2_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr), (idx))
|
||||||
|
#define sk_ESS_CERT_ID_V2_set(sk, idx, ptr) ((ESS_CERT_ID_V2 *)OPENSSL_sk_set(ossl_check_ESS_CERT_ID_V2_sk_type(sk), (idx), ossl_check_ESS_CERT_ID_V2_type(ptr)))
|
||||||
|
#define sk_ESS_CERT_ID_V2_find(sk, ptr) OPENSSL_sk_find(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr))
|
||||||
|
#define sk_ESS_CERT_ID_V2_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr))
|
||||||
|
#define sk_ESS_CERT_ID_V2_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr), pnum)
|
||||||
|
#define sk_ESS_CERT_ID_V2_sort(sk) OPENSSL_sk_sort(ossl_check_ESS_CERT_ID_V2_sk_type(sk))
|
||||||
|
#define sk_ESS_CERT_ID_V2_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ESS_CERT_ID_V2_sk_type(sk))
|
||||||
|
#define sk_ESS_CERT_ID_V2_dup(sk) ((STACK_OF(ESS_CERT_ID_V2) *)OPENSSL_sk_dup(ossl_check_const_ESS_CERT_ID_V2_sk_type(sk)))
|
||||||
|
#define sk_ESS_CERT_ID_V2_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ESS_CERT_ID_V2) *)OPENSSL_sk_deep_copy(ossl_check_const_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_copyfunc_type(copyfunc), ossl_check_ESS_CERT_ID_V2_freefunc_type(freefunc)))
|
||||||
|
#define sk_ESS_CERT_ID_V2_set_cmp_func(sk, cmp) ((sk_ESS_CERT_ID_V2_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_compfunc_type(cmp)))
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE_ASN1_ALLOC_FUNCTIONS(ESS_ISSUER_SERIAL)
|
||||||
|
DECLARE_ASN1_ENCODE_FUNCTIONS_only(ESS_ISSUER_SERIAL, ESS_ISSUER_SERIAL)
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(ESS_ISSUER_SERIAL)
|
||||||
|
|
||||||
|
DECLARE_ASN1_ALLOC_FUNCTIONS(ESS_CERT_ID)
|
||||||
|
DECLARE_ASN1_ENCODE_FUNCTIONS_only(ESS_CERT_ID, ESS_CERT_ID)
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(ESS_CERT_ID)
|
||||||
|
|
||||||
|
DECLARE_ASN1_FUNCTIONS(ESS_SIGNING_CERT)
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(ESS_SIGNING_CERT)
|
||||||
|
|
||||||
|
DECLARE_ASN1_ALLOC_FUNCTIONS(ESS_CERT_ID_V2)
|
||||||
|
DECLARE_ASN1_ENCODE_FUNCTIONS_only(ESS_CERT_ID_V2, ESS_CERT_ID_V2)
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(ESS_CERT_ID_V2)
|
||||||
|
|
||||||
|
DECLARE_ASN1_FUNCTIONS(ESS_SIGNING_CERT_V2)
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(ESS_SIGNING_CERT_V2)
|
||||||
|
|
||||||
|
ESS_SIGNING_CERT *OSSL_ESS_signing_cert_new_init(const X509 *signcert,
|
||||||
|
const STACK_OF(X509) *certs,
|
||||||
|
int set_issuer_serial);
|
||||||
|
ESS_SIGNING_CERT_V2 *OSSL_ESS_signing_cert_v2_new_init(const EVP_MD *hash_alg,
|
||||||
|
const X509 *signcert,
|
||||||
|
const
|
||||||
|
STACK_OF(X509) *certs,
|
||||||
|
int set_issuer_serial);
|
||||||
|
int OSSL_ESS_check_signing_certs(const ESS_SIGNING_CERT *ss,
|
||||||
|
const ESS_SIGNING_CERT_V2 *ssv2,
|
||||||
|
const STACK_OF(X509) *chain,
|
||||||
|
int require_signing_cert);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
#endif
|
81
deps/openssl/mingw64/include/openssl/ess.h.in
vendored
Normal file
81
deps/openssl/mingw64/include/openssl/ess.h.in
vendored
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
/*
|
||||||
|
* {- join("\n * ", @autowarntext) -}
|
||||||
|
*
|
||||||
|
* Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
{-
|
||||||
|
use OpenSSL::stackhash qw(generate_stack_macros);
|
||||||
|
-}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_ESS_H
|
||||||
|
# define OPENSSL_ESS_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
|
||||||
|
# include <openssl/safestack.h>
|
||||||
|
# include <openssl/x509.h>
|
||||||
|
# include <openssl/esserr.h>
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct ESS_issuer_serial ESS_ISSUER_SERIAL;
|
||||||
|
typedef struct ESS_cert_id ESS_CERT_ID;
|
||||||
|
typedef struct ESS_signing_cert ESS_SIGNING_CERT;
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_stack_macros("ESS_CERT_ID");
|
||||||
|
-}
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct ESS_signing_cert_v2_st ESS_SIGNING_CERT_V2;
|
||||||
|
typedef struct ESS_cert_id_v2_st ESS_CERT_ID_V2;
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_stack_macros("ESS_CERT_ID_V2");
|
||||||
|
-}
|
||||||
|
|
||||||
|
DECLARE_ASN1_ALLOC_FUNCTIONS(ESS_ISSUER_SERIAL)
|
||||||
|
DECLARE_ASN1_ENCODE_FUNCTIONS_only(ESS_ISSUER_SERIAL, ESS_ISSUER_SERIAL)
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(ESS_ISSUER_SERIAL)
|
||||||
|
|
||||||
|
DECLARE_ASN1_ALLOC_FUNCTIONS(ESS_CERT_ID)
|
||||||
|
DECLARE_ASN1_ENCODE_FUNCTIONS_only(ESS_CERT_ID, ESS_CERT_ID)
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(ESS_CERT_ID)
|
||||||
|
|
||||||
|
DECLARE_ASN1_FUNCTIONS(ESS_SIGNING_CERT)
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(ESS_SIGNING_CERT)
|
||||||
|
|
||||||
|
DECLARE_ASN1_ALLOC_FUNCTIONS(ESS_CERT_ID_V2)
|
||||||
|
DECLARE_ASN1_ENCODE_FUNCTIONS_only(ESS_CERT_ID_V2, ESS_CERT_ID_V2)
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(ESS_CERT_ID_V2)
|
||||||
|
|
||||||
|
DECLARE_ASN1_FUNCTIONS(ESS_SIGNING_CERT_V2)
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(ESS_SIGNING_CERT_V2)
|
||||||
|
|
||||||
|
ESS_SIGNING_CERT *OSSL_ESS_signing_cert_new_init(const X509 *signcert,
|
||||||
|
const STACK_OF(X509) *certs,
|
||||||
|
int set_issuer_serial);
|
||||||
|
ESS_SIGNING_CERT_V2 *OSSL_ESS_signing_cert_v2_new_init(const EVP_MD *hash_alg,
|
||||||
|
const X509 *signcert,
|
||||||
|
const
|
||||||
|
STACK_OF(X509) *certs,
|
||||||
|
int set_issuer_serial);
|
||||||
|
int OSSL_ESS_check_signing_certs(const ESS_SIGNING_CERT *ss,
|
||||||
|
const ESS_SIGNING_CERT_V2 *ssv2,
|
||||||
|
const STACK_OF(X509) *chain,
|
||||||
|
int require_signing_cert);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
#endif
|
32
deps/openssl/mingw64/include/openssl/esserr.h
vendored
Normal file
32
deps/openssl/mingw64/include/openssl/esserr.h
vendored
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
* Generated by util/mkerr.pl DO NOT EDIT
|
||||||
|
* Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_ESSERR_H
|
||||||
|
# define OPENSSL_ESSERR_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
# include <openssl/symhacks.h>
|
||||||
|
# include <openssl/cryptoerr_legacy.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ESS reason codes.
|
||||||
|
*/
|
||||||
|
# define ESS_R_EMPTY_ESS_CERT_ID_LIST 107
|
||||||
|
# define ESS_R_ESS_CERT_DIGEST_ERROR 103
|
||||||
|
# define ESS_R_ESS_CERT_ID_NOT_FOUND 104
|
||||||
|
# define ESS_R_ESS_CERT_ID_WRONG_ORDER 105
|
||||||
|
# define ESS_R_ESS_DIGEST_ALG_UNKNOWN 106
|
||||||
|
# define ESS_R_ESS_SIGNING_CERTIFICATE_ERROR 102
|
||||||
|
# define ESS_R_ESS_SIGNING_CERT_ADD_ERROR 100
|
||||||
|
# define ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR 101
|
||||||
|
# define ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE 108
|
||||||
|
|
||||||
|
#endif
|
77
deps/openssl/mingw64/include/openssl/fips_names.h
vendored
Normal file
77
deps/openssl/mingw64/include/openssl/fips_names.h
vendored
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_FIPS_NAMES_H
|
||||||
|
# define OPENSSL_FIPS_NAMES_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Parameter names that the FIPS Provider defines
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The calculated MAC of the module file (Used for FIPS Self Testing)
|
||||||
|
* Type: OSSL_PARAM_UTF8_STRING
|
||||||
|
*/
|
||||||
|
# define OSSL_PROV_FIPS_PARAM_MODULE_MAC "module-mac"
|
||||||
|
/*
|
||||||
|
* A version number for the fips install process (Used for FIPS Self Testing)
|
||||||
|
* Type: OSSL_PARAM_UTF8_STRING
|
||||||
|
*/
|
||||||
|
# define OSSL_PROV_FIPS_PARAM_INSTALL_VERSION "install-version"
|
||||||
|
/*
|
||||||
|
* The calculated MAC of the install status indicator (Used for FIPS Self Testing)
|
||||||
|
* Type: OSSL_PARAM_UTF8_STRING
|
||||||
|
*/
|
||||||
|
# define OSSL_PROV_FIPS_PARAM_INSTALL_MAC "install-mac"
|
||||||
|
/*
|
||||||
|
* The install status indicator (Used for FIPS Self Testing)
|
||||||
|
* Type: OSSL_PARAM_UTF8_STRING
|
||||||
|
*/
|
||||||
|
# define OSSL_PROV_FIPS_PARAM_INSTALL_STATUS "install-status"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* A boolean that determines if the FIPS conditional test errors result in
|
||||||
|
* the module entering an error state.
|
||||||
|
* Type: OSSL_PARAM_UTF8_STRING
|
||||||
|
*/
|
||||||
|
# define OSSL_PROV_FIPS_PARAM_CONDITIONAL_ERRORS "conditional-errors"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* A boolean that determines if the runtime FIPS security checks are performed.
|
||||||
|
* This is enabled by default.
|
||||||
|
* Type: OSSL_PARAM_UTF8_STRING
|
||||||
|
*/
|
||||||
|
# define OSSL_PROV_FIPS_PARAM_SECURITY_CHECKS "security-checks"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* A boolean that determines if the runtime FIPS check for TLS1_PRF EMS is performed.
|
||||||
|
* This is disabled by default.
|
||||||
|
* Type: OSSL_PARAM_UTF8_STRING
|
||||||
|
*/
|
||||||
|
# define OSSL_PROV_FIPS_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* A boolean that determines if truncated digests can be used with Hash and HMAC
|
||||||
|
* DRBGs. FIPS 140-3 IG D.R disallows such use for efficiency rather than
|
||||||
|
* security reasons.
|
||||||
|
* This is disabled by default.
|
||||||
|
* Type: OSSL_PARAM_UTF8_STRING
|
||||||
|
*/
|
||||||
|
# define OSSL_PROV_FIPS_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md"
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif /* OPENSSL_FIPS_NAMES_H */
|
36
deps/openssl/mingw64/include/openssl/fipskey.h
vendored
Normal file
36
deps/openssl/mingw64/include/openssl/fipskey.h
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/*
|
||||||
|
* WARNING: do not edit!
|
||||||
|
* Generated by Makefile from include/openssl/fipskey.h.in
|
||||||
|
*
|
||||||
|
* Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_FIPSKEY_H
|
||||||
|
# define OPENSSL_FIPSKEY_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The FIPS validation HMAC key, usable as an array initializer.
|
||||||
|
*/
|
||||||
|
#define FIPS_KEY_ELEMENTS \
|
||||||
|
0xf4, 0x55, 0x66, 0x50, 0xac, 0x31, 0xd3, 0x54, 0x61, 0x61, 0x0b, 0xac, 0x4e, 0xd8, 0x1b, 0x1a, 0x18, 0x1b, 0x2d, 0x8a, 0x43, 0xea, 0x28, 0x54, 0xcb, 0xae, 0x22, 0xca, 0x74, 0x56, 0x08, 0x13
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The FIPS validation key, as a string.
|
||||||
|
*/
|
||||||
|
#define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813"
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif
|
35
deps/openssl/mingw64/include/openssl/fipskey.h.in
vendored
Normal file
35
deps/openssl/mingw64/include/openssl/fipskey.h.in
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
* {- join("\n * ", @autowarntext) -}
|
||||||
|
*
|
||||||
|
* Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_FIPSKEY_H
|
||||||
|
# define OPENSSL_FIPSKEY_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The FIPS validation HMAC key, usable as an array initializer.
|
||||||
|
*/
|
||||||
|
#define FIPS_KEY_ELEMENTS \
|
||||||
|
{- join(', ', map { "0x$_" } unpack("(A2)*", $config{FIPSKEY})) -}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The FIPS validation key, as a string.
|
||||||
|
*/
|
||||||
|
#define FIPS_KEY_STRING "{- $config{FIPSKEY} -}"
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif
|
109
deps/openssl/mingw64/include/openssl/http.h
vendored
Normal file
109
deps/openssl/mingw64/include/openssl/http.h
vendored
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
* Copyright Siemens AG 2018-2020
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_HTTP_H
|
||||||
|
# define OPENSSL_HTTP_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
|
||||||
|
# include <openssl/bio.h>
|
||||||
|
# include <openssl/asn1.h>
|
||||||
|
# include <openssl/conf.h>
|
||||||
|
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# define OSSL_HTTP_NAME "http"
|
||||||
|
# define OSSL_HTTPS_NAME "https"
|
||||||
|
# define OSSL_HTTP_PREFIX OSSL_HTTP_NAME"://"
|
||||||
|
# define OSSL_HTTPS_PREFIX OSSL_HTTPS_NAME"://"
|
||||||
|
# define OSSL_HTTP_PORT "80"
|
||||||
|
# define OSSL_HTTPS_PORT "443"
|
||||||
|
# define OPENSSL_NO_PROXY "NO_PROXY"
|
||||||
|
# define OPENSSL_HTTP_PROXY "HTTP_PROXY"
|
||||||
|
# define OPENSSL_HTTPS_PROXY "HTTPS_PROXY"
|
||||||
|
|
||||||
|
#define OSSL_HTTP_DEFAULT_MAX_LINE_LEN (4 * 1024)
|
||||||
|
#define OSSL_HTTP_DEFAULT_MAX_RESP_LEN (100 * 1024)
|
||||||
|
|
||||||
|
/* Low-level HTTP API */
|
||||||
|
OSSL_HTTP_REQ_CTX *OSSL_HTTP_REQ_CTX_new(BIO *wbio, BIO *rbio, int buf_size);
|
||||||
|
void OSSL_HTTP_REQ_CTX_free(OSSL_HTTP_REQ_CTX *rctx);
|
||||||
|
int OSSL_HTTP_REQ_CTX_set_request_line(OSSL_HTTP_REQ_CTX *rctx, int method_POST,
|
||||||
|
const char *server, const char *port,
|
||||||
|
const char *path);
|
||||||
|
int OSSL_HTTP_REQ_CTX_add1_header(OSSL_HTTP_REQ_CTX *rctx,
|
||||||
|
const char *name, const char *value);
|
||||||
|
int OSSL_HTTP_REQ_CTX_set_expected(OSSL_HTTP_REQ_CTX *rctx,
|
||||||
|
const char *content_type, int asn1,
|
||||||
|
int timeout, int keep_alive);
|
||||||
|
int OSSL_HTTP_REQ_CTX_set1_req(OSSL_HTTP_REQ_CTX *rctx, const char *content_type,
|
||||||
|
const ASN1_ITEM *it, const ASN1_VALUE *req);
|
||||||
|
int OSSL_HTTP_REQ_CTX_nbio(OSSL_HTTP_REQ_CTX *rctx);
|
||||||
|
int OSSL_HTTP_REQ_CTX_nbio_d2i(OSSL_HTTP_REQ_CTX *rctx,
|
||||||
|
ASN1_VALUE **pval, const ASN1_ITEM *it);
|
||||||
|
BIO *OSSL_HTTP_REQ_CTX_exchange(OSSL_HTTP_REQ_CTX *rctx);
|
||||||
|
BIO *OSSL_HTTP_REQ_CTX_get0_mem_bio(const OSSL_HTTP_REQ_CTX *rctx);
|
||||||
|
size_t OSSL_HTTP_REQ_CTX_get_resp_len(const OSSL_HTTP_REQ_CTX *rctx);
|
||||||
|
void OSSL_HTTP_REQ_CTX_set_max_response_length(OSSL_HTTP_REQ_CTX *rctx,
|
||||||
|
unsigned long len);
|
||||||
|
int OSSL_HTTP_is_alive(const OSSL_HTTP_REQ_CTX *rctx);
|
||||||
|
|
||||||
|
/* High-level HTTP API */
|
||||||
|
typedef BIO *(*OSSL_HTTP_bio_cb_t)(BIO *bio, void *arg, int connect, int detail);
|
||||||
|
OSSL_HTTP_REQ_CTX *OSSL_HTTP_open(const char *server, const char *port,
|
||||||
|
const char *proxy, const char *no_proxy,
|
||||||
|
int use_ssl, BIO *bio, BIO *rbio,
|
||||||
|
OSSL_HTTP_bio_cb_t bio_update_fn, void *arg,
|
||||||
|
int buf_size, int overall_timeout);
|
||||||
|
int OSSL_HTTP_proxy_connect(BIO *bio, const char *server, const char *port,
|
||||||
|
const char *proxyuser, const char *proxypass,
|
||||||
|
int timeout, BIO *bio_err, const char *prog);
|
||||||
|
int OSSL_HTTP_set1_request(OSSL_HTTP_REQ_CTX *rctx, const char *path,
|
||||||
|
const STACK_OF(CONF_VALUE) *headers,
|
||||||
|
const char *content_type, BIO *req,
|
||||||
|
const char *expected_content_type, int expect_asn1,
|
||||||
|
size_t max_resp_len, int timeout, int keep_alive);
|
||||||
|
BIO *OSSL_HTTP_exchange(OSSL_HTTP_REQ_CTX *rctx, char **redirection_url);
|
||||||
|
BIO *OSSL_HTTP_get(const char *url, const char *proxy, const char *no_proxy,
|
||||||
|
BIO *bio, BIO *rbio,
|
||||||
|
OSSL_HTTP_bio_cb_t bio_update_fn, void *arg,
|
||||||
|
int buf_size, const STACK_OF(CONF_VALUE) *headers,
|
||||||
|
const char *expected_content_type, int expect_asn1,
|
||||||
|
size_t max_resp_len, int timeout);
|
||||||
|
BIO *OSSL_HTTP_transfer(OSSL_HTTP_REQ_CTX **prctx,
|
||||||
|
const char *server, const char *port,
|
||||||
|
const char *path, int use_ssl,
|
||||||
|
const char *proxy, const char *no_proxy,
|
||||||
|
BIO *bio, BIO *rbio,
|
||||||
|
OSSL_HTTP_bio_cb_t bio_update_fn, void *arg,
|
||||||
|
int buf_size, const STACK_OF(CONF_VALUE) *headers,
|
||||||
|
const char *content_type, BIO *req,
|
||||||
|
const char *expected_content_type, int expect_asn1,
|
||||||
|
size_t max_resp_len, int timeout, int keep_alive);
|
||||||
|
int OSSL_HTTP_close(OSSL_HTTP_REQ_CTX *rctx, int ok);
|
||||||
|
|
||||||
|
/* Auxiliary functions */
|
||||||
|
int OSSL_parse_url(const char *url, char **pscheme, char **puser, char **phost,
|
||||||
|
char **pport, int *pport_num,
|
||||||
|
char **ppath, char **pquery, char **pfrag);
|
||||||
|
int OSSL_HTTP_parse_url(const char *url, int *pssl, char **puser, char **phost,
|
||||||
|
char **pport, int *pport_num,
|
||||||
|
char **ppath, char **pquery, char **pfrag);
|
||||||
|
const char *OSSL_HTTP_adapt_proxy(const char *proxy, const char *no_proxy,
|
||||||
|
const char *server, int use_ssl);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
#endif /* !defined(OPENSSL_HTTP_H) */
|
55
deps/openssl/mingw64/include/openssl/httperr.h
vendored
Normal file
55
deps/openssl/mingw64/include/openssl/httperr.h
vendored
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
/*
|
||||||
|
* Generated by util/mkerr.pl DO NOT EDIT
|
||||||
|
* Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_HTTPERR_H
|
||||||
|
# define OPENSSL_HTTPERR_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
# include <openssl/symhacks.h>
|
||||||
|
# include <openssl/cryptoerr_legacy.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* HTTP reason codes.
|
||||||
|
*/
|
||||||
|
# define HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN 108
|
||||||
|
# define HTTP_R_CONNECT_FAILURE 100
|
||||||
|
# define HTTP_R_ERROR_PARSING_ASN1_LENGTH 109
|
||||||
|
# define HTTP_R_ERROR_PARSING_CONTENT_LENGTH 119
|
||||||
|
# define HTTP_R_ERROR_PARSING_URL 101
|
||||||
|
# define HTTP_R_ERROR_RECEIVING 103
|
||||||
|
# define HTTP_R_ERROR_SENDING 102
|
||||||
|
# define HTTP_R_FAILED_READING_DATA 128
|
||||||
|
# define HTTP_R_HEADER_PARSE_ERROR 126
|
||||||
|
# define HTTP_R_INCONSISTENT_CONTENT_LENGTH 120
|
||||||
|
# define HTTP_R_INVALID_PORT_NUMBER 123
|
||||||
|
# define HTTP_R_INVALID_URL_PATH 125
|
||||||
|
# define HTTP_R_INVALID_URL_SCHEME 124
|
||||||
|
# define HTTP_R_MAX_RESP_LEN_EXCEEDED 117
|
||||||
|
# define HTTP_R_MISSING_ASN1_ENCODING 110
|
||||||
|
# define HTTP_R_MISSING_CONTENT_TYPE 121
|
||||||
|
# define HTTP_R_MISSING_REDIRECT_LOCATION 111
|
||||||
|
# define HTTP_R_RECEIVED_ERROR 105
|
||||||
|
# define HTTP_R_RECEIVED_WRONG_HTTP_VERSION 106
|
||||||
|
# define HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP 112
|
||||||
|
# define HTTP_R_REDIRECTION_NOT_ENABLED 116
|
||||||
|
# define HTTP_R_RESPONSE_LINE_TOO_LONG 113
|
||||||
|
# define HTTP_R_RESPONSE_PARSE_ERROR 104
|
||||||
|
# define HTTP_R_RETRY_TIMEOUT 129
|
||||||
|
# define HTTP_R_SERVER_CANCELED_CONNECTION 127
|
||||||
|
# define HTTP_R_SOCK_NOT_SUPPORTED 122
|
||||||
|
# define HTTP_R_STATUS_CODE_UNSUPPORTED 114
|
||||||
|
# define HTTP_R_TLS_NOT_ENABLED 107
|
||||||
|
# define HTTP_R_TOO_MANY_REDIRECTIONS 115
|
||||||
|
# define HTTP_R_UNEXPECTED_CONTENT_TYPE 118
|
||||||
|
|
||||||
|
#endif
|
306
deps/openssl/mingw64/include/openssl/lhash.h.in
vendored
Normal file
306
deps/openssl/mingw64/include/openssl/lhash.h.in
vendored
Normal file
@ -0,0 +1,306 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
{-
|
||||||
|
use OpenSSL::stackhash qw(generate_lhash_macros);
|
||||||
|
-}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Header for dynamic hash table routines Author - Eric Young
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_LHASH_H
|
||||||
|
# define OPENSSL_LHASH_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/macros.h>
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# define HEADER_LHASH_H
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# include <openssl/e_os2.h>
|
||||||
|
# include <openssl/bio.h>
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
# include <stdio.h>
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct lhash_node_st OPENSSL_LH_NODE;
|
||||||
|
typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *);
|
||||||
|
typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *);
|
||||||
|
typedef void (*OPENSSL_LH_DOALL_FUNC) (void *);
|
||||||
|
typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *);
|
||||||
|
typedef struct lhash_st OPENSSL_LHASH;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Macros for declaring and implementing type-safe wrappers for LHASH
|
||||||
|
* callbacks. This way, callbacks can be provided to LHASH structures without
|
||||||
|
* function pointer casting and the macro-defined callbacks provide
|
||||||
|
* per-variable casting before deferring to the underlying type-specific
|
||||||
|
* callbacks. NB: It is possible to place a "static" in front of both the
|
||||||
|
* DECLARE and IMPLEMENT macros if the functions are strictly internal.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* First: "hash" functions */
|
||||||
|
# define DECLARE_LHASH_HASH_FN(name, o_type) \
|
||||||
|
unsigned long name##_LHASH_HASH(const void *);
|
||||||
|
# define IMPLEMENT_LHASH_HASH_FN(name, o_type) \
|
||||||
|
unsigned long name##_LHASH_HASH(const void *arg) { \
|
||||||
|
const o_type *a = arg; \
|
||||||
|
return name##_hash(a); }
|
||||||
|
# define LHASH_HASH_FN(name) name##_LHASH_HASH
|
||||||
|
|
||||||
|
/* Second: "compare" functions */
|
||||||
|
# define DECLARE_LHASH_COMP_FN(name, o_type) \
|
||||||
|
int name##_LHASH_COMP(const void *, const void *);
|
||||||
|
# define IMPLEMENT_LHASH_COMP_FN(name, o_type) \
|
||||||
|
int name##_LHASH_COMP(const void *arg1, const void *arg2) { \
|
||||||
|
const o_type *a = arg1; \
|
||||||
|
const o_type *b = arg2; \
|
||||||
|
return name##_cmp(a,b); }
|
||||||
|
# define LHASH_COMP_FN(name) name##_LHASH_COMP
|
||||||
|
|
||||||
|
/* Fourth: "doall_arg" functions */
|
||||||
|
# define DECLARE_LHASH_DOALL_ARG_FN(name, o_type, a_type) \
|
||||||
|
void name##_LHASH_DOALL_ARG(void *, void *);
|
||||||
|
# define IMPLEMENT_LHASH_DOALL_ARG_FN(name, o_type, a_type) \
|
||||||
|
void name##_LHASH_DOALL_ARG(void *arg1, void *arg2) { \
|
||||||
|
o_type *a = arg1; \
|
||||||
|
a_type *b = arg2; \
|
||||||
|
name##_doall_arg(a, b); }
|
||||||
|
# define LHASH_DOALL_ARG_FN(name) name##_LHASH_DOALL_ARG
|
||||||
|
|
||||||
|
|
||||||
|
# define LH_LOAD_MULT 256
|
||||||
|
|
||||||
|
int OPENSSL_LH_error(OPENSSL_LHASH *lh);
|
||||||
|
OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c);
|
||||||
|
void OPENSSL_LH_free(OPENSSL_LHASH *lh);
|
||||||
|
void OPENSSL_LH_flush(OPENSSL_LHASH *lh);
|
||||||
|
void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data);
|
||||||
|
void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data);
|
||||||
|
void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data);
|
||||||
|
void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func);
|
||||||
|
void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg);
|
||||||
|
unsigned long OPENSSL_LH_strhash(const char *c);
|
||||||
|
unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh);
|
||||||
|
unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh);
|
||||||
|
void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load);
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_1
|
||||||
|
OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp);
|
||||||
|
OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp);
|
||||||
|
OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp);
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_1
|
||||||
|
OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out);
|
||||||
|
OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out);
|
||||||
|
OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out);
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
# define _LHASH OPENSSL_LHASH
|
||||||
|
# define LHASH_NODE OPENSSL_LH_NODE
|
||||||
|
# define lh_error OPENSSL_LH_error
|
||||||
|
# define lh_new OPENSSL_LH_new
|
||||||
|
# define lh_free OPENSSL_LH_free
|
||||||
|
# define lh_insert OPENSSL_LH_insert
|
||||||
|
# define lh_delete OPENSSL_LH_delete
|
||||||
|
# define lh_retrieve OPENSSL_LH_retrieve
|
||||||
|
# define lh_doall OPENSSL_LH_doall
|
||||||
|
# define lh_doall_arg OPENSSL_LH_doall_arg
|
||||||
|
# define lh_strhash OPENSSL_LH_strhash
|
||||||
|
# define lh_num_items OPENSSL_LH_num_items
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
# define lh_stats OPENSSL_LH_stats
|
||||||
|
# define lh_node_stats OPENSSL_LH_node_stats
|
||||||
|
# define lh_node_usage_stats OPENSSL_LH_node_usage_stats
|
||||||
|
# endif
|
||||||
|
# define lh_stats_bio OPENSSL_LH_stats_bio
|
||||||
|
# define lh_node_stats_bio OPENSSL_LH_node_stats_bio
|
||||||
|
# define lh_node_usage_stats_bio OPENSSL_LH_node_usage_stats_bio
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/* Type checking... */
|
||||||
|
|
||||||
|
# define LHASH_OF(type) struct lhash_st_##type
|
||||||
|
|
||||||
|
/* Helper macro for internal use */
|
||||||
|
# define DEFINE_LHASH_OF_INTERNAL(type) \
|
||||||
|
LHASH_OF(type) { \
|
||||||
|
union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \
|
||||||
|
}; \
|
||||||
|
typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \
|
||||||
|
typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \
|
||||||
|
typedef void (*lh_##type##_doallfunc)(type *a); \
|
||||||
|
static ossl_unused ossl_inline type *\
|
||||||
|
ossl_check_##type##_lh_plain_type(type *ptr) \
|
||||||
|
{ \
|
||||||
|
return ptr; \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline const type * \
|
||||||
|
ossl_check_const_##type##_lh_plain_type(const type *ptr) \
|
||||||
|
{ \
|
||||||
|
return ptr; \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline const OPENSSL_LHASH * \
|
||||||
|
ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \
|
||||||
|
{ \
|
||||||
|
return (const OPENSSL_LHASH *)lh; \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline OPENSSL_LHASH * \
|
||||||
|
ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \
|
||||||
|
{ \
|
||||||
|
return (OPENSSL_LHASH *)lh; \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \
|
||||||
|
ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \
|
||||||
|
{ \
|
||||||
|
return (OPENSSL_LH_COMPFUNC)cmp; \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \
|
||||||
|
ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \
|
||||||
|
{ \
|
||||||
|
return (OPENSSL_LH_HASHFUNC)hfn; \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \
|
||||||
|
ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \
|
||||||
|
{ \
|
||||||
|
return (OPENSSL_LH_DOALL_FUNC)dfn; \
|
||||||
|
} \
|
||||||
|
LHASH_OF(type)
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_1
|
||||||
|
# define DEFINE_LHASH_OF_DEPRECATED(type) \
|
||||||
|
static ossl_unused ossl_inline void \
|
||||||
|
lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \
|
||||||
|
{ \
|
||||||
|
OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline void \
|
||||||
|
lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \
|
||||||
|
{ \
|
||||||
|
OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline void \
|
||||||
|
lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \
|
||||||
|
{ \
|
||||||
|
OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \
|
||||||
|
}
|
||||||
|
# else
|
||||||
|
# define DEFINE_LHASH_OF_DEPRECATED(type)
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# define DEFINE_LHASH_OF_EX(type) \
|
||||||
|
LHASH_OF(type) { \
|
||||||
|
union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \
|
||||||
|
}; \
|
||||||
|
static ossl_unused ossl_inline LHASH_OF(type) * \
|
||||||
|
lh_##type##_new(unsigned long (*hfn)(const type *), \
|
||||||
|
int (*cfn)(const type *, const type *)) \
|
||||||
|
{ \
|
||||||
|
return (LHASH_OF(type) *) \
|
||||||
|
OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline void \
|
||||||
|
lh_##type##_free(LHASH_OF(type) *lh) \
|
||||||
|
{ \
|
||||||
|
OPENSSL_LH_free((OPENSSL_LHASH *)lh); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline void \
|
||||||
|
lh_##type##_flush(LHASH_OF(type) *lh) \
|
||||||
|
{ \
|
||||||
|
OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline type * \
|
||||||
|
lh_##type##_insert(LHASH_OF(type) *lh, type *d) \
|
||||||
|
{ \
|
||||||
|
return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline type * \
|
||||||
|
lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \
|
||||||
|
{ \
|
||||||
|
return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline type * \
|
||||||
|
lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \
|
||||||
|
{ \
|
||||||
|
return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline int \
|
||||||
|
lh_##type##_error(LHASH_OF(type) *lh) \
|
||||||
|
{ \
|
||||||
|
return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline unsigned long \
|
||||||
|
lh_##type##_num_items(LHASH_OF(type) *lh) \
|
||||||
|
{ \
|
||||||
|
return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline unsigned long \
|
||||||
|
lh_##type##_get_down_load(LHASH_OF(type) *lh) \
|
||||||
|
{ \
|
||||||
|
return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline void \
|
||||||
|
lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \
|
||||||
|
{ \
|
||||||
|
OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline void \
|
||||||
|
lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \
|
||||||
|
{ \
|
||||||
|
OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline void \
|
||||||
|
lh_##type##_doall_arg(LHASH_OF(type) *lh, \
|
||||||
|
void (*doallarg)(type *, void *), void *arg) \
|
||||||
|
{ \
|
||||||
|
OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \
|
||||||
|
(OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \
|
||||||
|
} \
|
||||||
|
LHASH_OF(type)
|
||||||
|
|
||||||
|
# define DEFINE_LHASH_OF(type) \
|
||||||
|
DEFINE_LHASH_OF_EX(type); \
|
||||||
|
DEFINE_LHASH_OF_DEPRECATED(type) \
|
||||||
|
LHASH_OF(type)
|
||||||
|
|
||||||
|
#define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \
|
||||||
|
int_implement_lhash_doall(type, argtype, const type)
|
||||||
|
|
||||||
|
#define IMPLEMENT_LHASH_DOALL_ARG(type, argtype) \
|
||||||
|
int_implement_lhash_doall(type, argtype, type)
|
||||||
|
|
||||||
|
#define int_implement_lhash_doall(type, argtype, cbargtype) \
|
||||||
|
static ossl_unused ossl_inline void \
|
||||||
|
lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \
|
||||||
|
void (*fn)(cbargtype *, argtype *), \
|
||||||
|
argtype *arg) \
|
||||||
|
{ \
|
||||||
|
OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \
|
||||||
|
(OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \
|
||||||
|
} \
|
||||||
|
LHASH_OF(type)
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_lhash_macros("OPENSSL_STRING")
|
||||||
|
.generate_lhash_macros("OPENSSL_CSTRING");
|
||||||
|
-}
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
325
deps/openssl/mingw64/include/openssl/macros.h
vendored
Normal file
325
deps/openssl/mingw64/include/openssl/macros.h
vendored
Normal file
@ -0,0 +1,325 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_MACROS_H
|
||||||
|
# define OPENSSL_MACROS_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
#include <openssl/opensslconf.h>
|
||||||
|
#include <openssl/opensslv.h>
|
||||||
|
|
||||||
|
|
||||||
|
/* Helper macros for CPP string composition */
|
||||||
|
# define OPENSSL_MSTR_HELPER(x) #x
|
||||||
|
# define OPENSSL_MSTR(x) OPENSSL_MSTR_HELPER(x)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sometimes OPENSSL_NO_xxx ends up with an empty file and some compilers
|
||||||
|
* don't like that. This will hopefully silence them.
|
||||||
|
*/
|
||||||
|
# define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Generic deprecation macro
|
||||||
|
*
|
||||||
|
* If OPENSSL_SUPPRESS_DEPRECATED is defined, then OSSL_DEPRECATED and
|
||||||
|
* OSSL_DEPRECATED_FOR become no-ops
|
||||||
|
*/
|
||||||
|
# ifndef OSSL_DEPRECATED
|
||||||
|
# undef OSSL_DEPRECATED_FOR
|
||||||
|
# ifndef OPENSSL_SUPPRESS_DEPRECATED
|
||||||
|
# if defined(_MSC_VER)
|
||||||
|
/*
|
||||||
|
* MSVC supports __declspec(deprecated) since MSVC 2003 (13.10),
|
||||||
|
* and __declspec(deprecated(message)) since MSVC 2005 (14.00)
|
||||||
|
*/
|
||||||
|
# if _MSC_VER >= 1400
|
||||||
|
# define OSSL_DEPRECATED(since) \
|
||||||
|
__declspec(deprecated("Since OpenSSL " # since))
|
||||||
|
# define OSSL_DEPRECATED_FOR(since, message) \
|
||||||
|
__declspec(deprecated("Since OpenSSL " # since ";" message))
|
||||||
|
# elif _MSC_VER >= 1310
|
||||||
|
# define OSSL_DEPRECATED(since) __declspec(deprecated)
|
||||||
|
# define OSSL_DEPRECATED_FOR(since, message) __declspec(deprecated)
|
||||||
|
# endif
|
||||||
|
# elif defined(__GNUC__)
|
||||||
|
/*
|
||||||
|
* According to GCC documentation, deprecations with message appeared in
|
||||||
|
* GCC 4.5.0
|
||||||
|
*/
|
||||||
|
# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
|
||||||
|
# define OSSL_DEPRECATED(since) \
|
||||||
|
__attribute__((deprecated("Since OpenSSL " # since)))
|
||||||
|
# define OSSL_DEPRECATED_FOR(since, message) \
|
||||||
|
__attribute__((deprecated("Since OpenSSL " # since ";" message)))
|
||||||
|
# elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0)
|
||||||
|
# define OSSL_DEPRECATED(since) __attribute__((deprecated))
|
||||||
|
# define OSSL_DEPRECATED_FOR(since, message) __attribute__((deprecated))
|
||||||
|
# endif
|
||||||
|
# elif defined(__SUNPRO_C)
|
||||||
|
# if (__SUNPRO_C >= 0x5130)
|
||||||
|
# define OSSL_DEPRECATED(since) __attribute__ ((deprecated))
|
||||||
|
# define OSSL_DEPRECATED_FOR(since, message) __attribute__ ((deprecated))
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Still not defined? Then define no-op macros. This means these macros
|
||||||
|
* are unsuitable for use in a typedef.
|
||||||
|
*/
|
||||||
|
# ifndef OSSL_DEPRECATED
|
||||||
|
# define OSSL_DEPRECATED(since) extern
|
||||||
|
# define OSSL_DEPRECATED_FOR(since, message) extern
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Applications should use -DOPENSSL_API_COMPAT=<version> to suppress the
|
||||||
|
* declarations of functions deprecated in or before <version>. If this is
|
||||||
|
* undefined, the value of the macro OPENSSL_CONFIGURED_API (defined in
|
||||||
|
* <openssl/opensslconf.h>) is the default.
|
||||||
|
*
|
||||||
|
* For any version number up until version 1.1.x, <version> is expected to be
|
||||||
|
* the calculated version number 0xMNNFFPPSL.
|
||||||
|
* For version numbers 3.0 and on, <version> is expected to be a computation
|
||||||
|
* of the major and minor numbers in decimal using this formula:
|
||||||
|
*
|
||||||
|
* MAJOR * 10000 + MINOR * 100
|
||||||
|
*
|
||||||
|
* So version 3.0 becomes 30000, version 3.2 becomes 30200, etc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We use the OPENSSL_API_COMPAT value to define API level macros. These
|
||||||
|
* macros are used to enable or disable features at that API version boundary.
|
||||||
|
*/
|
||||||
|
|
||||||
|
# ifdef OPENSSL_API_LEVEL
|
||||||
|
# error "OPENSSL_API_LEVEL must not be defined by application"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We figure out what API level was intended by simple numeric comparison.
|
||||||
|
* The lowest old style number we recognise is 0x00908000L, so we take some
|
||||||
|
* safety margin and assume that anything below 0x00900000L is a new style
|
||||||
|
* number. This allows new versions up to and including v943.71.83.
|
||||||
|
*/
|
||||||
|
# ifdef OPENSSL_API_COMPAT
|
||||||
|
# if OPENSSL_API_COMPAT < 0x900000L
|
||||||
|
# define OPENSSL_API_LEVEL (OPENSSL_API_COMPAT)
|
||||||
|
# else
|
||||||
|
# define OPENSSL_API_LEVEL \
|
||||||
|
(((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \
|
||||||
|
+ ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \
|
||||||
|
+ ((OPENSSL_API_COMPAT >> 12) & 0xFF))
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If OPENSSL_API_COMPAT wasn't given, we use default numbers to set
|
||||||
|
* the API compatibility level.
|
||||||
|
*/
|
||||||
|
# ifndef OPENSSL_API_LEVEL
|
||||||
|
# if OPENSSL_CONFIGURED_API > 0
|
||||||
|
# define OPENSSL_API_LEVEL (OPENSSL_CONFIGURED_API)
|
||||||
|
# else
|
||||||
|
# define OPENSSL_API_LEVEL \
|
||||||
|
(OPENSSL_VERSION_MAJOR * 10000 + OPENSSL_VERSION_MINOR * 100)
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if OPENSSL_API_LEVEL > OPENSSL_CONFIGURED_API
|
||||||
|
# error "The requested API level higher than the configured API compatibility level"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check of sane values.
|
||||||
|
*/
|
||||||
|
/* Can't go higher than the current version. */
|
||||||
|
# if OPENSSL_API_LEVEL > (OPENSSL_VERSION_MAJOR * 10000 + OPENSSL_VERSION_MINOR * 100)
|
||||||
|
# error "OPENSSL_API_COMPAT expresses an impossible API compatibility level"
|
||||||
|
# endif
|
||||||
|
/* OpenSSL will have no version 2.y.z */
|
||||||
|
# if OPENSSL_API_LEVEL < 30000 && OPENSSL_API_LEVEL >= 20000
|
||||||
|
# error "OPENSSL_API_COMPAT expresses an impossible API compatibility level"
|
||||||
|
# endif
|
||||||
|
/* Below 0.9.8 is unacceptably low */
|
||||||
|
# if OPENSSL_API_LEVEL < 908
|
||||||
|
# error "OPENSSL_API_COMPAT expresses an impossible API compatibility level"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Define macros for deprecation and simulated removal purposes.
|
||||||
|
*
|
||||||
|
* The macros OSSL_DEPRECATED_{major}_{minor} are always defined for
|
||||||
|
* all OpenSSL versions we care for. They can be used as attributes
|
||||||
|
* in function declarations where appropriate.
|
||||||
|
*
|
||||||
|
* The macros OPENSSL_NO_DEPRECATED_{major}_{minor} are defined for
|
||||||
|
* all OpenSSL versions up to or equal to the version given with
|
||||||
|
* OPENSSL_API_COMPAT. They are used as guards around anything that's
|
||||||
|
* deprecated up to that version, as an effect of the developer option
|
||||||
|
* 'no-deprecated'.
|
||||||
|
*/
|
||||||
|
|
||||||
|
# undef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# undef OPENSSL_NO_DEPRECATED_1_1_1
|
||||||
|
# undef OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
# undef OPENSSL_NO_DEPRECATED_1_0_2
|
||||||
|
# undef OPENSSL_NO_DEPRECATED_1_0_1
|
||||||
|
# undef OPENSSL_NO_DEPRECATED_1_0_0
|
||||||
|
# undef OPENSSL_NO_DEPRECATED_0_9_8
|
||||||
|
|
||||||
|
# if OPENSSL_API_LEVEL >= 30100
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED
|
||||||
|
# define OSSL_DEPRECATEDIN_3_1 OSSL_DEPRECATED(3.1)
|
||||||
|
# define OSSL_DEPRECATEDIN_3_1_FOR(msg) OSSL_DEPRECATED_FOR(3.1, msg)
|
||||||
|
# else
|
||||||
|
# define OPENSSL_NO_DEPRECATED_3_1
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# define OSSL_DEPRECATEDIN_3_1
|
||||||
|
# define OSSL_DEPRECATEDIN_3_1_FOR(msg)
|
||||||
|
# endif
|
||||||
|
# if OPENSSL_API_LEVEL >= 30000
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED
|
||||||
|
# define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0)
|
||||||
|
# define OSSL_DEPRECATEDIN_3_0_FOR(msg) OSSL_DEPRECATED_FOR(3.0, msg)
|
||||||
|
# else
|
||||||
|
# define OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# define OSSL_DEPRECATEDIN_3_0
|
||||||
|
# define OSSL_DEPRECATEDIN_3_0_FOR(msg)
|
||||||
|
# endif
|
||||||
|
# if OPENSSL_API_LEVEL >= 10101
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED
|
||||||
|
# define OSSL_DEPRECATEDIN_1_1_1 OSSL_DEPRECATED(1.1.1)
|
||||||
|
# define OSSL_DEPRECATEDIN_1_1_1_FOR(msg) OSSL_DEPRECATED_FOR(1.1.1, msg)
|
||||||
|
# else
|
||||||
|
# define OPENSSL_NO_DEPRECATED_1_1_1
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# define OSSL_DEPRECATEDIN_1_1_1
|
||||||
|
# define OSSL_DEPRECATEDIN_1_1_1_FOR(msg)
|
||||||
|
# endif
|
||||||
|
# if OPENSSL_API_LEVEL >= 10100
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED
|
||||||
|
# define OSSL_DEPRECATEDIN_1_1_0 OSSL_DEPRECATED(1.1.0)
|
||||||
|
# define OSSL_DEPRECATEDIN_1_1_0_FOR(msg) OSSL_DEPRECATED_FOR(1.1.0, msg)
|
||||||
|
# else
|
||||||
|
# define OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# define OSSL_DEPRECATEDIN_1_1_0
|
||||||
|
# define OSSL_DEPRECATEDIN_1_1_0_FOR(msg)
|
||||||
|
# endif
|
||||||
|
# if OPENSSL_API_LEVEL >= 10002
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED
|
||||||
|
# define OSSL_DEPRECATEDIN_1_0_2 OSSL_DEPRECATED(1.0.2)
|
||||||
|
# define OSSL_DEPRECATEDIN_1_0_2_FOR(msg) OSSL_DEPRECATED_FOR(1.0.2, msg)
|
||||||
|
# else
|
||||||
|
# define OPENSSL_NO_DEPRECATED_1_0_2
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# define OSSL_DEPRECATEDIN_1_0_2
|
||||||
|
# define OSSL_DEPRECATEDIN_1_0_2_FOR(msg)
|
||||||
|
# endif
|
||||||
|
# if OPENSSL_API_LEVEL >= 10001
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED
|
||||||
|
# define OSSL_DEPRECATEDIN_1_0_1 OSSL_DEPRECATED(1.0.1)
|
||||||
|
# define OSSL_DEPRECATEDIN_1_0_1_FOR(msg) OSSL_DEPRECATED_FOR(1.0.1, msg)
|
||||||
|
# else
|
||||||
|
# define OPENSSL_NO_DEPRECATED_1_0_1
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# define OSSL_DEPRECATEDIN_1_0_1
|
||||||
|
# define OSSL_DEPRECATEDIN_1_0_1_FOR(msg)
|
||||||
|
# endif
|
||||||
|
# if OPENSSL_API_LEVEL >= 10000
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED
|
||||||
|
# define OSSL_DEPRECATEDIN_1_0_0 OSSL_DEPRECATED(1.0.0)
|
||||||
|
# define OSSL_DEPRECATEDIN_1_0_0_FOR(msg) OSSL_DEPRECATED_FOR(1.0.0, msg)
|
||||||
|
# else
|
||||||
|
# define OPENSSL_NO_DEPRECATED_1_0_0
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# define OSSL_DEPRECATEDIN_1_0_0
|
||||||
|
# define OSSL_DEPRECATEDIN_1_0_0_FOR(msg)
|
||||||
|
# endif
|
||||||
|
# if OPENSSL_API_LEVEL >= 908
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED
|
||||||
|
# define OSSL_DEPRECATEDIN_0_9_8 OSSL_DEPRECATED(0.9.8)
|
||||||
|
# define OSSL_DEPRECATEDIN_0_9_8_FOR(msg) OSSL_DEPRECATED_FOR(0.9.8, msg)
|
||||||
|
# else
|
||||||
|
# define OPENSSL_NO_DEPRECATED_0_9_8
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# define OSSL_DEPRECATEDIN_0_9_8
|
||||||
|
# define OSSL_DEPRECATEDIN_0_9_8_FOR(msg)
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Make our own variants of __FILE__ and __LINE__, depending on configuration
|
||||||
|
*/
|
||||||
|
|
||||||
|
# ifndef OPENSSL_FILE
|
||||||
|
# ifdef OPENSSL_NO_FILENAMES
|
||||||
|
# define OPENSSL_FILE ""
|
||||||
|
# define OPENSSL_LINE 0
|
||||||
|
# else
|
||||||
|
# define OPENSSL_FILE __FILE__
|
||||||
|
# define OPENSSL_LINE __LINE__
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* __func__ was standardized in C99, so for any compiler that claims
|
||||||
|
* to implement that language level or newer, we assume we can safely
|
||||||
|
* use that symbol.
|
||||||
|
*
|
||||||
|
* GNU C also provides __FUNCTION__ since version 2, which predates
|
||||||
|
* C99. We can, however, only use this if __STDC_VERSION__ exists,
|
||||||
|
* as it's otherwise not allowed according to ISO C standards (C90).
|
||||||
|
* (compiling with GNU C's -pedantic tells us so)
|
||||||
|
*
|
||||||
|
* If none of the above applies, we check if the compiler is MSVC,
|
||||||
|
* and use __FUNCTION__ if that's the case.
|
||||||
|
*/
|
||||||
|
# ifndef OPENSSL_FUNC
|
||||||
|
# if defined(__STDC_VERSION__)
|
||||||
|
# if __STDC_VERSION__ >= 199901L
|
||||||
|
# define OPENSSL_FUNC __func__
|
||||||
|
# elif defined(__GNUC__) && __GNUC__ >= 2
|
||||||
|
# define OPENSSL_FUNC __FUNCTION__
|
||||||
|
# endif
|
||||||
|
# elif defined(_MSC_VER)
|
||||||
|
# define OPENSSL_FUNC __FUNCTION__
|
||||||
|
# endif
|
||||||
|
/*
|
||||||
|
* If all these possibilities are exhausted, we give up and use a
|
||||||
|
* static string.
|
||||||
|
*/
|
||||||
|
# ifndef OPENSSL_FUNC
|
||||||
|
# define OPENSSL_FUNC "(unknown function)"
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifndef OSSL_CRYPTO_ALLOC
|
||||||
|
# if defined(__GNUC__)
|
||||||
|
# define OSSL_CRYPTO_ALLOC __attribute__((__malloc__))
|
||||||
|
# elif defined(_MSC_VER)
|
||||||
|
# define OSSL_CRYPTO_ALLOC __declspec(restrict)
|
||||||
|
# else
|
||||||
|
# define OSSL_CRYPTO_ALLOC
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif /* OPENSSL_MACROS_H */
|
387
deps/openssl/mingw64/include/openssl/ocsp.h.in
vendored
Normal file
387
deps/openssl/mingw64/include/openssl/ocsp.h.in
vendored
Normal file
@ -0,0 +1,387 @@
|
|||||||
|
/*
|
||||||
|
* {- join("\n * ", @autowarntext) -}
|
||||||
|
*
|
||||||
|
* Copyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
{-
|
||||||
|
use OpenSSL::stackhash qw(generate_stack_macros);
|
||||||
|
-}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_OCSP_H
|
||||||
|
# define OPENSSL_OCSP_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/macros.h>
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# define HEADER_OCSP_H
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
# include <openssl/http.h>
|
||||||
|
# include <openssl/asn1.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* These definitions are outside the OPENSSL_NO_OCSP guard because although for
|
||||||
|
* historical reasons they have OCSP_* names, they can actually be used
|
||||||
|
* independently of OCSP. E.g. see RFC5280
|
||||||
|
*/
|
||||||
|
/*-
|
||||||
|
* CRLReason ::= ENUMERATED {
|
||||||
|
* unspecified (0),
|
||||||
|
* keyCompromise (1),
|
||||||
|
* cACompromise (2),
|
||||||
|
* affiliationChanged (3),
|
||||||
|
* superseded (4),
|
||||||
|
* cessationOfOperation (5),
|
||||||
|
* certificateHold (6),
|
||||||
|
* -- value 7 is not used
|
||||||
|
* removeFromCRL (8),
|
||||||
|
* privilegeWithdrawn (9),
|
||||||
|
* aACompromise (10) }
|
||||||
|
*/
|
||||||
|
# define OCSP_REVOKED_STATUS_NOSTATUS -1
|
||||||
|
# define OCSP_REVOKED_STATUS_UNSPECIFIED 0
|
||||||
|
# define OCSP_REVOKED_STATUS_KEYCOMPROMISE 1
|
||||||
|
# define OCSP_REVOKED_STATUS_CACOMPROMISE 2
|
||||||
|
# define OCSP_REVOKED_STATUS_AFFILIATIONCHANGED 3
|
||||||
|
# define OCSP_REVOKED_STATUS_SUPERSEDED 4
|
||||||
|
# define OCSP_REVOKED_STATUS_CESSATIONOFOPERATION 5
|
||||||
|
# define OCSP_REVOKED_STATUS_CERTIFICATEHOLD 6
|
||||||
|
# define OCSP_REVOKED_STATUS_REMOVEFROMCRL 8
|
||||||
|
# define OCSP_REVOKED_STATUS_PRIVILEGEWITHDRAWN 9
|
||||||
|
# define OCSP_REVOKED_STATUS_AACOMPROMISE 10
|
||||||
|
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_OCSP
|
||||||
|
|
||||||
|
# include <openssl/x509.h>
|
||||||
|
# include <openssl/x509v3.h>
|
||||||
|
# include <openssl/safestack.h>
|
||||||
|
# include <openssl/ocsperr.h>
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/* Various flags and values */
|
||||||
|
|
||||||
|
# define OCSP_DEFAULT_NONCE_LENGTH 16
|
||||||
|
|
||||||
|
# define OCSP_NOCERTS 0x1
|
||||||
|
# define OCSP_NOINTERN 0x2
|
||||||
|
# define OCSP_NOSIGS 0x4
|
||||||
|
# define OCSP_NOCHAIN 0x8
|
||||||
|
# define OCSP_NOVERIFY 0x10
|
||||||
|
# define OCSP_NOEXPLICIT 0x20
|
||||||
|
# define OCSP_NOCASIGN 0x40
|
||||||
|
# define OCSP_NODELEGATED 0x80
|
||||||
|
# define OCSP_NOCHECKS 0x100
|
||||||
|
# define OCSP_TRUSTOTHER 0x200
|
||||||
|
# define OCSP_RESPID_KEY 0x400
|
||||||
|
# define OCSP_NOTIME 0x800
|
||||||
|
# define OCSP_PARTIAL_CHAIN 0x1000
|
||||||
|
|
||||||
|
typedef struct ocsp_cert_id_st OCSP_CERTID;
|
||||||
|
typedef struct ocsp_one_request_st OCSP_ONEREQ;
|
||||||
|
typedef struct ocsp_req_info_st OCSP_REQINFO;
|
||||||
|
typedef struct ocsp_signature_st OCSP_SIGNATURE;
|
||||||
|
typedef struct ocsp_request_st OCSP_REQUEST;
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_stack_macros("OCSP_CERTID")
|
||||||
|
.generate_stack_macros("OCSP_ONEREQ");
|
||||||
|
-}
|
||||||
|
|
||||||
|
# define OCSP_RESPONSE_STATUS_SUCCESSFUL 0
|
||||||
|
# define OCSP_RESPONSE_STATUS_MALFORMEDREQUEST 1
|
||||||
|
# define OCSP_RESPONSE_STATUS_INTERNALERROR 2
|
||||||
|
# define OCSP_RESPONSE_STATUS_TRYLATER 3
|
||||||
|
# define OCSP_RESPONSE_STATUS_SIGREQUIRED 5
|
||||||
|
# define OCSP_RESPONSE_STATUS_UNAUTHORIZED 6
|
||||||
|
|
||||||
|
typedef struct ocsp_resp_bytes_st OCSP_RESPBYTES;
|
||||||
|
|
||||||
|
# define V_OCSP_RESPID_NAME 0
|
||||||
|
# define V_OCSP_RESPID_KEY 1
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_stack_macros("OCSP_RESPID");
|
||||||
|
-}
|
||||||
|
|
||||||
|
typedef struct ocsp_revoked_info_st OCSP_REVOKEDINFO;
|
||||||
|
|
||||||
|
# define V_OCSP_CERTSTATUS_GOOD 0
|
||||||
|
# define V_OCSP_CERTSTATUS_REVOKED 1
|
||||||
|
# define V_OCSP_CERTSTATUS_UNKNOWN 2
|
||||||
|
|
||||||
|
typedef struct ocsp_cert_status_st OCSP_CERTSTATUS;
|
||||||
|
typedef struct ocsp_single_response_st OCSP_SINGLERESP;
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_stack_macros("OCSP_SINGLERESP");
|
||||||
|
-}
|
||||||
|
|
||||||
|
typedef struct ocsp_response_data_st OCSP_RESPDATA;
|
||||||
|
|
||||||
|
typedef struct ocsp_basic_response_st OCSP_BASICRESP;
|
||||||
|
|
||||||
|
typedef struct ocsp_crl_id_st OCSP_CRLID;
|
||||||
|
typedef struct ocsp_service_locator_st OCSP_SERVICELOC;
|
||||||
|
|
||||||
|
# define PEM_STRING_OCSP_REQUEST "OCSP REQUEST"
|
||||||
|
# define PEM_STRING_OCSP_RESPONSE "OCSP RESPONSE"
|
||||||
|
|
||||||
|
# define d2i_OCSP_REQUEST_bio(bp,p) ASN1_d2i_bio_of(OCSP_REQUEST,OCSP_REQUEST_new,d2i_OCSP_REQUEST,bp,p)
|
||||||
|
|
||||||
|
# define d2i_OCSP_RESPONSE_bio(bp,p) ASN1_d2i_bio_of(OCSP_RESPONSE,OCSP_RESPONSE_new,d2i_OCSP_RESPONSE,bp,p)
|
||||||
|
|
||||||
|
# define PEM_read_bio_OCSP_REQUEST(bp,x,cb) (OCSP_REQUEST *)PEM_ASN1_read_bio( \
|
||||||
|
(char *(*)())d2i_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST, \
|
||||||
|
bp,(char **)(x),cb,NULL)
|
||||||
|
|
||||||
|
# define PEM_read_bio_OCSP_RESPONSE(bp,x,cb) (OCSP_RESPONSE *)PEM_ASN1_read_bio(\
|
||||||
|
(char *(*)())d2i_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE, \
|
||||||
|
bp,(char **)(x),cb,NULL)
|
||||||
|
|
||||||
|
# define PEM_write_bio_OCSP_REQUEST(bp,o) \
|
||||||
|
PEM_ASN1_write_bio((int (*)())i2d_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,\
|
||||||
|
bp,(char *)(o), NULL,NULL,0,NULL,NULL)
|
||||||
|
|
||||||
|
# define PEM_write_bio_OCSP_RESPONSE(bp,o) \
|
||||||
|
PEM_ASN1_write_bio((int (*)())i2d_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,\
|
||||||
|
bp,(char *)(o), NULL,NULL,0,NULL,NULL)
|
||||||
|
|
||||||
|
# define i2d_OCSP_RESPONSE_bio(bp,o) ASN1_i2d_bio_of(OCSP_RESPONSE,i2d_OCSP_RESPONSE,bp,o)
|
||||||
|
|
||||||
|
# define i2d_OCSP_REQUEST_bio(bp,o) ASN1_i2d_bio_of(OCSP_REQUEST,i2d_OCSP_REQUEST,bp,o)
|
||||||
|
|
||||||
|
# define ASN1_BIT_STRING_digest(data,type,md,len) \
|
||||||
|
ASN1_item_digest(ASN1_ITEM_rptr(ASN1_BIT_STRING),type,data,md,len)
|
||||||
|
|
||||||
|
# define OCSP_CERTSTATUS_dup(cs)\
|
||||||
|
(OCSP_CERTSTATUS*)ASN1_dup((i2d_of_void *)i2d_OCSP_CERTSTATUS,\
|
||||||
|
(d2i_of_void *)d2i_OCSP_CERTSTATUS,(char *)(cs))
|
||||||
|
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(OCSP_CERTID)
|
||||||
|
|
||||||
|
OSSL_HTTP_REQ_CTX *OCSP_sendreq_new(BIO *io, const char *path,
|
||||||
|
const OCSP_REQUEST *req, int buf_size);
|
||||||
|
OCSP_RESPONSE *OCSP_sendreq_bio(BIO *b, const char *path, OCSP_REQUEST *req);
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
typedef OSSL_HTTP_REQ_CTX OCSP_REQ_CTX;
|
||||||
|
# define OCSP_REQ_CTX_new(io, buf_size) \
|
||||||
|
OSSL_HTTP_REQ_CTX_new(io, io, buf_size)
|
||||||
|
# define OCSP_REQ_CTX_free OSSL_HTTP_REQ_CTX_free
|
||||||
|
# define OCSP_REQ_CTX_http(rctx, op, path) \
|
||||||
|
(OSSL_HTTP_REQ_CTX_set_expected(rctx, NULL, 1 /* asn1 */, 0, 0) && \
|
||||||
|
OSSL_HTTP_REQ_CTX_set_request_line(rctx, strcmp(op, "POST") == 0, \
|
||||||
|
NULL, NULL, path))
|
||||||
|
# define OCSP_REQ_CTX_add1_header OSSL_HTTP_REQ_CTX_add1_header
|
||||||
|
# define OCSP_REQ_CTX_i2d(r, it, req) \
|
||||||
|
OSSL_HTTP_REQ_CTX_set1_req(r, "application/ocsp-request", it, req)
|
||||||
|
# define OCSP_REQ_CTX_set1_req(r, req) \
|
||||||
|
OCSP_REQ_CTX_i2d(r, ASN1_ITEM_rptr(OCSP_REQUEST), (ASN1_VALUE *)(req))
|
||||||
|
# define OCSP_REQ_CTX_nbio OSSL_HTTP_REQ_CTX_nbio
|
||||||
|
# define OCSP_REQ_CTX_nbio_d2i OSSL_HTTP_REQ_CTX_nbio_d2i
|
||||||
|
# define OCSP_sendreq_nbio(p, r) \
|
||||||
|
OSSL_HTTP_REQ_CTX_nbio_d2i(r, (ASN1_VALUE **)(p), \
|
||||||
|
ASN1_ITEM_rptr(OCSP_RESPONSE))
|
||||||
|
# define OCSP_REQ_CTX_get0_mem_bio OSSL_HTTP_REQ_CTX_get0_mem_bio
|
||||||
|
# define OCSP_set_max_response_length OSSL_HTTP_REQ_CTX_set_max_response_length
|
||||||
|
# endif
|
||||||
|
|
||||||
|
OCSP_CERTID *OCSP_cert_to_id(const EVP_MD *dgst, const X509 *subject,
|
||||||
|
const X509 *issuer);
|
||||||
|
|
||||||
|
OCSP_CERTID *OCSP_cert_id_new(const EVP_MD *dgst,
|
||||||
|
const X509_NAME *issuerName,
|
||||||
|
const ASN1_BIT_STRING *issuerKey,
|
||||||
|
const ASN1_INTEGER *serialNumber);
|
||||||
|
|
||||||
|
OCSP_ONEREQ *OCSP_request_add0_id(OCSP_REQUEST *req, OCSP_CERTID *cid);
|
||||||
|
|
||||||
|
int OCSP_request_add1_nonce(OCSP_REQUEST *req, unsigned char *val, int len);
|
||||||
|
int OCSP_basic_add1_nonce(OCSP_BASICRESP *resp, unsigned char *val, int len);
|
||||||
|
int OCSP_check_nonce(OCSP_REQUEST *req, OCSP_BASICRESP *bs);
|
||||||
|
int OCSP_copy_nonce(OCSP_BASICRESP *resp, OCSP_REQUEST *req);
|
||||||
|
|
||||||
|
int OCSP_request_set1_name(OCSP_REQUEST *req, const X509_NAME *nm);
|
||||||
|
int OCSP_request_add1_cert(OCSP_REQUEST *req, X509 *cert);
|
||||||
|
|
||||||
|
int OCSP_request_sign(OCSP_REQUEST *req,
|
||||||
|
X509 *signer,
|
||||||
|
EVP_PKEY *key,
|
||||||
|
const EVP_MD *dgst,
|
||||||
|
STACK_OF(X509) *certs, unsigned long flags);
|
||||||
|
|
||||||
|
int OCSP_response_status(OCSP_RESPONSE *resp);
|
||||||
|
OCSP_BASICRESP *OCSP_response_get1_basic(OCSP_RESPONSE *resp);
|
||||||
|
|
||||||
|
const ASN1_OCTET_STRING *OCSP_resp_get0_signature(const OCSP_BASICRESP *bs);
|
||||||
|
const X509_ALGOR *OCSP_resp_get0_tbs_sigalg(const OCSP_BASICRESP *bs);
|
||||||
|
const OCSP_RESPDATA *OCSP_resp_get0_respdata(const OCSP_BASICRESP *bs);
|
||||||
|
int OCSP_resp_get0_signer(OCSP_BASICRESP *bs, X509 **signer,
|
||||||
|
STACK_OF(X509) *extra_certs);
|
||||||
|
|
||||||
|
int OCSP_resp_count(OCSP_BASICRESP *bs);
|
||||||
|
OCSP_SINGLERESP *OCSP_resp_get0(OCSP_BASICRESP *bs, int idx);
|
||||||
|
const ASN1_GENERALIZEDTIME *OCSP_resp_get0_produced_at(const OCSP_BASICRESP* bs);
|
||||||
|
const STACK_OF(X509) *OCSP_resp_get0_certs(const OCSP_BASICRESP *bs);
|
||||||
|
int OCSP_resp_get0_id(const OCSP_BASICRESP *bs,
|
||||||
|
const ASN1_OCTET_STRING **pid,
|
||||||
|
const X509_NAME **pname);
|
||||||
|
int OCSP_resp_get1_id(const OCSP_BASICRESP *bs,
|
||||||
|
ASN1_OCTET_STRING **pid,
|
||||||
|
X509_NAME **pname);
|
||||||
|
|
||||||
|
int OCSP_resp_find(OCSP_BASICRESP *bs, OCSP_CERTID *id, int last);
|
||||||
|
int OCSP_single_get0_status(OCSP_SINGLERESP *single, int *reason,
|
||||||
|
ASN1_GENERALIZEDTIME **revtime,
|
||||||
|
ASN1_GENERALIZEDTIME **thisupd,
|
||||||
|
ASN1_GENERALIZEDTIME **nextupd);
|
||||||
|
int OCSP_resp_find_status(OCSP_BASICRESP *bs, OCSP_CERTID *id, int *status,
|
||||||
|
int *reason,
|
||||||
|
ASN1_GENERALIZEDTIME **revtime,
|
||||||
|
ASN1_GENERALIZEDTIME **thisupd,
|
||||||
|
ASN1_GENERALIZEDTIME **nextupd);
|
||||||
|
int OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd,
|
||||||
|
ASN1_GENERALIZEDTIME *nextupd, long sec, long maxsec);
|
||||||
|
|
||||||
|
int OCSP_request_verify(OCSP_REQUEST *req, STACK_OF(X509) *certs,
|
||||||
|
X509_STORE *store, unsigned long flags);
|
||||||
|
|
||||||
|
# define OCSP_parse_url(url, host, port, path, ssl) \
|
||||||
|
OSSL_HTTP_parse_url(url, ssl, NULL, host, port, NULL, path, NULL, NULL)
|
||||||
|
|
||||||
|
int OCSP_id_issuer_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b);
|
||||||
|
int OCSP_id_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b);
|
||||||
|
|
||||||
|
int OCSP_request_onereq_count(OCSP_REQUEST *req);
|
||||||
|
OCSP_ONEREQ *OCSP_request_onereq_get0(OCSP_REQUEST *req, int i);
|
||||||
|
OCSP_CERTID *OCSP_onereq_get0_id(OCSP_ONEREQ *one);
|
||||||
|
int OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd,
|
||||||
|
ASN1_OCTET_STRING **pikeyHash,
|
||||||
|
ASN1_INTEGER **pserial, OCSP_CERTID *cid);
|
||||||
|
int OCSP_request_is_signed(OCSP_REQUEST *req);
|
||||||
|
OCSP_RESPONSE *OCSP_response_create(int status, OCSP_BASICRESP *bs);
|
||||||
|
OCSP_SINGLERESP *OCSP_basic_add1_status(OCSP_BASICRESP *rsp,
|
||||||
|
OCSP_CERTID *cid,
|
||||||
|
int status, int reason,
|
||||||
|
ASN1_TIME *revtime,
|
||||||
|
ASN1_TIME *thisupd,
|
||||||
|
ASN1_TIME *nextupd);
|
||||||
|
int OCSP_basic_add1_cert(OCSP_BASICRESP *resp, X509 *cert);
|
||||||
|
int OCSP_basic_sign(OCSP_BASICRESP *brsp,
|
||||||
|
X509 *signer, EVP_PKEY *key, const EVP_MD *dgst,
|
||||||
|
STACK_OF(X509) *certs, unsigned long flags);
|
||||||
|
int OCSP_basic_sign_ctx(OCSP_BASICRESP *brsp,
|
||||||
|
X509 *signer, EVP_MD_CTX *ctx,
|
||||||
|
STACK_OF(X509) *certs, unsigned long flags);
|
||||||
|
int OCSP_RESPID_set_by_name(OCSP_RESPID *respid, X509 *cert);
|
||||||
|
int OCSP_RESPID_set_by_key_ex(OCSP_RESPID *respid, X509 *cert,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
int OCSP_RESPID_set_by_key(OCSP_RESPID *respid, X509 *cert);
|
||||||
|
int OCSP_RESPID_match_ex(OCSP_RESPID *respid, X509 *cert, OSSL_LIB_CTX *libctx,
|
||||||
|
const char *propq);
|
||||||
|
int OCSP_RESPID_match(OCSP_RESPID *respid, X509 *cert);
|
||||||
|
|
||||||
|
X509_EXTENSION *OCSP_crlID_new(const char *url, long *n, char *tim);
|
||||||
|
|
||||||
|
X509_EXTENSION *OCSP_accept_responses_new(char **oids);
|
||||||
|
|
||||||
|
X509_EXTENSION *OCSP_archive_cutoff_new(char *tim);
|
||||||
|
|
||||||
|
X509_EXTENSION *OCSP_url_svcloc_new(const X509_NAME *issuer, const char **urls);
|
||||||
|
|
||||||
|
int OCSP_REQUEST_get_ext_count(OCSP_REQUEST *x);
|
||||||
|
int OCSP_REQUEST_get_ext_by_NID(OCSP_REQUEST *x, int nid, int lastpos);
|
||||||
|
int OCSP_REQUEST_get_ext_by_OBJ(OCSP_REQUEST *x, const ASN1_OBJECT *obj,
|
||||||
|
int lastpos);
|
||||||
|
int OCSP_REQUEST_get_ext_by_critical(OCSP_REQUEST *x, int crit, int lastpos);
|
||||||
|
X509_EXTENSION *OCSP_REQUEST_get_ext(OCSP_REQUEST *x, int loc);
|
||||||
|
X509_EXTENSION *OCSP_REQUEST_delete_ext(OCSP_REQUEST *x, int loc);
|
||||||
|
void *OCSP_REQUEST_get1_ext_d2i(OCSP_REQUEST *x, int nid, int *crit,
|
||||||
|
int *idx);
|
||||||
|
int OCSP_REQUEST_add1_ext_i2d(OCSP_REQUEST *x, int nid, void *value, int crit,
|
||||||
|
unsigned long flags);
|
||||||
|
int OCSP_REQUEST_add_ext(OCSP_REQUEST *x, X509_EXTENSION *ex, int loc);
|
||||||
|
|
||||||
|
int OCSP_ONEREQ_get_ext_count(OCSP_ONEREQ *x);
|
||||||
|
int OCSP_ONEREQ_get_ext_by_NID(OCSP_ONEREQ *x, int nid, int lastpos);
|
||||||
|
int OCSP_ONEREQ_get_ext_by_OBJ(OCSP_ONEREQ *x, const ASN1_OBJECT *obj, int lastpos);
|
||||||
|
int OCSP_ONEREQ_get_ext_by_critical(OCSP_ONEREQ *x, int crit, int lastpos);
|
||||||
|
X509_EXTENSION *OCSP_ONEREQ_get_ext(OCSP_ONEREQ *x, int loc);
|
||||||
|
X509_EXTENSION *OCSP_ONEREQ_delete_ext(OCSP_ONEREQ *x, int loc);
|
||||||
|
void *OCSP_ONEREQ_get1_ext_d2i(OCSP_ONEREQ *x, int nid, int *crit, int *idx);
|
||||||
|
int OCSP_ONEREQ_add1_ext_i2d(OCSP_ONEREQ *x, int nid, void *value, int crit,
|
||||||
|
unsigned long flags);
|
||||||
|
int OCSP_ONEREQ_add_ext(OCSP_ONEREQ *x, X509_EXTENSION *ex, int loc);
|
||||||
|
|
||||||
|
int OCSP_BASICRESP_get_ext_count(OCSP_BASICRESP *x);
|
||||||
|
int OCSP_BASICRESP_get_ext_by_NID(OCSP_BASICRESP *x, int nid, int lastpos);
|
||||||
|
int OCSP_BASICRESP_get_ext_by_OBJ(OCSP_BASICRESP *x, const ASN1_OBJECT *obj,
|
||||||
|
int lastpos);
|
||||||
|
int OCSP_BASICRESP_get_ext_by_critical(OCSP_BASICRESP *x, int crit,
|
||||||
|
int lastpos);
|
||||||
|
X509_EXTENSION *OCSP_BASICRESP_get_ext(OCSP_BASICRESP *x, int loc);
|
||||||
|
X509_EXTENSION *OCSP_BASICRESP_delete_ext(OCSP_BASICRESP *x, int loc);
|
||||||
|
void *OCSP_BASICRESP_get1_ext_d2i(OCSP_BASICRESP *x, int nid, int *crit,
|
||||||
|
int *idx);
|
||||||
|
int OCSP_BASICRESP_add1_ext_i2d(OCSP_BASICRESP *x, int nid, void *value,
|
||||||
|
int crit, unsigned long flags);
|
||||||
|
int OCSP_BASICRESP_add_ext(OCSP_BASICRESP *x, X509_EXTENSION *ex, int loc);
|
||||||
|
|
||||||
|
int OCSP_SINGLERESP_get_ext_count(OCSP_SINGLERESP *x);
|
||||||
|
int OCSP_SINGLERESP_get_ext_by_NID(OCSP_SINGLERESP *x, int nid, int lastpos);
|
||||||
|
int OCSP_SINGLERESP_get_ext_by_OBJ(OCSP_SINGLERESP *x, const ASN1_OBJECT *obj,
|
||||||
|
int lastpos);
|
||||||
|
int OCSP_SINGLERESP_get_ext_by_critical(OCSP_SINGLERESP *x, int crit,
|
||||||
|
int lastpos);
|
||||||
|
X509_EXTENSION *OCSP_SINGLERESP_get_ext(OCSP_SINGLERESP *x, int loc);
|
||||||
|
X509_EXTENSION *OCSP_SINGLERESP_delete_ext(OCSP_SINGLERESP *x, int loc);
|
||||||
|
void *OCSP_SINGLERESP_get1_ext_d2i(OCSP_SINGLERESP *x, int nid, int *crit,
|
||||||
|
int *idx);
|
||||||
|
int OCSP_SINGLERESP_add1_ext_i2d(OCSP_SINGLERESP *x, int nid, void *value,
|
||||||
|
int crit, unsigned long flags);
|
||||||
|
int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex, int loc);
|
||||||
|
const OCSP_CERTID *OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP *x);
|
||||||
|
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OCSP_SINGLERESP)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OCSP_CERTSTATUS)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OCSP_REVOKEDINFO)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OCSP_BASICRESP)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OCSP_RESPDATA)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OCSP_RESPID)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OCSP_RESPONSE)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OCSP_RESPBYTES)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OCSP_ONEREQ)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OCSP_CERTID)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OCSP_REQUEST)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OCSP_SIGNATURE)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OCSP_REQINFO)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OCSP_CRLID)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(OCSP_SERVICELOC)
|
||||||
|
|
||||||
|
const char *OCSP_response_status_str(long s);
|
||||||
|
const char *OCSP_cert_status_str(long s);
|
||||||
|
const char *OCSP_crl_reason_str(long s);
|
||||||
|
|
||||||
|
int OCSP_REQUEST_print(BIO *bp, OCSP_REQUEST *a, unsigned long flags);
|
||||||
|
int OCSP_RESPONSE_print(BIO *bp, OCSP_RESPONSE *o, unsigned long flags);
|
||||||
|
|
||||||
|
int OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF(X509) *certs,
|
||||||
|
X509_STORE *st, unsigned long flags);
|
||||||
|
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
# endif /* !defined(OPENSSL_NO_OCSP) */
|
||||||
|
#endif
|
113
deps/openssl/mingw64/include/openssl/opensslv.h.in
vendored
Normal file
113
deps/openssl/mingw64/include/openssl/opensslv.h.in
vendored
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
/*
|
||||||
|
* {- join("\n * ", @autowarntext) -}
|
||||||
|
*
|
||||||
|
* Copyright 1999-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_OPENSSLV_H
|
||||||
|
# define OPENSSL_OPENSSLV_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SECTION 1: VERSION DATA. These will change for each release
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Base version macros
|
||||||
|
*
|
||||||
|
* These macros express version number MAJOR.MINOR.PATCH exactly
|
||||||
|
*/
|
||||||
|
# define OPENSSL_VERSION_MAJOR {- $config{major} -}
|
||||||
|
# define OPENSSL_VERSION_MINOR {- $config{minor} -}
|
||||||
|
# define OPENSSL_VERSION_PATCH {- $config{patch} -}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Additional version information
|
||||||
|
*
|
||||||
|
* These are also part of the new version scheme, but aren't part
|
||||||
|
* of the version number itself.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Could be: #define OPENSSL_VERSION_PRE_RELEASE "-alpha.1" */
|
||||||
|
# define OPENSSL_VERSION_PRE_RELEASE "{- $config{prerelease} -}"
|
||||||
|
/* Could be: #define OPENSSL_VERSION_BUILD_METADATA "+fips" */
|
||||||
|
/* Could be: #define OPENSSL_VERSION_BUILD_METADATA "+vendor.1" */
|
||||||
|
# define OPENSSL_VERSION_BUILD_METADATA "{- $config{build_metadata} -}"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Note: The OpenSSL Project will never define OPENSSL_VERSION_BUILD_METADATA
|
||||||
|
* to be anything but the empty string. Its use is entirely reserved for
|
||||||
|
* others
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Shared library version
|
||||||
|
*
|
||||||
|
* This is strictly to express ABI version, which may or may not
|
||||||
|
* be related to the API version expressed with the macros above.
|
||||||
|
* This is defined in free form.
|
||||||
|
*/
|
||||||
|
# define OPENSSL_SHLIB_VERSION {- $config{shlib_version} -}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SECTION 2: USEFUL MACROS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* For checking general API compatibility when preprocessing */
|
||||||
|
# define OPENSSL_VERSION_PREREQ(maj,min) \
|
||||||
|
((OPENSSL_VERSION_MAJOR << 16) + OPENSSL_VERSION_MINOR >= ((maj) << 16) + (min))
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Macros to get the version in easily digested string form, both the short
|
||||||
|
* "MAJOR.MINOR.PATCH" variant (where MAJOR, MINOR and PATCH are replaced
|
||||||
|
* with the values from the corresponding OPENSSL_VERSION_ macros) and the
|
||||||
|
* longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and
|
||||||
|
* OPENSSL_VERSION_BUILD_METADATA_STR appended.
|
||||||
|
*/
|
||||||
|
# define OPENSSL_VERSION_STR "{- $config{version} -}"
|
||||||
|
# define OPENSSL_FULL_VERSION_STR "{- $config{full_version} -}"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SECTION 3: ADDITIONAL METADATA
|
||||||
|
*
|
||||||
|
* These strings are defined separately to allow them to be parsable.
|
||||||
|
*/
|
||||||
|
# define OPENSSL_RELEASE_DATE "{- $config{release_date} -}"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SECTION 4: BACKWARD COMPATIBILITY
|
||||||
|
*/
|
||||||
|
|
||||||
|
# define OPENSSL_VERSION_TEXT "OpenSSL {- "$config{full_version} $config{release_date}" -}"
|
||||||
|
|
||||||
|
/* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */
|
||||||
|
# ifdef OPENSSL_VERSION_PRE_RELEASE
|
||||||
|
# define _OPENSSL_VERSION_PRE_RELEASE 0x0L
|
||||||
|
# else
|
||||||
|
# define _OPENSSL_VERSION_PRE_RELEASE 0xfL
|
||||||
|
# endif
|
||||||
|
# define OPENSSL_VERSION_NUMBER \
|
||||||
|
( (OPENSSL_VERSION_MAJOR<<28) \
|
||||||
|
|(OPENSSL_VERSION_MINOR<<20) \
|
||||||
|
|(OPENSSL_VERSION_PATCH<<4) \
|
||||||
|
|_OPENSSL_VERSION_PRE_RELEASE )
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# include <openssl/macros.h>
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# define HEADER_OPENSSLV_H
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif /* OPENSSL_OPENSSLV_H */
|
63
deps/openssl/mingw64/include/openssl/param_build.h
vendored
Normal file
63
deps/openssl/mingw64/include/openssl/param_build.h
vendored
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_PARAM_BUILD_H
|
||||||
|
# define OPENSSL_PARAM_BUILD_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/params.h>
|
||||||
|
# include <openssl/types.h>
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
OSSL_PARAM_BLD *OSSL_PARAM_BLD_new(void);
|
||||||
|
OSSL_PARAM *OSSL_PARAM_BLD_to_param(OSSL_PARAM_BLD *bld);
|
||||||
|
void OSSL_PARAM_BLD_free(OSSL_PARAM_BLD *bld);
|
||||||
|
|
||||||
|
int OSSL_PARAM_BLD_push_int(OSSL_PARAM_BLD *bld, const char *key, int val);
|
||||||
|
int OSSL_PARAM_BLD_push_uint(OSSL_PARAM_BLD *bld, const char *key,
|
||||||
|
unsigned int val);
|
||||||
|
int OSSL_PARAM_BLD_push_long(OSSL_PARAM_BLD *bld, const char *key,
|
||||||
|
long int val);
|
||||||
|
int OSSL_PARAM_BLD_push_ulong(OSSL_PARAM_BLD *bld, const char *key,
|
||||||
|
unsigned long int val);
|
||||||
|
int OSSL_PARAM_BLD_push_int32(OSSL_PARAM_BLD *bld, const char *key,
|
||||||
|
int32_t val);
|
||||||
|
int OSSL_PARAM_BLD_push_uint32(OSSL_PARAM_BLD *bld, const char *key,
|
||||||
|
uint32_t val);
|
||||||
|
int OSSL_PARAM_BLD_push_int64(OSSL_PARAM_BLD *bld, const char *key,
|
||||||
|
int64_t val);
|
||||||
|
int OSSL_PARAM_BLD_push_uint64(OSSL_PARAM_BLD *bld, const char *key,
|
||||||
|
uint64_t val);
|
||||||
|
int OSSL_PARAM_BLD_push_size_t(OSSL_PARAM_BLD *bld, const char *key,
|
||||||
|
size_t val);
|
||||||
|
int OSSL_PARAM_BLD_push_time_t(OSSL_PARAM_BLD *bld, const char *key,
|
||||||
|
time_t val);
|
||||||
|
int OSSL_PARAM_BLD_push_double(OSSL_PARAM_BLD *bld, const char *key,
|
||||||
|
double val);
|
||||||
|
int OSSL_PARAM_BLD_push_BN(OSSL_PARAM_BLD *bld, const char *key,
|
||||||
|
const BIGNUM *bn);
|
||||||
|
int OSSL_PARAM_BLD_push_BN_pad(OSSL_PARAM_BLD *bld, const char *key,
|
||||||
|
const BIGNUM *bn, size_t sz);
|
||||||
|
int OSSL_PARAM_BLD_push_utf8_string(OSSL_PARAM_BLD *bld, const char *key,
|
||||||
|
const char *buf, size_t bsize);
|
||||||
|
int OSSL_PARAM_BLD_push_utf8_ptr(OSSL_PARAM_BLD *bld, const char *key,
|
||||||
|
char *buf, size_t bsize);
|
||||||
|
int OSSL_PARAM_BLD_push_octet_string(OSSL_PARAM_BLD *bld, const char *key,
|
||||||
|
const void *buf, size_t bsize);
|
||||||
|
int OSSL_PARAM_BLD_push_octet_ptr(OSSL_PARAM_BLD *bld, const char *key,
|
||||||
|
void *buf, size_t bsize);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
#endif /* OPENSSL_PARAM_BUILD_H */
|
160
deps/openssl/mingw64/include/openssl/params.h
vendored
Normal file
160
deps/openssl/mingw64/include/openssl/params.h
vendored
Normal file
@ -0,0 +1,160 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_PARAMS_H
|
||||||
|
# define OPENSSL_PARAMS_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/core.h>
|
||||||
|
# include <openssl/bn.h>
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# define OSSL_PARAM_UNMODIFIED ((size_t)-1)
|
||||||
|
|
||||||
|
# define OSSL_PARAM_END \
|
||||||
|
{ NULL, 0, NULL, 0, 0 }
|
||||||
|
|
||||||
|
# define OSSL_PARAM_DEFN(key, type, addr, sz) \
|
||||||
|
{ (key), (type), (addr), (sz), OSSL_PARAM_UNMODIFIED }
|
||||||
|
|
||||||
|
/* Basic parameter types without return sizes */
|
||||||
|
# define OSSL_PARAM_int(key, addr) \
|
||||||
|
OSSL_PARAM_DEFN((key), OSSL_PARAM_INTEGER, (addr), sizeof(int))
|
||||||
|
# define OSSL_PARAM_uint(key, addr) \
|
||||||
|
OSSL_PARAM_DEFN((key), OSSL_PARAM_UNSIGNED_INTEGER, (addr), \
|
||||||
|
sizeof(unsigned int))
|
||||||
|
# define OSSL_PARAM_long(key, addr) \
|
||||||
|
OSSL_PARAM_DEFN((key), OSSL_PARAM_INTEGER, (addr), sizeof(long int))
|
||||||
|
# define OSSL_PARAM_ulong(key, addr) \
|
||||||
|
OSSL_PARAM_DEFN((key), OSSL_PARAM_UNSIGNED_INTEGER, (addr), \
|
||||||
|
sizeof(unsigned long int))
|
||||||
|
# define OSSL_PARAM_int32(key, addr) \
|
||||||
|
OSSL_PARAM_DEFN((key), OSSL_PARAM_INTEGER, (addr), sizeof(int32_t))
|
||||||
|
# define OSSL_PARAM_uint32(key, addr) \
|
||||||
|
OSSL_PARAM_DEFN((key), OSSL_PARAM_UNSIGNED_INTEGER, (addr), \
|
||||||
|
sizeof(uint32_t))
|
||||||
|
# define OSSL_PARAM_int64(key, addr) \
|
||||||
|
OSSL_PARAM_DEFN((key), OSSL_PARAM_INTEGER, (addr), sizeof(int64_t))
|
||||||
|
# define OSSL_PARAM_uint64(key, addr) \
|
||||||
|
OSSL_PARAM_DEFN((key), OSSL_PARAM_UNSIGNED_INTEGER, (addr), \
|
||||||
|
sizeof(uint64_t))
|
||||||
|
# define OSSL_PARAM_size_t(key, addr) \
|
||||||
|
OSSL_PARAM_DEFN((key), OSSL_PARAM_UNSIGNED_INTEGER, (addr), sizeof(size_t))
|
||||||
|
# define OSSL_PARAM_time_t(key, addr) \
|
||||||
|
OSSL_PARAM_DEFN((key), OSSL_PARAM_INTEGER, (addr), sizeof(time_t))
|
||||||
|
# define OSSL_PARAM_double(key, addr) \
|
||||||
|
OSSL_PARAM_DEFN((key), OSSL_PARAM_REAL, (addr), sizeof(double))
|
||||||
|
|
||||||
|
# define OSSL_PARAM_BN(key, bn, sz) \
|
||||||
|
OSSL_PARAM_DEFN((key), OSSL_PARAM_UNSIGNED_INTEGER, (bn), (sz))
|
||||||
|
# define OSSL_PARAM_utf8_string(key, addr, sz) \
|
||||||
|
OSSL_PARAM_DEFN((key), OSSL_PARAM_UTF8_STRING, (addr), sz)
|
||||||
|
# define OSSL_PARAM_octet_string(key, addr, sz) \
|
||||||
|
OSSL_PARAM_DEFN((key), OSSL_PARAM_OCTET_STRING, (addr), sz)
|
||||||
|
|
||||||
|
# define OSSL_PARAM_utf8_ptr(key, addr, sz) \
|
||||||
|
OSSL_PARAM_DEFN((key), OSSL_PARAM_UTF8_PTR, (addr), sz)
|
||||||
|
# define OSSL_PARAM_octet_ptr(key, addr, sz) \
|
||||||
|
OSSL_PARAM_DEFN((key), OSSL_PARAM_OCTET_PTR, (addr), sz)
|
||||||
|
|
||||||
|
/* Search an OSSL_PARAM array for a matching name */
|
||||||
|
OSSL_PARAM *OSSL_PARAM_locate(OSSL_PARAM *p, const char *key);
|
||||||
|
const OSSL_PARAM *OSSL_PARAM_locate_const(const OSSL_PARAM *p, const char *key);
|
||||||
|
|
||||||
|
/* Basic parameter type run-time construction */
|
||||||
|
OSSL_PARAM OSSL_PARAM_construct_int(const char *key, int *buf);
|
||||||
|
OSSL_PARAM OSSL_PARAM_construct_uint(const char *key, unsigned int *buf);
|
||||||
|
OSSL_PARAM OSSL_PARAM_construct_long(const char *key, long int *buf);
|
||||||
|
OSSL_PARAM OSSL_PARAM_construct_ulong(const char *key, unsigned long int *buf);
|
||||||
|
OSSL_PARAM OSSL_PARAM_construct_int32(const char *key, int32_t *buf);
|
||||||
|
OSSL_PARAM OSSL_PARAM_construct_uint32(const char *key, uint32_t *buf);
|
||||||
|
OSSL_PARAM OSSL_PARAM_construct_int64(const char *key, int64_t *buf);
|
||||||
|
OSSL_PARAM OSSL_PARAM_construct_uint64(const char *key, uint64_t *buf);
|
||||||
|
OSSL_PARAM OSSL_PARAM_construct_size_t(const char *key, size_t *buf);
|
||||||
|
OSSL_PARAM OSSL_PARAM_construct_time_t(const char *key, time_t *buf);
|
||||||
|
OSSL_PARAM OSSL_PARAM_construct_BN(const char *key, unsigned char *buf,
|
||||||
|
size_t bsize);
|
||||||
|
OSSL_PARAM OSSL_PARAM_construct_double(const char *key, double *buf);
|
||||||
|
OSSL_PARAM OSSL_PARAM_construct_utf8_string(const char *key, char *buf,
|
||||||
|
size_t bsize);
|
||||||
|
OSSL_PARAM OSSL_PARAM_construct_utf8_ptr(const char *key, char **buf,
|
||||||
|
size_t bsize);
|
||||||
|
OSSL_PARAM OSSL_PARAM_construct_octet_string(const char *key, void *buf,
|
||||||
|
size_t bsize);
|
||||||
|
OSSL_PARAM OSSL_PARAM_construct_octet_ptr(const char *key, void **buf,
|
||||||
|
size_t bsize);
|
||||||
|
OSSL_PARAM OSSL_PARAM_construct_end(void);
|
||||||
|
|
||||||
|
int OSSL_PARAM_allocate_from_text(OSSL_PARAM *to,
|
||||||
|
const OSSL_PARAM *paramdefs,
|
||||||
|
const char *key, const char *value,
|
||||||
|
size_t value_n, int *found);
|
||||||
|
|
||||||
|
int OSSL_PARAM_get_int(const OSSL_PARAM *p, int *val);
|
||||||
|
int OSSL_PARAM_get_uint(const OSSL_PARAM *p, unsigned int *val);
|
||||||
|
int OSSL_PARAM_get_long(const OSSL_PARAM *p, long int *val);
|
||||||
|
int OSSL_PARAM_get_ulong(const OSSL_PARAM *p, unsigned long int *val);
|
||||||
|
int OSSL_PARAM_get_int32(const OSSL_PARAM *p, int32_t *val);
|
||||||
|
int OSSL_PARAM_get_uint32(const OSSL_PARAM *p, uint32_t *val);
|
||||||
|
int OSSL_PARAM_get_int64(const OSSL_PARAM *p, int64_t *val);
|
||||||
|
int OSSL_PARAM_get_uint64(const OSSL_PARAM *p, uint64_t *val);
|
||||||
|
int OSSL_PARAM_get_size_t(const OSSL_PARAM *p, size_t *val);
|
||||||
|
int OSSL_PARAM_get_time_t(const OSSL_PARAM *p, time_t *val);
|
||||||
|
|
||||||
|
int OSSL_PARAM_set_int(OSSL_PARAM *p, int val);
|
||||||
|
int OSSL_PARAM_set_uint(OSSL_PARAM *p, unsigned int val);
|
||||||
|
int OSSL_PARAM_set_long(OSSL_PARAM *p, long int val);
|
||||||
|
int OSSL_PARAM_set_ulong(OSSL_PARAM *p, unsigned long int val);
|
||||||
|
int OSSL_PARAM_set_int32(OSSL_PARAM *p, int32_t val);
|
||||||
|
int OSSL_PARAM_set_uint32(OSSL_PARAM *p, uint32_t val);
|
||||||
|
int OSSL_PARAM_set_int64(OSSL_PARAM *p, int64_t val);
|
||||||
|
int OSSL_PARAM_set_uint64(OSSL_PARAM *p, uint64_t val);
|
||||||
|
int OSSL_PARAM_set_size_t(OSSL_PARAM *p, size_t val);
|
||||||
|
int OSSL_PARAM_set_time_t(OSSL_PARAM *p, time_t val);
|
||||||
|
|
||||||
|
int OSSL_PARAM_get_double(const OSSL_PARAM *p, double *val);
|
||||||
|
int OSSL_PARAM_set_double(OSSL_PARAM *p, double val);
|
||||||
|
|
||||||
|
int OSSL_PARAM_get_BN(const OSSL_PARAM *p, BIGNUM **val);
|
||||||
|
int OSSL_PARAM_set_BN(OSSL_PARAM *p, const BIGNUM *val);
|
||||||
|
|
||||||
|
int OSSL_PARAM_get_utf8_string(const OSSL_PARAM *p, char **val, size_t max_len);
|
||||||
|
int OSSL_PARAM_set_utf8_string(OSSL_PARAM *p, const char *val);
|
||||||
|
|
||||||
|
int OSSL_PARAM_get_octet_string(const OSSL_PARAM *p, void **val, size_t max_len,
|
||||||
|
size_t *used_len);
|
||||||
|
int OSSL_PARAM_set_octet_string(OSSL_PARAM *p, const void *val, size_t len);
|
||||||
|
|
||||||
|
int OSSL_PARAM_get_utf8_ptr(const OSSL_PARAM *p, const char **val);
|
||||||
|
int OSSL_PARAM_set_utf8_ptr(OSSL_PARAM *p, const char *val);
|
||||||
|
|
||||||
|
int OSSL_PARAM_get_octet_ptr(const OSSL_PARAM *p, const void **val,
|
||||||
|
size_t *used_len);
|
||||||
|
int OSSL_PARAM_set_octet_ptr(OSSL_PARAM *p, const void *val,
|
||||||
|
size_t used_len);
|
||||||
|
|
||||||
|
int OSSL_PARAM_get_utf8_string_ptr(const OSSL_PARAM *p, const char **val);
|
||||||
|
int OSSL_PARAM_get_octet_string_ptr(const OSSL_PARAM *p, const void **val,
|
||||||
|
size_t *used_len);
|
||||||
|
|
||||||
|
int OSSL_PARAM_modified(const OSSL_PARAM *p);
|
||||||
|
void OSSL_PARAM_set_all_unmodified(OSSL_PARAM *p);
|
||||||
|
|
||||||
|
OSSL_PARAM *OSSL_PARAM_dup(const OSSL_PARAM *p);
|
||||||
|
OSSL_PARAM *OSSL_PARAM_merge(const OSSL_PARAM *p1, const OSSL_PARAM *p2);
|
||||||
|
void OSSL_PARAM_free(OSSL_PARAM *p);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
#endif
|
330
deps/openssl/mingw64/include/openssl/pkcs12.h.in
vendored
Normal file
330
deps/openssl/mingw64/include/openssl/pkcs12.h.in
vendored
Normal file
@ -0,0 +1,330 @@
|
|||||||
|
/*
|
||||||
|
* {- join("\n * ", @autowarntext) -}
|
||||||
|
*
|
||||||
|
* Copyright 1999-2022 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
{-
|
||||||
|
use OpenSSL::stackhash qw(generate_stack_macros);
|
||||||
|
-}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_PKCS12_H
|
||||||
|
# define OPENSSL_PKCS12_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/macros.h>
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# define HEADER_PKCS12_H
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# include <openssl/bio.h>
|
||||||
|
# include <openssl/core.h>
|
||||||
|
# include <openssl/x509.h>
|
||||||
|
# include <openssl/pkcs12err.h>
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
# include <stdio.h>
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
# define PKCS12_KEY_ID 1
|
||||||
|
# define PKCS12_IV_ID 2
|
||||||
|
# define PKCS12_MAC_ID 3
|
||||||
|
|
||||||
|
/* Default iteration count */
|
||||||
|
# ifndef PKCS12_DEFAULT_ITER
|
||||||
|
# define PKCS12_DEFAULT_ITER PKCS5_DEFAULT_ITER
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# define PKCS12_MAC_KEY_LENGTH 20
|
||||||
|
|
||||||
|
# define PKCS12_SALT_LEN 8
|
||||||
|
|
||||||
|
/* It's not clear if these are actually needed... */
|
||||||
|
# define PKCS12_key_gen PKCS12_key_gen_utf8
|
||||||
|
# define PKCS12_add_friendlyname PKCS12_add_friendlyname_utf8
|
||||||
|
|
||||||
|
/* MS key usage constants */
|
||||||
|
|
||||||
|
# define KEY_EX 0x10
|
||||||
|
# define KEY_SIG 0x80
|
||||||
|
|
||||||
|
typedef struct PKCS12_MAC_DATA_st PKCS12_MAC_DATA;
|
||||||
|
|
||||||
|
typedef struct PKCS12_st PKCS12;
|
||||||
|
|
||||||
|
typedef struct PKCS12_SAFEBAG_st PKCS12_SAFEBAG;
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_stack_macros("PKCS12_SAFEBAG");
|
||||||
|
-}
|
||||||
|
|
||||||
|
typedef struct pkcs12_bag_st PKCS12_BAGS;
|
||||||
|
|
||||||
|
# define PKCS12_ERROR 0
|
||||||
|
# define PKCS12_OK 1
|
||||||
|
|
||||||
|
/* Compatibility macros */
|
||||||
|
|
||||||
|
#ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
|
||||||
|
# define M_PKCS12_bag_type PKCS12_bag_type
|
||||||
|
# define M_PKCS12_cert_bag_type PKCS12_cert_bag_type
|
||||||
|
# define M_PKCS12_crl_bag_type PKCS12_cert_bag_type
|
||||||
|
|
||||||
|
# define PKCS12_certbag2x509 PKCS12_SAFEBAG_get1_cert
|
||||||
|
# define PKCS12_certbag2scrl PKCS12_SAFEBAG_get1_crl
|
||||||
|
# define PKCS12_bag_type PKCS12_SAFEBAG_get_nid
|
||||||
|
# define PKCS12_cert_bag_type PKCS12_SAFEBAG_get_bag_nid
|
||||||
|
# define PKCS12_x5092certbag PKCS12_SAFEBAG_create_cert
|
||||||
|
# define PKCS12_x509crl2certbag PKCS12_SAFEBAG_create_crl
|
||||||
|
# define PKCS12_MAKE_KEYBAG PKCS12_SAFEBAG_create0_p8inf
|
||||||
|
# define PKCS12_MAKE_SHKEYBAG PKCS12_SAFEBAG_create_pkcs8_encrypt
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
OSSL_DEPRECATEDIN_1_1_0 ASN1_TYPE *PKCS12_get_attr(const PKCS12_SAFEBAG *bag,
|
||||||
|
int attr_nid);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ASN1_TYPE *PKCS8_get_attr(PKCS8_PRIV_KEY_INFO *p8, int attr_nid);
|
||||||
|
int PKCS12_mac_present(const PKCS12 *p12);
|
||||||
|
void PKCS12_get0_mac(const ASN1_OCTET_STRING **pmac,
|
||||||
|
const X509_ALGOR **pmacalg,
|
||||||
|
const ASN1_OCTET_STRING **psalt,
|
||||||
|
const ASN1_INTEGER **piter,
|
||||||
|
const PKCS12 *p12);
|
||||||
|
|
||||||
|
const ASN1_TYPE *PKCS12_SAFEBAG_get0_attr(const PKCS12_SAFEBAG *bag,
|
||||||
|
int attr_nid);
|
||||||
|
const ASN1_OBJECT *PKCS12_SAFEBAG_get0_type(const PKCS12_SAFEBAG *bag);
|
||||||
|
int PKCS12_SAFEBAG_get_nid(const PKCS12_SAFEBAG *bag);
|
||||||
|
int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag);
|
||||||
|
const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag);
|
||||||
|
const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag);
|
||||||
|
|
||||||
|
X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag);
|
||||||
|
X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag);
|
||||||
|
const STACK_OF(PKCS12_SAFEBAG) *
|
||||||
|
PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag);
|
||||||
|
const PKCS8_PRIV_KEY_INFO *PKCS12_SAFEBAG_get0_p8inf(const PKCS12_SAFEBAG *bag);
|
||||||
|
const X509_SIG *PKCS12_SAFEBAG_get0_pkcs8(const PKCS12_SAFEBAG *bag);
|
||||||
|
|
||||||
|
PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_cert(X509 *x509);
|
||||||
|
PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_crl(X509_CRL *crl);
|
||||||
|
PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_secret(int type, int vtype, const unsigned char *value, int len);
|
||||||
|
PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_p8inf(PKCS8_PRIV_KEY_INFO *p8);
|
||||||
|
PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_pkcs8(X509_SIG *p8);
|
||||||
|
PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_pkcs8_encrypt(int pbe_nid,
|
||||||
|
const char *pass,
|
||||||
|
int passlen,
|
||||||
|
unsigned char *salt,
|
||||||
|
int saltlen, int iter,
|
||||||
|
PKCS8_PRIV_KEY_INFO *p8inf);
|
||||||
|
PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_pkcs8_encrypt_ex(int pbe_nid,
|
||||||
|
const char *pass,
|
||||||
|
int passlen,
|
||||||
|
unsigned char *salt,
|
||||||
|
int saltlen, int iter,
|
||||||
|
PKCS8_PRIV_KEY_INFO *p8inf,
|
||||||
|
OSSL_LIB_CTX *ctx,
|
||||||
|
const char *propq);
|
||||||
|
|
||||||
|
PKCS12_SAFEBAG *PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM *it,
|
||||||
|
int nid1, int nid2);
|
||||||
|
PKCS8_PRIV_KEY_INFO *PKCS8_decrypt(const X509_SIG *p8, const char *pass,
|
||||||
|
int passlen);
|
||||||
|
PKCS8_PRIV_KEY_INFO *PKCS8_decrypt_ex(const X509_SIG *p8, const char *pass,
|
||||||
|
int passlen, OSSL_LIB_CTX *ctx,
|
||||||
|
const char *propq);
|
||||||
|
PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey(const PKCS12_SAFEBAG *bag,
|
||||||
|
const char *pass, int passlen);
|
||||||
|
PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey_ex(const PKCS12_SAFEBAG *bag,
|
||||||
|
const char *pass, int passlen,
|
||||||
|
OSSL_LIB_CTX *ctx,
|
||||||
|
const char *propq);
|
||||||
|
X509_SIG *PKCS8_encrypt(int pbe_nid, const EVP_CIPHER *cipher,
|
||||||
|
const char *pass, int passlen, unsigned char *salt,
|
||||||
|
int saltlen, int iter, PKCS8_PRIV_KEY_INFO *p8);
|
||||||
|
X509_SIG *PKCS8_encrypt_ex(int pbe_nid, const EVP_CIPHER *cipher,
|
||||||
|
const char *pass, int passlen, unsigned char *salt,
|
||||||
|
int saltlen, int iter, PKCS8_PRIV_KEY_INFO *p8,
|
||||||
|
OSSL_LIB_CTX *ctx, const char *propq);
|
||||||
|
X509_SIG *PKCS8_set0_pbe(const char *pass, int passlen,
|
||||||
|
PKCS8_PRIV_KEY_INFO *p8inf, X509_ALGOR *pbe);
|
||||||
|
X509_SIG *PKCS8_set0_pbe_ex(const char *pass, int passlen,
|
||||||
|
PKCS8_PRIV_KEY_INFO *p8inf, X509_ALGOR *pbe,
|
||||||
|
OSSL_LIB_CTX *ctx, const char *propq);
|
||||||
|
PKCS7 *PKCS12_pack_p7data(STACK_OF(PKCS12_SAFEBAG) *sk);
|
||||||
|
STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7data(PKCS7 *p7);
|
||||||
|
PKCS7 *PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen,
|
||||||
|
unsigned char *salt, int saltlen, int iter,
|
||||||
|
STACK_OF(PKCS12_SAFEBAG) *bags);
|
||||||
|
PKCS7 *PKCS12_pack_p7encdata_ex(int pbe_nid, const char *pass, int passlen,
|
||||||
|
unsigned char *salt, int saltlen, int iter,
|
||||||
|
STACK_OF(PKCS12_SAFEBAG) *bags,
|
||||||
|
OSSL_LIB_CTX *ctx, const char *propq);
|
||||||
|
|
||||||
|
STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7encdata(PKCS7 *p7, const char *pass,
|
||||||
|
int passlen);
|
||||||
|
|
||||||
|
int PKCS12_pack_authsafes(PKCS12 *p12, STACK_OF(PKCS7) *safes);
|
||||||
|
STACK_OF(PKCS7) *PKCS12_unpack_authsafes(const PKCS12 *p12);
|
||||||
|
|
||||||
|
int PKCS12_add_localkeyid(PKCS12_SAFEBAG *bag, unsigned char *name,
|
||||||
|
int namelen);
|
||||||
|
int PKCS12_add_friendlyname_asc(PKCS12_SAFEBAG *bag, const char *name,
|
||||||
|
int namelen);
|
||||||
|
int PKCS12_add_friendlyname_utf8(PKCS12_SAFEBAG *bag, const char *name,
|
||||||
|
int namelen);
|
||||||
|
int PKCS12_add_CSPName_asc(PKCS12_SAFEBAG *bag, const char *name,
|
||||||
|
int namelen);
|
||||||
|
int PKCS12_add_friendlyname_uni(PKCS12_SAFEBAG *bag,
|
||||||
|
const unsigned char *name, int namelen);
|
||||||
|
int PKCS12_add1_attr_by_NID(PKCS12_SAFEBAG *bag, int nid, int type,
|
||||||
|
const unsigned char *bytes, int len);
|
||||||
|
int PKCS12_add1_attr_by_txt(PKCS12_SAFEBAG *bag, const char *attrname, int type,
|
||||||
|
const unsigned char *bytes, int len);
|
||||||
|
int PKCS8_add_keyusage(PKCS8_PRIV_KEY_INFO *p8, int usage);
|
||||||
|
ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs,
|
||||||
|
int attr_nid);
|
||||||
|
char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag);
|
||||||
|
const STACK_OF(X509_ATTRIBUTE) *
|
||||||
|
PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag);
|
||||||
|
unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor,
|
||||||
|
const char *pass, int passlen,
|
||||||
|
const unsigned char *in, int inlen,
|
||||||
|
unsigned char **data, int *datalen,
|
||||||
|
int en_de);
|
||||||
|
unsigned char *PKCS12_pbe_crypt_ex(const X509_ALGOR *algor,
|
||||||
|
const char *pass, int passlen,
|
||||||
|
const unsigned char *in, int inlen,
|
||||||
|
unsigned char **data, int *datalen,
|
||||||
|
int en_de, OSSL_LIB_CTX *libctx,
|
||||||
|
const char *propq);
|
||||||
|
void *PKCS12_item_decrypt_d2i(const X509_ALGOR *algor, const ASN1_ITEM *it,
|
||||||
|
const char *pass, int passlen,
|
||||||
|
const ASN1_OCTET_STRING *oct, int zbuf);
|
||||||
|
void *PKCS12_item_decrypt_d2i_ex(const X509_ALGOR *algor, const ASN1_ITEM *it,
|
||||||
|
const char *pass, int passlen,
|
||||||
|
const ASN1_OCTET_STRING *oct, int zbuf,
|
||||||
|
OSSL_LIB_CTX *libctx,
|
||||||
|
const char *propq);
|
||||||
|
ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt(X509_ALGOR *algor,
|
||||||
|
const ASN1_ITEM *it,
|
||||||
|
const char *pass, int passlen,
|
||||||
|
void *obj, int zbuf);
|
||||||
|
ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt_ex(X509_ALGOR *algor,
|
||||||
|
const ASN1_ITEM *it,
|
||||||
|
const char *pass, int passlen,
|
||||||
|
void *obj, int zbuf,
|
||||||
|
OSSL_LIB_CTX *ctx,
|
||||||
|
const char *propq);
|
||||||
|
PKCS12 *PKCS12_init(int mode);
|
||||||
|
PKCS12 *PKCS12_init_ex(int mode, OSSL_LIB_CTX *ctx, const char *propq);
|
||||||
|
|
||||||
|
int PKCS12_key_gen_asc(const char *pass, int passlen, unsigned char *salt,
|
||||||
|
int saltlen, int id, int iter, int n,
|
||||||
|
unsigned char *out, const EVP_MD *md_type);
|
||||||
|
int PKCS12_key_gen_asc_ex(const char *pass, int passlen, unsigned char *salt,
|
||||||
|
int saltlen, int id, int iter, int n,
|
||||||
|
unsigned char *out, const EVP_MD *md_type,
|
||||||
|
OSSL_LIB_CTX *ctx, const char *propq);
|
||||||
|
int PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt,
|
||||||
|
int saltlen, int id, int iter, int n,
|
||||||
|
unsigned char *out, const EVP_MD *md_type);
|
||||||
|
int PKCS12_key_gen_uni_ex(unsigned char *pass, int passlen, unsigned char *salt,
|
||||||
|
int saltlen, int id, int iter, int n,
|
||||||
|
unsigned char *out, const EVP_MD *md_type,
|
||||||
|
OSSL_LIB_CTX *ctx, const char *propq);
|
||||||
|
int PKCS12_key_gen_utf8(const char *pass, int passlen, unsigned char *salt,
|
||||||
|
int saltlen, int id, int iter, int n,
|
||||||
|
unsigned char *out, const EVP_MD *md_type);
|
||||||
|
int PKCS12_key_gen_utf8_ex(const char *pass, int passlen, unsigned char *salt,
|
||||||
|
int saltlen, int id, int iter, int n,
|
||||||
|
unsigned char *out, const EVP_MD *md_type,
|
||||||
|
OSSL_LIB_CTX *ctx, const char *propq);
|
||||||
|
|
||||||
|
int PKCS12_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
|
||||||
|
ASN1_TYPE *param, const EVP_CIPHER *cipher,
|
||||||
|
const EVP_MD *md_type, int en_de);
|
||||||
|
int PKCS12_PBE_keyivgen_ex(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
|
||||||
|
ASN1_TYPE *param, const EVP_CIPHER *cipher,
|
||||||
|
const EVP_MD *md_type, int en_de,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
int PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen,
|
||||||
|
unsigned char *mac, unsigned int *maclen);
|
||||||
|
int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen);
|
||||||
|
int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen,
|
||||||
|
unsigned char *salt, int saltlen, int iter,
|
||||||
|
const EVP_MD *md_type);
|
||||||
|
int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt,
|
||||||
|
int saltlen, const EVP_MD *md_type);
|
||||||
|
unsigned char *OPENSSL_asc2uni(const char *asc, int asclen,
|
||||||
|
unsigned char **uni, int *unilen);
|
||||||
|
char *OPENSSL_uni2asc(const unsigned char *uni, int unilen);
|
||||||
|
unsigned char *OPENSSL_utf82uni(const char *asc, int asclen,
|
||||||
|
unsigned char **uni, int *unilen);
|
||||||
|
char *OPENSSL_uni2utf8(const unsigned char *uni, int unilen);
|
||||||
|
|
||||||
|
DECLARE_ASN1_FUNCTIONS(PKCS12)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(PKCS12_MAC_DATA)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(PKCS12_SAFEBAG)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(PKCS12_BAGS)
|
||||||
|
|
||||||
|
DECLARE_ASN1_ITEM(PKCS12_SAFEBAGS)
|
||||||
|
DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES)
|
||||||
|
|
||||||
|
void PKCS12_PBE_add(void);
|
||||||
|
int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert,
|
||||||
|
STACK_OF(X509) **ca);
|
||||||
|
PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey,
|
||||||
|
X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert,
|
||||||
|
int iter, int mac_iter, int keytype);
|
||||||
|
PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey,
|
||||||
|
X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert,
|
||||||
|
int iter, int mac_iter, int keytype,
|
||||||
|
OSSL_LIB_CTX *ctx, const char *propq);
|
||||||
|
|
||||||
|
PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert);
|
||||||
|
PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags,
|
||||||
|
EVP_PKEY *key, int key_usage, int iter,
|
||||||
|
int key_nid, const char *pass);
|
||||||
|
PKCS12_SAFEBAG *PKCS12_add_key_ex(STACK_OF(PKCS12_SAFEBAG) **pbags,
|
||||||
|
EVP_PKEY *key, int key_usage, int iter,
|
||||||
|
int key_nid, const char *pass,
|
||||||
|
OSSL_LIB_CTX *ctx, const char *propq);
|
||||||
|
|
||||||
|
PKCS12_SAFEBAG *PKCS12_add_secret(STACK_OF(PKCS12_SAFEBAG) **pbags,
|
||||||
|
int nid_type, const unsigned char *value, int len);
|
||||||
|
int PKCS12_add_safe(STACK_OF(PKCS7) **psafes, STACK_OF(PKCS12_SAFEBAG) *bags,
|
||||||
|
int safe_nid, int iter, const char *pass);
|
||||||
|
int PKCS12_add_safe_ex(STACK_OF(PKCS7) **psafes, STACK_OF(PKCS12_SAFEBAG) *bags,
|
||||||
|
int safe_nid, int iter, const char *pass,
|
||||||
|
OSSL_LIB_CTX *ctx, const char *propq);
|
||||||
|
|
||||||
|
PKCS12 *PKCS12_add_safes(STACK_OF(PKCS7) *safes, int p7_nid);
|
||||||
|
PKCS12 *PKCS12_add_safes_ex(STACK_OF(PKCS7) *safes, int p7_nid,
|
||||||
|
OSSL_LIB_CTX *ctx, const char *propq);
|
||||||
|
|
||||||
|
int i2d_PKCS12_bio(BIO *bp, const PKCS12 *p12);
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
int i2d_PKCS12_fp(FILE *fp, const PKCS12 *p12);
|
||||||
|
# endif
|
||||||
|
PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **p12);
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **p12);
|
||||||
|
# endif
|
||||||
|
int PKCS12_newpass(PKCS12 *p12, const char *oldpass, const char *newpass);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
#endif
|
359
deps/openssl/mingw64/include/openssl/pkcs7.h.in
vendored
Normal file
359
deps/openssl/mingw64/include/openssl/pkcs7.h.in
vendored
Normal file
@ -0,0 +1,359 @@
|
|||||||
|
/*
|
||||||
|
* {- join("\n * ", @autowarntext) -}
|
||||||
|
*
|
||||||
|
* Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
{-
|
||||||
|
use OpenSSL::stackhash qw(generate_stack_macros);
|
||||||
|
-}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_PKCS7_H
|
||||||
|
# define OPENSSL_PKCS7_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/macros.h>
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# define HEADER_PKCS7_H
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# include <openssl/asn1.h>
|
||||||
|
# include <openssl/bio.h>
|
||||||
|
# include <openssl/e_os2.h>
|
||||||
|
|
||||||
|
# include <openssl/symhacks.h>
|
||||||
|
# include <openssl/types.h>
|
||||||
|
# include <openssl/pkcs7err.h>
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
# include <stdio.h>
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*-
|
||||||
|
Encryption_ID DES-CBC
|
||||||
|
Digest_ID MD5
|
||||||
|
Digest_Encryption_ID rsaEncryption
|
||||||
|
Key_Encryption_ID rsaEncryption
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef struct PKCS7_CTX_st {
|
||||||
|
OSSL_LIB_CTX *libctx;
|
||||||
|
char *propq;
|
||||||
|
} PKCS7_CTX;
|
||||||
|
|
||||||
|
typedef struct pkcs7_issuer_and_serial_st {
|
||||||
|
X509_NAME *issuer;
|
||||||
|
ASN1_INTEGER *serial;
|
||||||
|
} PKCS7_ISSUER_AND_SERIAL;
|
||||||
|
|
||||||
|
typedef struct pkcs7_signer_info_st {
|
||||||
|
ASN1_INTEGER *version; /* version 1 */
|
||||||
|
PKCS7_ISSUER_AND_SERIAL *issuer_and_serial;
|
||||||
|
X509_ALGOR *digest_alg;
|
||||||
|
STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */
|
||||||
|
X509_ALGOR *digest_enc_alg;
|
||||||
|
ASN1_OCTET_STRING *enc_digest;
|
||||||
|
STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */
|
||||||
|
/* The private key to sign with */
|
||||||
|
EVP_PKEY *pkey;
|
||||||
|
const PKCS7_CTX *ctx;
|
||||||
|
} PKCS7_SIGNER_INFO;
|
||||||
|
{-
|
||||||
|
generate_stack_macros("PKCS7_SIGNER_INFO");
|
||||||
|
-}
|
||||||
|
|
||||||
|
typedef struct pkcs7_recip_info_st {
|
||||||
|
ASN1_INTEGER *version; /* version 0 */
|
||||||
|
PKCS7_ISSUER_AND_SERIAL *issuer_and_serial;
|
||||||
|
X509_ALGOR *key_enc_algor;
|
||||||
|
ASN1_OCTET_STRING *enc_key;
|
||||||
|
X509 *cert; /* get the pub-key from this */
|
||||||
|
const PKCS7_CTX *ctx;
|
||||||
|
} PKCS7_RECIP_INFO;
|
||||||
|
{-
|
||||||
|
generate_stack_macros("PKCS7_RECIP_INFO");
|
||||||
|
-}
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct pkcs7_signed_st {
|
||||||
|
ASN1_INTEGER *version; /* version 1 */
|
||||||
|
STACK_OF(X509_ALGOR) *md_algs; /* md used */
|
||||||
|
STACK_OF(X509) *cert; /* [ 0 ] */
|
||||||
|
STACK_OF(X509_CRL) *crl; /* [ 1 ] */
|
||||||
|
STACK_OF(PKCS7_SIGNER_INFO) *signer_info;
|
||||||
|
struct pkcs7_st *contents;
|
||||||
|
} PKCS7_SIGNED;
|
||||||
|
/*
|
||||||
|
* The above structure is very very similar to PKCS7_SIGN_ENVELOPE. How about
|
||||||
|
* merging the two
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef struct pkcs7_enc_content_st {
|
||||||
|
ASN1_OBJECT *content_type;
|
||||||
|
X509_ALGOR *algorithm;
|
||||||
|
ASN1_OCTET_STRING *enc_data; /* [ 0 ] */
|
||||||
|
const EVP_CIPHER *cipher;
|
||||||
|
const PKCS7_CTX *ctx;
|
||||||
|
} PKCS7_ENC_CONTENT;
|
||||||
|
|
||||||
|
typedef struct pkcs7_enveloped_st {
|
||||||
|
ASN1_INTEGER *version; /* version 0 */
|
||||||
|
STACK_OF(PKCS7_RECIP_INFO) *recipientinfo;
|
||||||
|
PKCS7_ENC_CONTENT *enc_data;
|
||||||
|
} PKCS7_ENVELOPE;
|
||||||
|
|
||||||
|
typedef struct pkcs7_signedandenveloped_st {
|
||||||
|
ASN1_INTEGER *version; /* version 1 */
|
||||||
|
STACK_OF(X509_ALGOR) *md_algs; /* md used */
|
||||||
|
STACK_OF(X509) *cert; /* [ 0 ] */
|
||||||
|
STACK_OF(X509_CRL) *crl; /* [ 1 ] */
|
||||||
|
STACK_OF(PKCS7_SIGNER_INFO) *signer_info;
|
||||||
|
PKCS7_ENC_CONTENT *enc_data;
|
||||||
|
STACK_OF(PKCS7_RECIP_INFO) *recipientinfo;
|
||||||
|
} PKCS7_SIGN_ENVELOPE;
|
||||||
|
|
||||||
|
typedef struct pkcs7_digest_st {
|
||||||
|
ASN1_INTEGER *version; /* version 0 */
|
||||||
|
X509_ALGOR *md; /* md used */
|
||||||
|
struct pkcs7_st *contents;
|
||||||
|
ASN1_OCTET_STRING *digest;
|
||||||
|
} PKCS7_DIGEST;
|
||||||
|
|
||||||
|
typedef struct pkcs7_encrypted_st {
|
||||||
|
ASN1_INTEGER *version; /* version 0 */
|
||||||
|
PKCS7_ENC_CONTENT *enc_data;
|
||||||
|
} PKCS7_ENCRYPT;
|
||||||
|
|
||||||
|
typedef struct pkcs7_st {
|
||||||
|
/*
|
||||||
|
* The following is non NULL if it contains ASN1 encoding of this
|
||||||
|
* structure
|
||||||
|
*/
|
||||||
|
unsigned char *asn1;
|
||||||
|
long length;
|
||||||
|
# define PKCS7_S_HEADER 0
|
||||||
|
# define PKCS7_S_BODY 1
|
||||||
|
# define PKCS7_S_TAIL 2
|
||||||
|
int state; /* used during processing */
|
||||||
|
int detached;
|
||||||
|
ASN1_OBJECT *type;
|
||||||
|
/* content as defined by the type */
|
||||||
|
/*
|
||||||
|
* all encryption/message digests are applied to the 'contents', leaving
|
||||||
|
* out the 'type' field.
|
||||||
|
*/
|
||||||
|
union {
|
||||||
|
char *ptr;
|
||||||
|
/* NID_pkcs7_data */
|
||||||
|
ASN1_OCTET_STRING *data;
|
||||||
|
/* NID_pkcs7_signed */
|
||||||
|
PKCS7_SIGNED *sign;
|
||||||
|
/* NID_pkcs7_enveloped */
|
||||||
|
PKCS7_ENVELOPE *enveloped;
|
||||||
|
/* NID_pkcs7_signedAndEnveloped */
|
||||||
|
PKCS7_SIGN_ENVELOPE *signed_and_enveloped;
|
||||||
|
/* NID_pkcs7_digest */
|
||||||
|
PKCS7_DIGEST *digest;
|
||||||
|
/* NID_pkcs7_encrypted */
|
||||||
|
PKCS7_ENCRYPT *encrypted;
|
||||||
|
/* Anything else */
|
||||||
|
ASN1_TYPE *other;
|
||||||
|
} d;
|
||||||
|
PKCS7_CTX ctx;
|
||||||
|
} PKCS7;
|
||||||
|
{-
|
||||||
|
generate_stack_macros("PKCS7");
|
||||||
|
-}
|
||||||
|
|
||||||
|
|
||||||
|
# define PKCS7_OP_SET_DETACHED_SIGNATURE 1
|
||||||
|
# define PKCS7_OP_GET_DETACHED_SIGNATURE 2
|
||||||
|
|
||||||
|
# define PKCS7_get_signed_attributes(si) ((si)->auth_attr)
|
||||||
|
# define PKCS7_get_attributes(si) ((si)->unauth_attr)
|
||||||
|
|
||||||
|
# define PKCS7_type_is_signed(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_signed)
|
||||||
|
# define PKCS7_type_is_encrypted(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_encrypted)
|
||||||
|
# define PKCS7_type_is_enveloped(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_enveloped)
|
||||||
|
# define PKCS7_type_is_signedAndEnveloped(a) \
|
||||||
|
(OBJ_obj2nid((a)->type) == NID_pkcs7_signedAndEnveloped)
|
||||||
|
# define PKCS7_type_is_data(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_data)
|
||||||
|
# define PKCS7_type_is_digest(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_digest)
|
||||||
|
|
||||||
|
# define PKCS7_set_detached(p,v) \
|
||||||
|
PKCS7_ctrl(p,PKCS7_OP_SET_DETACHED_SIGNATURE,v,NULL)
|
||||||
|
# define PKCS7_get_detached(p) \
|
||||||
|
PKCS7_ctrl(p,PKCS7_OP_GET_DETACHED_SIGNATURE,0,NULL)
|
||||||
|
|
||||||
|
# define PKCS7_is_detached(p7) (PKCS7_type_is_signed(p7) && PKCS7_get_detached(p7))
|
||||||
|
|
||||||
|
/* S/MIME related flags */
|
||||||
|
|
||||||
|
# define PKCS7_TEXT 0x1
|
||||||
|
# define PKCS7_NOCERTS 0x2
|
||||||
|
# define PKCS7_NOSIGS 0x4
|
||||||
|
# define PKCS7_NOCHAIN 0x8
|
||||||
|
# define PKCS7_NOINTERN 0x10
|
||||||
|
# define PKCS7_NOVERIFY 0x20
|
||||||
|
# define PKCS7_DETACHED 0x40
|
||||||
|
# define PKCS7_BINARY 0x80
|
||||||
|
# define PKCS7_NOATTR 0x100
|
||||||
|
# define PKCS7_NOSMIMECAP 0x200
|
||||||
|
# define PKCS7_NOOLDMIMETYPE 0x400
|
||||||
|
# define PKCS7_CRLFEOL 0x800
|
||||||
|
# define PKCS7_STREAM 0x1000
|
||||||
|
# define PKCS7_NOCRL 0x2000
|
||||||
|
# define PKCS7_PARTIAL 0x4000
|
||||||
|
# define PKCS7_REUSE_DIGEST 0x8000
|
||||||
|
# define PKCS7_NO_DUAL_CONTENT 0x10000
|
||||||
|
|
||||||
|
/* Flags: for compatibility with older code */
|
||||||
|
|
||||||
|
# define SMIME_TEXT PKCS7_TEXT
|
||||||
|
# define SMIME_NOCERTS PKCS7_NOCERTS
|
||||||
|
# define SMIME_NOSIGS PKCS7_NOSIGS
|
||||||
|
# define SMIME_NOCHAIN PKCS7_NOCHAIN
|
||||||
|
# define SMIME_NOINTERN PKCS7_NOINTERN
|
||||||
|
# define SMIME_NOVERIFY PKCS7_NOVERIFY
|
||||||
|
# define SMIME_DETACHED PKCS7_DETACHED
|
||||||
|
# define SMIME_BINARY PKCS7_BINARY
|
||||||
|
# define SMIME_NOATTR PKCS7_NOATTR
|
||||||
|
|
||||||
|
/* CRLF ASCII canonicalisation */
|
||||||
|
# define SMIME_ASCIICRLF 0x80000
|
||||||
|
|
||||||
|
DECLARE_ASN1_FUNCTIONS(PKCS7_ISSUER_AND_SERIAL)
|
||||||
|
|
||||||
|
int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data,
|
||||||
|
const EVP_MD *type, unsigned char *md,
|
||||||
|
unsigned int *len);
|
||||||
|
# ifndef OPENSSL_NO_STDIO
|
||||||
|
PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7);
|
||||||
|
int i2d_PKCS7_fp(FILE *fp, const PKCS7 *p7);
|
||||||
|
# endif
|
||||||
|
DECLARE_ASN1_DUP_FUNCTION(PKCS7)
|
||||||
|
PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7);
|
||||||
|
int i2d_PKCS7_bio(BIO *bp, const PKCS7 *p7);
|
||||||
|
int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags);
|
||||||
|
int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags);
|
||||||
|
|
||||||
|
DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNER_INFO)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(PKCS7_RECIP_INFO)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNED)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(PKCS7_ENC_CONTENT)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(PKCS7_ENVELOPE)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(PKCS7_SIGN_ENVELOPE)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(PKCS7_DIGEST)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(PKCS7_ENCRYPT)
|
||||||
|
DECLARE_ASN1_FUNCTIONS(PKCS7)
|
||||||
|
PKCS7 *PKCS7_new_ex(OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
|
||||||
|
DECLARE_ASN1_ITEM(PKCS7_ATTR_SIGN)
|
||||||
|
DECLARE_ASN1_ITEM(PKCS7_ATTR_VERIFY)
|
||||||
|
|
||||||
|
DECLARE_ASN1_NDEF_FUNCTION(PKCS7)
|
||||||
|
DECLARE_ASN1_PRINT_FUNCTION(PKCS7)
|
||||||
|
|
||||||
|
long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg);
|
||||||
|
|
||||||
|
int PKCS7_type_is_other(PKCS7 *p7);
|
||||||
|
int PKCS7_set_type(PKCS7 *p7, int type);
|
||||||
|
int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other);
|
||||||
|
int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data);
|
||||||
|
int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey,
|
||||||
|
const EVP_MD *dgst);
|
||||||
|
int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si);
|
||||||
|
int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i);
|
||||||
|
int PKCS7_add_certificate(PKCS7 *p7, X509 *x509);
|
||||||
|
int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509);
|
||||||
|
int PKCS7_content_new(PKCS7 *p7, int nid);
|
||||||
|
int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx,
|
||||||
|
BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si);
|
||||||
|
int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si,
|
||||||
|
X509 *x509);
|
||||||
|
|
||||||
|
BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio);
|
||||||
|
int PKCS7_dataFinal(PKCS7 *p7, BIO *bio);
|
||||||
|
BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert);
|
||||||
|
|
||||||
|
PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509,
|
||||||
|
EVP_PKEY *pkey, const EVP_MD *dgst);
|
||||||
|
X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si);
|
||||||
|
int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md);
|
||||||
|
STACK_OF(PKCS7_SIGNER_INFO) *PKCS7_get_signer_info(PKCS7 *p7);
|
||||||
|
|
||||||
|
PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509);
|
||||||
|
void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk,
|
||||||
|
X509_ALGOR **pdig, X509_ALGOR **psig);
|
||||||
|
void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc);
|
||||||
|
int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri);
|
||||||
|
int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509);
|
||||||
|
int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher);
|
||||||
|
int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7);
|
||||||
|
|
||||||
|
PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx);
|
||||||
|
ASN1_OCTET_STRING *PKCS7_get_octet_string(PKCS7 *p7);
|
||||||
|
ASN1_OCTET_STRING *PKCS7_digest_from_attributes(STACK_OF(X509_ATTRIBUTE) *sk);
|
||||||
|
int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int type,
|
||||||
|
void *data);
|
||||||
|
int PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype,
|
||||||
|
void *value);
|
||||||
|
ASN1_TYPE *PKCS7_get_attribute(const PKCS7_SIGNER_INFO *si, int nid);
|
||||||
|
ASN1_TYPE *PKCS7_get_signed_attribute(const PKCS7_SIGNER_INFO *si, int nid);
|
||||||
|
int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si,
|
||||||
|
STACK_OF(X509_ATTRIBUTE) *sk);
|
||||||
|
int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si,
|
||||||
|
STACK_OF(X509_ATTRIBUTE) *sk);
|
||||||
|
|
||||||
|
PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs,
|
||||||
|
BIO *data, int flags);
|
||||||
|
PKCS7 *PKCS7_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs,
|
||||||
|
BIO *data, int flags, OSSL_LIB_CTX *libctx,
|
||||||
|
const char *propq);
|
||||||
|
|
||||||
|
PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7,
|
||||||
|
X509 *signcert, EVP_PKEY *pkey,
|
||||||
|
const EVP_MD *md, int flags);
|
||||||
|
|
||||||
|
int PKCS7_final(PKCS7 *p7, BIO *data, int flags);
|
||||||
|
int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store,
|
||||||
|
BIO *indata, BIO *out, int flags);
|
||||||
|
STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs,
|
||||||
|
int flags);
|
||||||
|
PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher,
|
||||||
|
int flags);
|
||||||
|
PKCS7 *PKCS7_encrypt_ex(STACK_OF(X509) *certs, BIO *in,
|
||||||
|
const EVP_CIPHER *cipher, int flags,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data,
|
||||||
|
int flags);
|
||||||
|
|
||||||
|
int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si,
|
||||||
|
STACK_OF(X509_ALGOR) *cap);
|
||||||
|
STACK_OF(X509_ALGOR) *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si);
|
||||||
|
int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg);
|
||||||
|
|
||||||
|
int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid);
|
||||||
|
int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t);
|
||||||
|
int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si,
|
||||||
|
const unsigned char *md, int mdlen);
|
||||||
|
|
||||||
|
int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags);
|
||||||
|
PKCS7 *SMIME_read_PKCS7_ex(BIO *bio, BIO **bcont, PKCS7 **p7);
|
||||||
|
PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont);
|
||||||
|
|
||||||
|
BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
#endif
|
34
deps/openssl/mingw64/include/openssl/prov_ssl.h
vendored
Normal file
34
deps/openssl/mingw64/include/openssl/prov_ssl.h
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_PROV_SSL_H
|
||||||
|
# define OPENSSL_PROV_SSL_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/* SSL/TLS related defines useful to providers */
|
||||||
|
|
||||||
|
# define SSL_MAX_MASTER_KEY_LENGTH 48
|
||||||
|
|
||||||
|
# define SSL3_VERSION 0x0300
|
||||||
|
# define TLS1_VERSION 0x0301
|
||||||
|
# define TLS1_1_VERSION 0x0302
|
||||||
|
# define TLS1_2_VERSION 0x0303
|
||||||
|
# define TLS1_3_VERSION 0x0304
|
||||||
|
# define DTLS1_VERSION 0xFEFF
|
||||||
|
# define DTLS1_2_VERSION 0xFEFD
|
||||||
|
# define DTLS1_BAD_VER 0x0100
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
#endif /* OPENSSL_PROV_SSL_H */
|
149
deps/openssl/mingw64/include/openssl/proverr.h
vendored
Normal file
149
deps/openssl/mingw64/include/openssl/proverr.h
vendored
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
/*
|
||||||
|
* Generated by util/mkerr.pl DO NOT EDIT
|
||||||
|
* Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_PROVERR_H
|
||||||
|
# define OPENSSL_PROVERR_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
# include <openssl/symhacks.h>
|
||||||
|
# include <openssl/cryptoerr_legacy.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* PROV reason codes.
|
||||||
|
*/
|
||||||
|
# define PROV_R_ADDITIONAL_INPUT_TOO_LONG 184
|
||||||
|
# define PROV_R_ALGORITHM_MISMATCH 173
|
||||||
|
# define PROV_R_ALREADY_INSTANTIATED 185
|
||||||
|
# define PROV_R_BAD_DECRYPT 100
|
||||||
|
# define PROV_R_BAD_ENCODING 141
|
||||||
|
# define PROV_R_BAD_LENGTH 142
|
||||||
|
# define PROV_R_BAD_TLS_CLIENT_VERSION 161
|
||||||
|
# define PROV_R_BN_ERROR 160
|
||||||
|
# define PROV_R_CIPHER_OPERATION_FAILED 102
|
||||||
|
# define PROV_R_DERIVATION_FUNCTION_INIT_FAILED 205
|
||||||
|
# define PROV_R_DIGEST_NOT_ALLOWED 174
|
||||||
|
# define PROV_R_EMS_NOT_ENABLED 233
|
||||||
|
# define PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK 186
|
||||||
|
# define PROV_R_ERROR_INSTANTIATING_DRBG 188
|
||||||
|
# define PROV_R_ERROR_RETRIEVING_ENTROPY 189
|
||||||
|
# define PROV_R_ERROR_RETRIEVING_NONCE 190
|
||||||
|
# define PROV_R_FAILED_DURING_DERIVATION 164
|
||||||
|
# define PROV_R_FAILED_TO_CREATE_LOCK 180
|
||||||
|
# define PROV_R_FAILED_TO_DECRYPT 162
|
||||||
|
# define PROV_R_FAILED_TO_GENERATE_KEY 121
|
||||||
|
# define PROV_R_FAILED_TO_GET_PARAMETER 103
|
||||||
|
# define PROV_R_FAILED_TO_SET_PARAMETER 104
|
||||||
|
# define PROV_R_FAILED_TO_SIGN 175
|
||||||
|
# define PROV_R_FIPS_MODULE_CONDITIONAL_ERROR 227
|
||||||
|
# define PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE 224
|
||||||
|
# define PROV_R_FIPS_MODULE_IN_ERROR_STATE 225
|
||||||
|
# define PROV_R_GENERATE_ERROR 191
|
||||||
|
# define PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE 165
|
||||||
|
# define PROV_R_INDICATOR_INTEGRITY_FAILURE 210
|
||||||
|
# define PROV_R_INSUFFICIENT_DRBG_STRENGTH 181
|
||||||
|
# define PROV_R_INVALID_AAD 108
|
||||||
|
# define PROV_R_INVALID_CONFIG_DATA 211
|
||||||
|
# define PROV_R_INVALID_CONSTANT_LENGTH 157
|
||||||
|
# define PROV_R_INVALID_CURVE 176
|
||||||
|
# define PROV_R_INVALID_CUSTOM_LENGTH 111
|
||||||
|
# define PROV_R_INVALID_DATA 115
|
||||||
|
# define PROV_R_INVALID_DIGEST 122
|
||||||
|
# define PROV_R_INVALID_DIGEST_LENGTH 166
|
||||||
|
# define PROV_R_INVALID_DIGEST_SIZE 218
|
||||||
|
# define PROV_R_INVALID_INPUT_LENGTH 230
|
||||||
|
# define PROV_R_INVALID_ITERATION_COUNT 123
|
||||||
|
# define PROV_R_INVALID_IV_LENGTH 109
|
||||||
|
# define PROV_R_INVALID_KEY 158
|
||||||
|
# define PROV_R_INVALID_KEY_LENGTH 105
|
||||||
|
# define PROV_R_INVALID_MAC 151
|
||||||
|
# define PROV_R_INVALID_MGF1_MD 167
|
||||||
|
# define PROV_R_INVALID_MODE 125
|
||||||
|
# define PROV_R_INVALID_OUTPUT_LENGTH 217
|
||||||
|
# define PROV_R_INVALID_PADDING_MODE 168
|
||||||
|
# define PROV_R_INVALID_PUBINFO 198
|
||||||
|
# define PROV_R_INVALID_SALT_LENGTH 112
|
||||||
|
# define PROV_R_INVALID_SEED_LENGTH 154
|
||||||
|
# define PROV_R_INVALID_SIGNATURE_SIZE 179
|
||||||
|
# define PROV_R_INVALID_STATE 212
|
||||||
|
# define PROV_R_INVALID_TAG 110
|
||||||
|
# define PROV_R_INVALID_TAG_LENGTH 118
|
||||||
|
# define PROV_R_INVALID_UKM_LENGTH 200
|
||||||
|
# define PROV_R_INVALID_X931_DIGEST 170
|
||||||
|
# define PROV_R_IN_ERROR_STATE 192
|
||||||
|
# define PROV_R_KEY_SETUP_FAILED 101
|
||||||
|
# define PROV_R_KEY_SIZE_TOO_SMALL 171
|
||||||
|
# define PROV_R_LENGTH_TOO_LARGE 202
|
||||||
|
# define PROV_R_MISMATCHING_DOMAIN_PARAMETERS 203
|
||||||
|
# define PROV_R_MISSING_CEK_ALG 144
|
||||||
|
# define PROV_R_MISSING_CIPHER 155
|
||||||
|
# define PROV_R_MISSING_CONFIG_DATA 213
|
||||||
|
# define PROV_R_MISSING_CONSTANT 156
|
||||||
|
# define PROV_R_MISSING_KEY 128
|
||||||
|
# define PROV_R_MISSING_MAC 150
|
||||||
|
# define PROV_R_MISSING_MESSAGE_DIGEST 129
|
||||||
|
# define PROV_R_MISSING_OID 209
|
||||||
|
# define PROV_R_MISSING_PASS 130
|
||||||
|
# define PROV_R_MISSING_SALT 131
|
||||||
|
# define PROV_R_MISSING_SECRET 132
|
||||||
|
# define PROV_R_MISSING_SEED 140
|
||||||
|
# define PROV_R_MISSING_SESSION_ID 133
|
||||||
|
# define PROV_R_MISSING_TYPE 134
|
||||||
|
# define PROV_R_MISSING_XCGHASH 135
|
||||||
|
# define PROV_R_MODULE_INTEGRITY_FAILURE 214
|
||||||
|
# define PROV_R_NOT_A_PRIVATE_KEY 221
|
||||||
|
# define PROV_R_NOT_A_PUBLIC_KEY 220
|
||||||
|
# define PROV_R_NOT_INSTANTIATED 193
|
||||||
|
# define PROV_R_NOT_PARAMETERS 226
|
||||||
|
# define PROV_R_NOT_SUPPORTED 136
|
||||||
|
# define PROV_R_NOT_XOF_OR_INVALID_LENGTH 113
|
||||||
|
# define PROV_R_NO_KEY_SET 114
|
||||||
|
# define PROV_R_NO_PARAMETERS_SET 177
|
||||||
|
# define PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 178
|
||||||
|
# define PROV_R_OUTPUT_BUFFER_TOO_SMALL 106
|
||||||
|
# define PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS 228
|
||||||
|
# define PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED 187
|
||||||
|
# define PROV_R_PARENT_LOCKING_NOT_ENABLED 182
|
||||||
|
# define PROV_R_PARENT_STRENGTH_TOO_WEAK 194
|
||||||
|
# define PROV_R_PATH_MUST_BE_ABSOLUTE 219
|
||||||
|
# define PROV_R_PERSONALISATION_STRING_TOO_LONG 195
|
||||||
|
# define PROV_R_PSS_SALTLEN_TOO_SMALL 172
|
||||||
|
# define PROV_R_REQUEST_TOO_LARGE_FOR_DRBG 196
|
||||||
|
# define PROV_R_REQUIRE_CTR_MODE_CIPHER 206
|
||||||
|
# define PROV_R_RESEED_ERROR 197
|
||||||
|
# define PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES 222
|
||||||
|
# define PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT 229
|
||||||
|
# define PROV_R_SELF_TEST_KAT_FAILURE 215
|
||||||
|
# define PROV_R_SELF_TEST_POST_FAILURE 216
|
||||||
|
# define PROV_R_TAG_NOT_NEEDED 120
|
||||||
|
# define PROV_R_TAG_NOT_SET 119
|
||||||
|
# define PROV_R_TOO_MANY_RECORDS 126
|
||||||
|
# define PROV_R_UNABLE_TO_FIND_CIPHERS 207
|
||||||
|
# define PROV_R_UNABLE_TO_GET_PARENT_STRENGTH 199
|
||||||
|
# define PROV_R_UNABLE_TO_GET_PASSPHRASE 159
|
||||||
|
# define PROV_R_UNABLE_TO_INITIALISE_CIPHERS 208
|
||||||
|
# define PROV_R_UNABLE_TO_LOAD_SHA256 147
|
||||||
|
# define PROV_R_UNABLE_TO_LOCK_PARENT 201
|
||||||
|
# define PROV_R_UNABLE_TO_RESEED 204
|
||||||
|
# define PROV_R_UNSUPPORTED_CEK_ALG 145
|
||||||
|
# define PROV_R_UNSUPPORTED_KEY_SIZE 153
|
||||||
|
# define PROV_R_UNSUPPORTED_MAC_TYPE 137
|
||||||
|
# define PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS 152
|
||||||
|
# define PROV_R_URI_AUTHORITY_UNSUPPORTED 223
|
||||||
|
# define PROV_R_VALUE_ERROR 138
|
||||||
|
# define PROV_R_WRONG_FINAL_BLOCK_LENGTH 107
|
||||||
|
# define PROV_R_WRONG_OUTPUT_BUFFER_SIZE 139
|
||||||
|
# define PROV_R_XOF_DIGESTS_NOT_ALLOWED 183
|
||||||
|
# define PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE 148
|
||||||
|
# define PROV_R_XTS_DUPLICATED_KEYS 149
|
||||||
|
|
||||||
|
#endif
|
60
deps/openssl/mingw64/include/openssl/provider.h
vendored
Normal file
60
deps/openssl/mingw64/include/openssl/provider.h
vendored
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_PROVIDER_H
|
||||||
|
# define OPENSSL_PROVIDER_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/core.h>
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/* Set the default provider search path */
|
||||||
|
int OSSL_PROVIDER_set_default_search_path(OSSL_LIB_CTX *, const char *path);
|
||||||
|
|
||||||
|
/* Load and unload a provider */
|
||||||
|
OSSL_PROVIDER *OSSL_PROVIDER_load(OSSL_LIB_CTX *, const char *name);
|
||||||
|
OSSL_PROVIDER *OSSL_PROVIDER_try_load(OSSL_LIB_CTX *, const char *name,
|
||||||
|
int retain_fallbacks);
|
||||||
|
int OSSL_PROVIDER_unload(OSSL_PROVIDER *prov);
|
||||||
|
int OSSL_PROVIDER_available(OSSL_LIB_CTX *, const char *name);
|
||||||
|
int OSSL_PROVIDER_do_all(OSSL_LIB_CTX *ctx,
|
||||||
|
int (*cb)(OSSL_PROVIDER *provider, void *cbdata),
|
||||||
|
void *cbdata);
|
||||||
|
|
||||||
|
const OSSL_PARAM *OSSL_PROVIDER_gettable_params(const OSSL_PROVIDER *prov);
|
||||||
|
int OSSL_PROVIDER_get_params(const OSSL_PROVIDER *prov, OSSL_PARAM params[]);
|
||||||
|
int OSSL_PROVIDER_self_test(const OSSL_PROVIDER *prov);
|
||||||
|
int OSSL_PROVIDER_get_capabilities(const OSSL_PROVIDER *prov,
|
||||||
|
const char *capability,
|
||||||
|
OSSL_CALLBACK *cb,
|
||||||
|
void *arg);
|
||||||
|
|
||||||
|
const OSSL_ALGORITHM *OSSL_PROVIDER_query_operation(const OSSL_PROVIDER *prov,
|
||||||
|
int operation_id,
|
||||||
|
int *no_cache);
|
||||||
|
void OSSL_PROVIDER_unquery_operation(const OSSL_PROVIDER *prov,
|
||||||
|
int operation_id, const OSSL_ALGORITHM *algs);
|
||||||
|
void *OSSL_PROVIDER_get0_provider_ctx(const OSSL_PROVIDER *prov);
|
||||||
|
const OSSL_DISPATCH *OSSL_PROVIDER_get0_dispatch(const OSSL_PROVIDER *prov);
|
||||||
|
|
||||||
|
/* Add a built in providers */
|
||||||
|
int OSSL_PROVIDER_add_builtin(OSSL_LIB_CTX *, const char *name,
|
||||||
|
OSSL_provider_init_fn *init_fn);
|
||||||
|
|
||||||
|
/* Information */
|
||||||
|
const char *OSSL_PROVIDER_get0_name(const OSSL_PROVIDER *prov);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif
|
227
deps/openssl/mingw64/include/openssl/safestack.h.in
vendored
Normal file
227
deps/openssl/mingw64/include/openssl/safestack.h.in
vendored
Normal file
@ -0,0 +1,227 @@
|
|||||||
|
/*
|
||||||
|
* {- join("\n * ", @autowarntext) -}
|
||||||
|
*
|
||||||
|
* Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
{-
|
||||||
|
use OpenSSL::stackhash qw(generate_stack_string_macros
|
||||||
|
generate_stack_const_string_macros
|
||||||
|
generate_stack_block_macros);
|
||||||
|
-}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_SAFESTACK_H
|
||||||
|
# define OPENSSL_SAFESTACK_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/macros.h>
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# define HEADER_SAFESTACK_H
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# include <openssl/stack.h>
|
||||||
|
# include <openssl/e_os2.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
# define STACK_OF(type) struct stack_st_##type
|
||||||
|
|
||||||
|
/* Helper macro for internal use */
|
||||||
|
# define SKM_DEFINE_STACK_OF_INTERNAL(t1, t2, t3) \
|
||||||
|
STACK_OF(t1); \
|
||||||
|
typedef int (*sk_##t1##_compfunc)(const t3 * const *a, const t3 *const *b); \
|
||||||
|
typedef void (*sk_##t1##_freefunc)(t3 *a); \
|
||||||
|
typedef t3 * (*sk_##t1##_copyfunc)(const t3 *a); \
|
||||||
|
static ossl_unused ossl_inline t2 *ossl_check_##t1##_type(t2 *ptr) \
|
||||||
|
{ \
|
||||||
|
return ptr; \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline const OPENSSL_STACK *ossl_check_const_##t1##_sk_type(const STACK_OF(t1) *sk) \
|
||||||
|
{ \
|
||||||
|
return (const OPENSSL_STACK *)sk; \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline OPENSSL_STACK *ossl_check_##t1##_sk_type(STACK_OF(t1) *sk) \
|
||||||
|
{ \
|
||||||
|
return (OPENSSL_STACK *)sk; \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline OPENSSL_sk_compfunc ossl_check_##t1##_compfunc_type(sk_##t1##_compfunc cmp) \
|
||||||
|
{ \
|
||||||
|
return (OPENSSL_sk_compfunc)cmp; \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline OPENSSL_sk_copyfunc ossl_check_##t1##_copyfunc_type(sk_##t1##_copyfunc cpy) \
|
||||||
|
{ \
|
||||||
|
return (OPENSSL_sk_copyfunc)cpy; \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline OPENSSL_sk_freefunc ossl_check_##t1##_freefunc_type(sk_##t1##_freefunc fr) \
|
||||||
|
{ \
|
||||||
|
return (OPENSSL_sk_freefunc)fr; \
|
||||||
|
}
|
||||||
|
|
||||||
|
# define SKM_DEFINE_STACK_OF(t1, t2, t3) \
|
||||||
|
STACK_OF(t1); \
|
||||||
|
typedef int (*sk_##t1##_compfunc)(const t3 * const *a, const t3 *const *b); \
|
||||||
|
typedef void (*sk_##t1##_freefunc)(t3 *a); \
|
||||||
|
typedef t3 * (*sk_##t1##_copyfunc)(const t3 *a); \
|
||||||
|
static ossl_unused ossl_inline int sk_##t1##_num(const STACK_OF(t1) *sk) \
|
||||||
|
{ \
|
||||||
|
return OPENSSL_sk_num((const OPENSSL_STACK *)sk); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline t2 *sk_##t1##_value(const STACK_OF(t1) *sk, int idx) \
|
||||||
|
{ \
|
||||||
|
return (t2 *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new(sk_##t1##_compfunc compare) \
|
||||||
|
{ \
|
||||||
|
return (STACK_OF(t1) *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new_null(void) \
|
||||||
|
{ \
|
||||||
|
return (STACK_OF(t1) *)OPENSSL_sk_new_null(); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new_reserve(sk_##t1##_compfunc compare, int n) \
|
||||||
|
{ \
|
||||||
|
return (STACK_OF(t1) *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline int sk_##t1##_reserve(STACK_OF(t1) *sk, int n) \
|
||||||
|
{ \
|
||||||
|
return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline void sk_##t1##_free(STACK_OF(t1) *sk) \
|
||||||
|
{ \
|
||||||
|
OPENSSL_sk_free((OPENSSL_STACK *)sk); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline void sk_##t1##_zero(STACK_OF(t1) *sk) \
|
||||||
|
{ \
|
||||||
|
OPENSSL_sk_zero((OPENSSL_STACK *)sk); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline t2 *sk_##t1##_delete(STACK_OF(t1) *sk, int i) \
|
||||||
|
{ \
|
||||||
|
return (t2 *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline t2 *sk_##t1##_delete_ptr(STACK_OF(t1) *sk, t2 *ptr) \
|
||||||
|
{ \
|
||||||
|
return (t2 *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, \
|
||||||
|
(const void *)ptr); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline int sk_##t1##_push(STACK_OF(t1) *sk, t2 *ptr) \
|
||||||
|
{ \
|
||||||
|
return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline int sk_##t1##_unshift(STACK_OF(t1) *sk, t2 *ptr) \
|
||||||
|
{ \
|
||||||
|
return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline t2 *sk_##t1##_pop(STACK_OF(t1) *sk) \
|
||||||
|
{ \
|
||||||
|
return (t2 *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline t2 *sk_##t1##_shift(STACK_OF(t1) *sk) \
|
||||||
|
{ \
|
||||||
|
return (t2 *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline void sk_##t1##_pop_free(STACK_OF(t1) *sk, sk_##t1##_freefunc freefunc) \
|
||||||
|
{ \
|
||||||
|
OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline int sk_##t1##_insert(STACK_OF(t1) *sk, t2 *ptr, int idx) \
|
||||||
|
{ \
|
||||||
|
return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline t2 *sk_##t1##_set(STACK_OF(t1) *sk, int idx, t2 *ptr) \
|
||||||
|
{ \
|
||||||
|
return (t2 *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline int sk_##t1##_find(STACK_OF(t1) *sk, t2 *ptr) \
|
||||||
|
{ \
|
||||||
|
return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline int sk_##t1##_find_ex(STACK_OF(t1) *sk, t2 *ptr) \
|
||||||
|
{ \
|
||||||
|
return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline int sk_##t1##_find_all(STACK_OF(t1) *sk, t2 *ptr, int *pnum) \
|
||||||
|
{ \
|
||||||
|
return OPENSSL_sk_find_all((OPENSSL_STACK *)sk, (const void *)ptr, pnum); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline void sk_##t1##_sort(STACK_OF(t1) *sk) \
|
||||||
|
{ \
|
||||||
|
OPENSSL_sk_sort((OPENSSL_STACK *)sk); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline int sk_##t1##_is_sorted(const STACK_OF(t1) *sk) \
|
||||||
|
{ \
|
||||||
|
return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline STACK_OF(t1) * sk_##t1##_dup(const STACK_OF(t1) *sk) \
|
||||||
|
{ \
|
||||||
|
return (STACK_OF(t1) *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_deep_copy(const STACK_OF(t1) *sk, \
|
||||||
|
sk_##t1##_copyfunc copyfunc, \
|
||||||
|
sk_##t1##_freefunc freefunc) \
|
||||||
|
{ \
|
||||||
|
return (STACK_OF(t1) *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, \
|
||||||
|
(OPENSSL_sk_copyfunc)copyfunc, \
|
||||||
|
(OPENSSL_sk_freefunc)freefunc); \
|
||||||
|
} \
|
||||||
|
static ossl_unused ossl_inline sk_##t1##_compfunc sk_##t1##_set_cmp_func(STACK_OF(t1) *sk, sk_##t1##_compfunc compare) \
|
||||||
|
{ \
|
||||||
|
return (sk_##t1##_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); \
|
||||||
|
}
|
||||||
|
|
||||||
|
# define DEFINE_STACK_OF(t) SKM_DEFINE_STACK_OF(t, t, t)
|
||||||
|
# define DEFINE_STACK_OF_CONST(t) SKM_DEFINE_STACK_OF(t, const t, t)
|
||||||
|
# define DEFINE_SPECIAL_STACK_OF(t1, t2) SKM_DEFINE_STACK_OF(t1, t2, t2)
|
||||||
|
# define DEFINE_SPECIAL_STACK_OF_CONST(t1, t2) \
|
||||||
|
SKM_DEFINE_STACK_OF(t1, const t2, t2)
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* Strings are special: normally an lhash entry will point to a single
|
||||||
|
* (somewhat) mutable object. In the case of strings:
|
||||||
|
*
|
||||||
|
* a) Instead of a single char, there is an array of chars, NUL-terminated.
|
||||||
|
* b) The string may have be immutable.
|
||||||
|
*
|
||||||
|
* So, they need their own declarations. Especially important for
|
||||||
|
* type-checking tools, such as Deputy.
|
||||||
|
*
|
||||||
|
* In practice, however, it appears to be hard to have a const
|
||||||
|
* string. For now, I'm settling for dealing with the fact it is a
|
||||||
|
* string at all.
|
||||||
|
*/
|
||||||
|
typedef char *OPENSSL_STRING;
|
||||||
|
typedef const char *OPENSSL_CSTRING;
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* Confusingly, LHASH_OF(STRING) deals with char ** throughout, but
|
||||||
|
* STACK_OF(STRING) is really more like STACK_OF(char), only, as mentioned
|
||||||
|
* above, instead of a single char each entry is a NUL-terminated array of
|
||||||
|
* chars. So, we have to implement STRING specially for STACK_OF. This is
|
||||||
|
* dealt with in the autogenerated macros below.
|
||||||
|
*/
|
||||||
|
{-
|
||||||
|
generate_stack_string_macros()
|
||||||
|
.generate_stack_const_string_macros();
|
||||||
|
-}
|
||||||
|
|
||||||
|
#if !defined(OPENSSL_NO_DEPRECATED_3_0)
|
||||||
|
/*
|
||||||
|
* This is not used by OpenSSL. A block of bytes, NOT nul-terminated.
|
||||||
|
* These should also be distinguished from "normal" stacks.
|
||||||
|
*/
|
||||||
|
typedef void *OPENSSL_BLOCK;
|
||||||
|
{-
|
||||||
|
generate_stack_block_macros();
|
||||||
|
-}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
#endif
|
94
deps/openssl/mingw64/include/openssl/self_test.h
vendored
Normal file
94
deps/openssl/mingw64/include/openssl/self_test.h
vendored
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2019-2022 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_SELF_TEST_H
|
||||||
|
# define OPENSSL_SELF_TEST_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/core.h> /* OSSL_CALLBACK */
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/* The test event phases */
|
||||||
|
# define OSSL_SELF_TEST_PHASE_NONE "None"
|
||||||
|
# define OSSL_SELF_TEST_PHASE_START "Start"
|
||||||
|
# define OSSL_SELF_TEST_PHASE_CORRUPT "Corrupt"
|
||||||
|
# define OSSL_SELF_TEST_PHASE_PASS "Pass"
|
||||||
|
# define OSSL_SELF_TEST_PHASE_FAIL "Fail"
|
||||||
|
|
||||||
|
/* Test event categories */
|
||||||
|
# define OSSL_SELF_TEST_TYPE_NONE "None"
|
||||||
|
# define OSSL_SELF_TEST_TYPE_MODULE_INTEGRITY "Module_Integrity"
|
||||||
|
# define OSSL_SELF_TEST_TYPE_INSTALL_INTEGRITY "Install_Integrity"
|
||||||
|
# define OSSL_SELF_TEST_TYPE_CRNG "Continuous_RNG_Test"
|
||||||
|
# define OSSL_SELF_TEST_TYPE_PCT "Conditional_PCT"
|
||||||
|
# define OSSL_SELF_TEST_TYPE_PCT_KAT "Conditional_KAT"
|
||||||
|
# define OSSL_SELF_TEST_TYPE_KAT_INTEGRITY "KAT_Integrity"
|
||||||
|
# define OSSL_SELF_TEST_TYPE_KAT_CIPHER "KAT_Cipher"
|
||||||
|
# define OSSL_SELF_TEST_TYPE_KAT_ASYM_CIPHER "KAT_AsymmetricCipher"
|
||||||
|
# define OSSL_SELF_TEST_TYPE_KAT_DIGEST "KAT_Digest"
|
||||||
|
# define OSSL_SELF_TEST_TYPE_KAT_SIGNATURE "KAT_Signature"
|
||||||
|
# define OSSL_SELF_TEST_TYPE_PCT_SIGNATURE "PCT_Signature"
|
||||||
|
# define OSSL_SELF_TEST_TYPE_KAT_KDF "KAT_KDF"
|
||||||
|
# define OSSL_SELF_TEST_TYPE_KAT_KA "KAT_KA"
|
||||||
|
# define OSSL_SELF_TEST_TYPE_DRBG "DRBG"
|
||||||
|
|
||||||
|
/* Test event sub categories */
|
||||||
|
# define OSSL_SELF_TEST_DESC_NONE "None"
|
||||||
|
# define OSSL_SELF_TEST_DESC_INTEGRITY_HMAC "HMAC"
|
||||||
|
# define OSSL_SELF_TEST_DESC_PCT_RSA_PKCS1 "RSA"
|
||||||
|
# define OSSL_SELF_TEST_DESC_PCT_ECDSA "ECDSA"
|
||||||
|
# define OSSL_SELF_TEST_DESC_PCT_DSA "DSA"
|
||||||
|
# define OSSL_SELF_TEST_DESC_CIPHER_AES_GCM "AES_GCM"
|
||||||
|
# define OSSL_SELF_TEST_DESC_CIPHER_AES_ECB "AES_ECB_Decrypt"
|
||||||
|
# define OSSL_SELF_TEST_DESC_CIPHER_TDES "TDES"
|
||||||
|
# define OSSL_SELF_TEST_DESC_ASYM_RSA_ENC "RSA_Encrypt"
|
||||||
|
# define OSSL_SELF_TEST_DESC_ASYM_RSA_DEC "RSA_Decrypt"
|
||||||
|
# define OSSL_SELF_TEST_DESC_MD_SHA1 "SHA1"
|
||||||
|
# define OSSL_SELF_TEST_DESC_MD_SHA2 "SHA2"
|
||||||
|
# define OSSL_SELF_TEST_DESC_MD_SHA3 "SHA3"
|
||||||
|
# define OSSL_SELF_TEST_DESC_SIGN_DSA "DSA"
|
||||||
|
# define OSSL_SELF_TEST_DESC_SIGN_RSA "RSA"
|
||||||
|
# define OSSL_SELF_TEST_DESC_SIGN_ECDSA "ECDSA"
|
||||||
|
# define OSSL_SELF_TEST_DESC_DRBG_CTR "CTR"
|
||||||
|
# define OSSL_SELF_TEST_DESC_DRBG_HASH "HASH"
|
||||||
|
# define OSSL_SELF_TEST_DESC_DRBG_HMAC "HMAC"
|
||||||
|
# define OSSL_SELF_TEST_DESC_KA_DH "DH"
|
||||||
|
# define OSSL_SELF_TEST_DESC_KA_ECDH "ECDH"
|
||||||
|
# define OSSL_SELF_TEST_DESC_KDF_HKDF "HKDF"
|
||||||
|
# define OSSL_SELF_TEST_DESC_KDF_SSKDF "SSKDF"
|
||||||
|
# define OSSL_SELF_TEST_DESC_KDF_X963KDF "X963KDF"
|
||||||
|
# define OSSL_SELF_TEST_DESC_KDF_X942KDF "X942KDF"
|
||||||
|
# define OSSL_SELF_TEST_DESC_KDF_PBKDF2 "PBKDF2"
|
||||||
|
# define OSSL_SELF_TEST_DESC_KDF_SSHKDF "SSHKDF"
|
||||||
|
# define OSSL_SELF_TEST_DESC_KDF_TLS12_PRF "TLS12_PRF"
|
||||||
|
# define OSSL_SELF_TEST_DESC_KDF_KBKDF "KBKDF"
|
||||||
|
# define OSSL_SELF_TEST_DESC_KDF_TLS13_EXTRACT "TLS13_KDF_EXTRACT"
|
||||||
|
# define OSSL_SELF_TEST_DESC_KDF_TLS13_EXPAND "TLS13_KDF_EXPAND"
|
||||||
|
# define OSSL_SELF_TEST_DESC_RNG "RNG"
|
||||||
|
|
||||||
|
void OSSL_SELF_TEST_set_callback(OSSL_LIB_CTX *libctx, OSSL_CALLBACK *cb,
|
||||||
|
void *cbarg);
|
||||||
|
void OSSL_SELF_TEST_get_callback(OSSL_LIB_CTX *libctx, OSSL_CALLBACK **cb,
|
||||||
|
void **cbarg);
|
||||||
|
|
||||||
|
OSSL_SELF_TEST *OSSL_SELF_TEST_new(OSSL_CALLBACK *cb, void *cbarg);
|
||||||
|
void OSSL_SELF_TEST_free(OSSL_SELF_TEST *st);
|
||||||
|
|
||||||
|
void OSSL_SELF_TEST_onbegin(OSSL_SELF_TEST *st, const char *type,
|
||||||
|
const char *desc);
|
||||||
|
int OSSL_SELF_TEST_oncorrupt_byte(OSSL_SELF_TEST *st, unsigned char *bytes);
|
||||||
|
void OSSL_SELF_TEST_onend(OSSL_SELF_TEST *st, int ret);
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
#endif /* OPENSSL_SELF_TEST_H */
|
214
deps/openssl/mingw64/include/openssl/srp.h.in
vendored
Normal file
214
deps/openssl/mingw64/include/openssl/srp.h.in
vendored
Normal file
@ -0,0 +1,214 @@
|
|||||||
|
/*
|
||||||
|
* {- join("\n * ", @autowarntext) -}
|
||||||
|
*
|
||||||
|
* Copyright 2004-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
* Copyright (c) 2004, EdelKey Project. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*
|
||||||
|
* Originally written by Christophe Renou and Peter Sylvester,
|
||||||
|
* for the EdelKey project.
|
||||||
|
*/
|
||||||
|
|
||||||
|
{-
|
||||||
|
use OpenSSL::stackhash qw(generate_stack_macros);
|
||||||
|
-}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_SRP_H
|
||||||
|
# define OPENSSL_SRP_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/macros.h>
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# define HEADER_SRP_H
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#include <openssl/opensslconf.h>
|
||||||
|
|
||||||
|
#ifndef OPENSSL_NO_SRP
|
||||||
|
# include <stdio.h>
|
||||||
|
# include <string.h>
|
||||||
|
# include <openssl/safestack.h>
|
||||||
|
# include <openssl/bn.h>
|
||||||
|
# include <openssl/crypto.h>
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
|
||||||
|
typedef struct SRP_gN_cache_st {
|
||||||
|
char *b64_bn;
|
||||||
|
BIGNUM *bn;
|
||||||
|
} SRP_gN_cache;
|
||||||
|
{-
|
||||||
|
generate_stack_macros("SRP_gN_cache");
|
||||||
|
-}
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct SRP_user_pwd_st {
|
||||||
|
/* Owned by us. */
|
||||||
|
char *id;
|
||||||
|
BIGNUM *s;
|
||||||
|
BIGNUM *v;
|
||||||
|
/* Not owned by us. */
|
||||||
|
const BIGNUM *g;
|
||||||
|
const BIGNUM *N;
|
||||||
|
/* Owned by us. */
|
||||||
|
char *info;
|
||||||
|
} SRP_user_pwd;
|
||||||
|
{-
|
||||||
|
generate_stack_macros("SRP_user_pwd");
|
||||||
|
-}
|
||||||
|
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
SRP_user_pwd *SRP_user_pwd_new(void);
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
void SRP_user_pwd_free(SRP_user_pwd *user_pwd);
|
||||||
|
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
void SRP_user_pwd_set_gN(SRP_user_pwd *user_pwd, const BIGNUM *g,
|
||||||
|
const BIGNUM *N);
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
int SRP_user_pwd_set1_ids(SRP_user_pwd *user_pwd, const char *id,
|
||||||
|
const char *info);
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
int SRP_user_pwd_set0_sv(SRP_user_pwd *user_pwd, BIGNUM *s, BIGNUM *v);
|
||||||
|
|
||||||
|
typedef struct SRP_VBASE_st {
|
||||||
|
STACK_OF(SRP_user_pwd) *users_pwd;
|
||||||
|
STACK_OF(SRP_gN_cache) *gN_cache;
|
||||||
|
/* to simulate a user */
|
||||||
|
char *seed_key;
|
||||||
|
const BIGNUM *default_g;
|
||||||
|
const BIGNUM *default_N;
|
||||||
|
} SRP_VBASE;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Internal structure storing N and g pair
|
||||||
|
*/
|
||||||
|
typedef struct SRP_gN_st {
|
||||||
|
char *id;
|
||||||
|
const BIGNUM *g;
|
||||||
|
const BIGNUM *N;
|
||||||
|
} SRP_gN;
|
||||||
|
{-
|
||||||
|
generate_stack_macros("SRP_gN");
|
||||||
|
-}
|
||||||
|
|
||||||
|
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
SRP_VBASE *SRP_VBASE_new(char *seed_key);
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
void SRP_VBASE_free(SRP_VBASE *vb);
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
int SRP_VBASE_init(SRP_VBASE *vb, char *verifier_file);
|
||||||
|
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
int SRP_VBASE_add0_user(SRP_VBASE *vb, SRP_user_pwd *user_pwd);
|
||||||
|
|
||||||
|
/* NOTE: unlike in SRP_VBASE_get_by_user, caller owns the returned pointer.*/
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
SRP_user_pwd *SRP_VBASE_get1_by_user(SRP_VBASE *vb, char *username);
|
||||||
|
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
char *SRP_create_verifier_ex(const char *user, const char *pass, char **salt,
|
||||||
|
char **verifier, const char *N, const char *g,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
char *SRP_create_verifier(const char *user, const char *pass, char **salt,
|
||||||
|
char **verifier, const char *N, const char *g);
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
int SRP_create_verifier_BN_ex(const char *user, const char *pass, BIGNUM **salt,
|
||||||
|
BIGNUM **verifier, const BIGNUM *N,
|
||||||
|
const BIGNUM *g, OSSL_LIB_CTX *libctx,
|
||||||
|
const char *propq);
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM **salt,
|
||||||
|
BIGNUM **verifier, const BIGNUM *N,
|
||||||
|
const BIGNUM *g);
|
||||||
|
|
||||||
|
# define SRP_NO_ERROR 0
|
||||||
|
# define SRP_ERR_VBASE_INCOMPLETE_FILE 1
|
||||||
|
# define SRP_ERR_VBASE_BN_LIB 2
|
||||||
|
# define SRP_ERR_OPEN_FILE 3
|
||||||
|
# define SRP_ERR_MEMORY 4
|
||||||
|
|
||||||
|
# define DB_srptype 0
|
||||||
|
# define DB_srpverifier 1
|
||||||
|
# define DB_srpsalt 2
|
||||||
|
# define DB_srpid 3
|
||||||
|
# define DB_srpgN 4
|
||||||
|
# define DB_srpinfo 5
|
||||||
|
# undef DB_NUMBER
|
||||||
|
# define DB_NUMBER 6
|
||||||
|
|
||||||
|
# define DB_SRP_INDEX 'I'
|
||||||
|
# define DB_SRP_VALID 'V'
|
||||||
|
# define DB_SRP_REVOKED 'R'
|
||||||
|
# define DB_SRP_MODIF 'v'
|
||||||
|
|
||||||
|
/* see srp.c */
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
char *SRP_check_known_gN_param(const BIGNUM *g, const BIGNUM *N);
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
SRP_gN *SRP_get_default_gN(const char *id);
|
||||||
|
|
||||||
|
/* server side .... */
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
BIGNUM *SRP_Calc_server_key(const BIGNUM *A, const BIGNUM *v, const BIGNUM *u,
|
||||||
|
const BIGNUM *b, const BIGNUM *N);
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
BIGNUM *SRP_Calc_B_ex(const BIGNUM *b, const BIGNUM *N, const BIGNUM *g,
|
||||||
|
const BIGNUM *v, OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
BIGNUM *SRP_Calc_B(const BIGNUM *b, const BIGNUM *N, const BIGNUM *g,
|
||||||
|
const BIGNUM *v);
|
||||||
|
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
int SRP_Verify_A_mod_N(const BIGNUM *A, const BIGNUM *N);
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
BIGNUM *SRP_Calc_u_ex(const BIGNUM *A, const BIGNUM *B, const BIGNUM *N,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
BIGNUM *SRP_Calc_u(const BIGNUM *A, const BIGNUM *B, const BIGNUM *N);
|
||||||
|
|
||||||
|
/* client side .... */
|
||||||
|
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
BIGNUM *SRP_Calc_x_ex(const BIGNUM *s, const char *user, const char *pass,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
BIGNUM *SRP_Calc_x(const BIGNUM *s, const char *user, const char *pass);
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
BIGNUM *SRP_Calc_A(const BIGNUM *a, const BIGNUM *N, const BIGNUM *g);
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
BIGNUM *SRP_Calc_client_key_ex(const BIGNUM *N, const BIGNUM *B, const BIGNUM *g,
|
||||||
|
const BIGNUM *x, const BIGNUM *a, const BIGNUM *u,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
BIGNUM *SRP_Calc_client_key(const BIGNUM *N, const BIGNUM *B, const BIGNUM *g,
|
||||||
|
const BIGNUM *x, const BIGNUM *a, const BIGNUM *u);
|
||||||
|
OSSL_DEPRECATEDIN_3_0
|
||||||
|
int SRP_Verify_B_mod_N(const BIGNUM *B, const BIGNUM *N);
|
||||||
|
|
||||||
|
# define SRP_MINIMAL_N 1024
|
||||||
|
|
||||||
|
# endif /* OPENSSL_NO_DEPRECATED_3_0 */
|
||||||
|
|
||||||
|
/* This method ignores the configured seed and fails for an unknown user. */
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
OSSL_DEPRECATEDIN_1_1_0
|
||||||
|
SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username);
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif
|
2530
deps/openssl/mingw64/include/openssl/ssl.h.in
vendored
Normal file
2530
deps/openssl/mingw64/include/openssl/ssl.h.in
vendored
Normal file
File diff suppressed because it is too large
Load Diff
468
deps/openssl/mingw64/include/openssl/sslerr_legacy.h
vendored
Normal file
468
deps/openssl/mingw64/include/openssl/sslerr_legacy.h
vendored
Normal file
@ -0,0 +1,468 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This header file preserves symbols from pre-3.0 OpenSSL.
|
||||||
|
* It should never be included directly, as it's already included
|
||||||
|
* by the public sslerr.h headers, and since it will go away some
|
||||||
|
* time in the future.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_SSLERR_LEGACY_H
|
||||||
|
# define OPENSSL_SSLERR_LEGACY_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/macros.h>
|
||||||
|
# include <openssl/symhacks.h>
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
OSSL_DEPRECATEDIN_3_0 int ERR_load_SSL_strings(void);
|
||||||
|
|
||||||
|
/* Collected _F_ macros from OpenSSL 1.1.1 */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SSL function codes.
|
||||||
|
*/
|
||||||
|
# define SSL_F_ADD_CLIENT_KEY_SHARE_EXT 0
|
||||||
|
# define SSL_F_ADD_KEY_SHARE 0
|
||||||
|
# define SSL_F_BYTES_TO_CIPHER_LIST 0
|
||||||
|
# define SSL_F_CHECK_SUITEB_CIPHER_LIST 0
|
||||||
|
# define SSL_F_CIPHERSUITE_CB 0
|
||||||
|
# define SSL_F_CONSTRUCT_CA_NAMES 0
|
||||||
|
# define SSL_F_CONSTRUCT_KEY_EXCHANGE_TBS 0
|
||||||
|
# define SSL_F_CONSTRUCT_STATEFUL_TICKET 0
|
||||||
|
# define SSL_F_CONSTRUCT_STATELESS_TICKET 0
|
||||||
|
# define SSL_F_CREATE_SYNTHETIC_MESSAGE_HASH 0
|
||||||
|
# define SSL_F_CREATE_TICKET_PREQUEL 0
|
||||||
|
# define SSL_F_CT_MOVE_SCTS 0
|
||||||
|
# define SSL_F_CT_STRICT 0
|
||||||
|
# define SSL_F_CUSTOM_EXT_ADD 0
|
||||||
|
# define SSL_F_CUSTOM_EXT_PARSE 0
|
||||||
|
# define SSL_F_D2I_SSL_SESSION 0
|
||||||
|
# define SSL_F_DANE_CTX_ENABLE 0
|
||||||
|
# define SSL_F_DANE_MTYPE_SET 0
|
||||||
|
# define SSL_F_DANE_TLSA_ADD 0
|
||||||
|
# define SSL_F_DERIVE_SECRET_KEY_AND_IV 0
|
||||||
|
# define SSL_F_DO_DTLS1_WRITE 0
|
||||||
|
# define SSL_F_DO_SSL3_WRITE 0
|
||||||
|
# define SSL_F_DTLS1_BUFFER_RECORD 0
|
||||||
|
# define SSL_F_DTLS1_CHECK_TIMEOUT_NUM 0
|
||||||
|
# define SSL_F_DTLS1_HEARTBEAT 0
|
||||||
|
# define SSL_F_DTLS1_HM_FRAGMENT_NEW 0
|
||||||
|
# define SSL_F_DTLS1_PREPROCESS_FRAGMENT 0
|
||||||
|
# define SSL_F_DTLS1_PROCESS_BUFFERED_RECORDS 0
|
||||||
|
# define SSL_F_DTLS1_PROCESS_RECORD 0
|
||||||
|
# define SSL_F_DTLS1_READ_BYTES 0
|
||||||
|
# define SSL_F_DTLS1_READ_FAILED 0
|
||||||
|
# define SSL_F_DTLS1_RETRANSMIT_MESSAGE 0
|
||||||
|
# define SSL_F_DTLS1_WRITE_APP_DATA_BYTES 0
|
||||||
|
# define SSL_F_DTLS1_WRITE_BYTES 0
|
||||||
|
# define SSL_F_DTLSV1_LISTEN 0
|
||||||
|
# define SSL_F_DTLS_CONSTRUCT_CHANGE_CIPHER_SPEC 0
|
||||||
|
# define SSL_F_DTLS_CONSTRUCT_HELLO_VERIFY_REQUEST 0
|
||||||
|
# define SSL_F_DTLS_GET_REASSEMBLED_MESSAGE 0
|
||||||
|
# define SSL_F_DTLS_PROCESS_HELLO_VERIFY 0
|
||||||
|
# define SSL_F_DTLS_RECORD_LAYER_NEW 0
|
||||||
|
# define SSL_F_DTLS_WAIT_FOR_DRY 0
|
||||||
|
# define SSL_F_EARLY_DATA_COUNT_OK 0
|
||||||
|
# define SSL_F_FINAL_EARLY_DATA 0
|
||||||
|
# define SSL_F_FINAL_EC_PT_FORMATS 0
|
||||||
|
# define SSL_F_FINAL_EMS 0
|
||||||
|
# define SSL_F_FINAL_KEY_SHARE 0
|
||||||
|
# define SSL_F_FINAL_MAXFRAGMENTLEN 0
|
||||||
|
# define SSL_F_FINAL_RENEGOTIATE 0
|
||||||
|
# define SSL_F_FINAL_SERVER_NAME 0
|
||||||
|
# define SSL_F_FINAL_SIG_ALGS 0
|
||||||
|
# define SSL_F_GET_CERT_VERIFY_TBS_DATA 0
|
||||||
|
# define SSL_F_NSS_KEYLOG_INT 0
|
||||||
|
# define SSL_F_OPENSSL_INIT_SSL 0
|
||||||
|
# define SSL_F_OSSL_STATEM_CLIENT13_READ_TRANSITION 0
|
||||||
|
# define SSL_F_OSSL_STATEM_CLIENT13_WRITE_TRANSITION 0
|
||||||
|
# define SSL_F_OSSL_STATEM_CLIENT_CONSTRUCT_MESSAGE 0
|
||||||
|
# define SSL_F_OSSL_STATEM_CLIENT_POST_PROCESS_MESSAGE 0
|
||||||
|
# define SSL_F_OSSL_STATEM_CLIENT_PROCESS_MESSAGE 0
|
||||||
|
# define SSL_F_OSSL_STATEM_CLIENT_READ_TRANSITION 0
|
||||||
|
# define SSL_F_OSSL_STATEM_CLIENT_WRITE_TRANSITION 0
|
||||||
|
# define SSL_F_OSSL_STATEM_SERVER13_READ_TRANSITION 0
|
||||||
|
# define SSL_F_OSSL_STATEM_SERVER13_WRITE_TRANSITION 0
|
||||||
|
# define SSL_F_OSSL_STATEM_SERVER_CONSTRUCT_MESSAGE 0
|
||||||
|
# define SSL_F_OSSL_STATEM_SERVER_POST_PROCESS_MESSAGE 0
|
||||||
|
# define SSL_F_OSSL_STATEM_SERVER_POST_WORK 0
|
||||||
|
# define SSL_F_OSSL_STATEM_SERVER_PRE_WORK 0
|
||||||
|
# define SSL_F_OSSL_STATEM_SERVER_PROCESS_MESSAGE 0
|
||||||
|
# define SSL_F_OSSL_STATEM_SERVER_READ_TRANSITION 0
|
||||||
|
# define SSL_F_OSSL_STATEM_SERVER_WRITE_TRANSITION 0
|
||||||
|
# define SSL_F_PARSE_CA_NAMES 0
|
||||||
|
# define SSL_F_PITEM_NEW 0
|
||||||
|
# define SSL_F_PQUEUE_NEW 0
|
||||||
|
# define SSL_F_PROCESS_KEY_SHARE_EXT 0
|
||||||
|
# define SSL_F_READ_STATE_MACHINE 0
|
||||||
|
# define SSL_F_SET_CLIENT_CIPHERSUITE 0
|
||||||
|
# define SSL_F_SRP_GENERATE_CLIENT_MASTER_SECRET 0
|
||||||
|
# define SSL_F_SRP_GENERATE_SERVER_MASTER_SECRET 0
|
||||||
|
# define SSL_F_SRP_VERIFY_SERVER_PARAM 0
|
||||||
|
# define SSL_F_SSL3_CHANGE_CIPHER_STATE 0
|
||||||
|
# define SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM 0
|
||||||
|
# define SSL_F_SSL3_CTRL 0
|
||||||
|
# define SSL_F_SSL3_CTX_CTRL 0
|
||||||
|
# define SSL_F_SSL3_DIGEST_CACHED_RECORDS 0
|
||||||
|
# define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 0
|
||||||
|
# define SSL_F_SSL3_ENC 0
|
||||||
|
# define SSL_F_SSL3_FINAL_FINISH_MAC 0
|
||||||
|
# define SSL_F_SSL3_FINISH_MAC 0
|
||||||
|
# define SSL_F_SSL3_GENERATE_KEY_BLOCK 0
|
||||||
|
# define SSL_F_SSL3_GENERATE_MASTER_SECRET 0
|
||||||
|
# define SSL_F_SSL3_GET_RECORD 0
|
||||||
|
# define SSL_F_SSL3_INIT_FINISHED_MAC 0
|
||||||
|
# define SSL_F_SSL3_OUTPUT_CERT_CHAIN 0
|
||||||
|
# define SSL_F_SSL3_READ_BYTES 0
|
||||||
|
# define SSL_F_SSL3_READ_N 0
|
||||||
|
# define SSL_F_SSL3_SETUP_KEY_BLOCK 0
|
||||||
|
# define SSL_F_SSL3_SETUP_READ_BUFFER 0
|
||||||
|
# define SSL_F_SSL3_SETUP_WRITE_BUFFER 0
|
||||||
|
# define SSL_F_SSL3_WRITE_BYTES 0
|
||||||
|
# define SSL_F_SSL3_WRITE_PENDING 0
|
||||||
|
# define SSL_F_SSL_ADD_CERT_CHAIN 0
|
||||||
|
# define SSL_F_SSL_ADD_CERT_TO_BUF 0
|
||||||
|
# define SSL_F_SSL_ADD_CERT_TO_WPACKET 0
|
||||||
|
# define SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT 0
|
||||||
|
# define SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT 0
|
||||||
|
# define SSL_F_SSL_ADD_CLIENTHELLO_USE_SRTP_EXT 0
|
||||||
|
# define SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK 0
|
||||||
|
# define SSL_F_SSL_ADD_FILE_CERT_SUBJECTS_TO_STACK 0
|
||||||
|
# define SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT 0
|
||||||
|
# define SSL_F_SSL_ADD_SERVERHELLO_TLSEXT 0
|
||||||
|
# define SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT 0
|
||||||
|
# define SSL_F_SSL_BAD_METHOD 0
|
||||||
|
# define SSL_F_SSL_BUILD_CERT_CHAIN 0
|
||||||
|
# define SSL_F_SSL_BYTES_TO_CIPHER_LIST 0
|
||||||
|
# define SSL_F_SSL_CACHE_CIPHERLIST 0
|
||||||
|
# define SSL_F_SSL_CERT_ADD0_CHAIN_CERT 0
|
||||||
|
# define SSL_F_SSL_CERT_DUP 0
|
||||||
|
# define SSL_F_SSL_CERT_NEW 0
|
||||||
|
# define SSL_F_SSL_CERT_SET0_CHAIN 0
|
||||||
|
# define SSL_F_SSL_CHECK_PRIVATE_KEY 0
|
||||||
|
# define SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT 0
|
||||||
|
# define SSL_F_SSL_CHECK_SRP_EXT_CLIENTHELLO 0
|
||||||
|
# define SSL_F_SSL_CHECK_SRVR_ECC_CERT_AND_ALG 0
|
||||||
|
# define SSL_F_SSL_CHOOSE_CLIENT_VERSION 0
|
||||||
|
# define SSL_F_SSL_CIPHER_DESCRIPTION 0
|
||||||
|
# define SSL_F_SSL_CIPHER_LIST_TO_BYTES 0
|
||||||
|
# define SSL_F_SSL_CIPHER_PROCESS_RULESTR 0
|
||||||
|
# define SSL_F_SSL_CIPHER_STRENGTH_SORT 0
|
||||||
|
# define SSL_F_SSL_CLEAR 0
|
||||||
|
# define SSL_F_SSL_CLIENT_HELLO_GET1_EXTENSIONS_PRESENT 0
|
||||||
|
# define SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD 0
|
||||||
|
# define SSL_F_SSL_CONF_CMD 0
|
||||||
|
# define SSL_F_SSL_CREATE_CIPHER_LIST 0
|
||||||
|
# define SSL_F_SSL_CTRL 0
|
||||||
|
# define SSL_F_SSL_CTX_CHECK_PRIVATE_KEY 0
|
||||||
|
# define SSL_F_SSL_CTX_ENABLE_CT 0
|
||||||
|
# define SSL_F_SSL_CTX_MAKE_PROFILES 0
|
||||||
|
# define SSL_F_SSL_CTX_NEW 0
|
||||||
|
# define SSL_F_SSL_CTX_SET_ALPN_PROTOS 0
|
||||||
|
# define SSL_F_SSL_CTX_SET_CIPHER_LIST 0
|
||||||
|
# define SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE 0
|
||||||
|
# define SSL_F_SSL_CTX_SET_CT_VALIDATION_CALLBACK 0
|
||||||
|
# define SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT 0
|
||||||
|
# define SSL_F_SSL_CTX_SET_SSL_VERSION 0
|
||||||
|
# define SSL_F_SSL_CTX_SET_TLSEXT_MAX_FRAGMENT_LENGTH 0
|
||||||
|
# define SSL_F_SSL_CTX_USE_CERTIFICATE 0
|
||||||
|
# define SSL_F_SSL_CTX_USE_CERTIFICATE_ASN1 0
|
||||||
|
# define SSL_F_SSL_CTX_USE_CERTIFICATE_FILE 0
|
||||||
|
# define SSL_F_SSL_CTX_USE_PRIVATEKEY 0
|
||||||
|
# define SSL_F_SSL_CTX_USE_PRIVATEKEY_ASN1 0
|
||||||
|
# define SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE 0
|
||||||
|
# define SSL_F_SSL_CTX_USE_PSK_IDENTITY_HINT 0
|
||||||
|
# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY 0
|
||||||
|
# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_ASN1 0
|
||||||
|
# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE 0
|
||||||
|
# define SSL_F_SSL_CTX_USE_SERVERINFO 0
|
||||||
|
# define SSL_F_SSL_CTX_USE_SERVERINFO_EX 0
|
||||||
|
# define SSL_F_SSL_CTX_USE_SERVERINFO_FILE 0
|
||||||
|
# define SSL_F_SSL_DANE_DUP 0
|
||||||
|
# define SSL_F_SSL_DANE_ENABLE 0
|
||||||
|
# define SSL_F_SSL_DERIVE 0
|
||||||
|
# define SSL_F_SSL_DO_CONFIG 0
|
||||||
|
# define SSL_F_SSL_DO_HANDSHAKE 0
|
||||||
|
# define SSL_F_SSL_DUP_CA_LIST 0
|
||||||
|
# define SSL_F_SSL_ENABLE_CT 0
|
||||||
|
# define SSL_F_SSL_GENERATE_PKEY_GROUP 0
|
||||||
|
# define SSL_F_SSL_GENERATE_SESSION_ID 0
|
||||||
|
# define SSL_F_SSL_GET_NEW_SESSION 0
|
||||||
|
# define SSL_F_SSL_GET_PREV_SESSION 0
|
||||||
|
# define SSL_F_SSL_GET_SERVER_CERT_INDEX 0
|
||||||
|
# define SSL_F_SSL_GET_SIGN_PKEY 0
|
||||||
|
# define SSL_F_SSL_HANDSHAKE_HASH 0
|
||||||
|
# define SSL_F_SSL_INIT_WBIO_BUFFER 0
|
||||||
|
# define SSL_F_SSL_KEY_UPDATE 0
|
||||||
|
# define SSL_F_SSL_LOAD_CLIENT_CA_FILE 0
|
||||||
|
# define SSL_F_SSL_LOG_MASTER_SECRET 0
|
||||||
|
# define SSL_F_SSL_LOG_RSA_CLIENT_KEY_EXCHANGE 0
|
||||||
|
# define SSL_F_SSL_MODULE_INIT 0
|
||||||
|
# define SSL_F_SSL_NEW 0
|
||||||
|
# define SSL_F_SSL_NEXT_PROTO_VALIDATE 0
|
||||||
|
# define SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT 0
|
||||||
|
# define SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT 0
|
||||||
|
# define SSL_F_SSL_PARSE_CLIENTHELLO_USE_SRTP_EXT 0
|
||||||
|
# define SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT 0
|
||||||
|
# define SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT 0
|
||||||
|
# define SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT 0
|
||||||
|
# define SSL_F_SSL_PEEK 0
|
||||||
|
# define SSL_F_SSL_PEEK_EX 0
|
||||||
|
# define SSL_F_SSL_PEEK_INTERNAL 0
|
||||||
|
# define SSL_F_SSL_READ 0
|
||||||
|
# define SSL_F_SSL_READ_EARLY_DATA 0
|
||||||
|
# define SSL_F_SSL_READ_EX 0
|
||||||
|
# define SSL_F_SSL_READ_INTERNAL 0
|
||||||
|
# define SSL_F_SSL_RENEGOTIATE 0
|
||||||
|
# define SSL_F_SSL_RENEGOTIATE_ABBREVIATED 0
|
||||||
|
# define SSL_F_SSL_SCAN_CLIENTHELLO_TLSEXT 0
|
||||||
|
# define SSL_F_SSL_SCAN_SERVERHELLO_TLSEXT 0
|
||||||
|
# define SSL_F_SSL_SESSION_DUP 0
|
||||||
|
# define SSL_F_SSL_SESSION_NEW 0
|
||||||
|
# define SSL_F_SSL_SESSION_PRINT_FP 0
|
||||||
|
# define SSL_F_SSL_SESSION_SET1_ID 0
|
||||||
|
# define SSL_F_SSL_SESSION_SET1_ID_CONTEXT 0
|
||||||
|
# define SSL_F_SSL_SET_ALPN_PROTOS 0
|
||||||
|
# define SSL_F_SSL_SET_CERT 0
|
||||||
|
# define SSL_F_SSL_SET_CERT_AND_KEY 0
|
||||||
|
# define SSL_F_SSL_SET_CIPHER_LIST 0
|
||||||
|
# define SSL_F_SSL_SET_CT_VALIDATION_CALLBACK 0
|
||||||
|
# define SSL_F_SSL_SET_FD 0
|
||||||
|
# define SSL_F_SSL_SET_PKEY 0
|
||||||
|
# define SSL_F_SSL_SET_RFD 0
|
||||||
|
# define SSL_F_SSL_SET_SESSION 0
|
||||||
|
# define SSL_F_SSL_SET_SESSION_ID_CONTEXT 0
|
||||||
|
# define SSL_F_SSL_SET_SESSION_TICKET_EXT 0
|
||||||
|
# define SSL_F_SSL_SET_TLSEXT_MAX_FRAGMENT_LENGTH 0
|
||||||
|
# define SSL_F_SSL_SET_WFD 0
|
||||||
|
# define SSL_F_SSL_SHUTDOWN 0
|
||||||
|
# define SSL_F_SSL_SRP_CTX_INIT 0
|
||||||
|
# define SSL_F_SSL_START_ASYNC_JOB 0
|
||||||
|
# define SSL_F_SSL_UNDEFINED_FUNCTION 0
|
||||||
|
# define SSL_F_SSL_UNDEFINED_VOID_FUNCTION 0
|
||||||
|
# define SSL_F_SSL_USE_CERTIFICATE 0
|
||||||
|
# define SSL_F_SSL_USE_CERTIFICATE_ASN1 0
|
||||||
|
# define SSL_F_SSL_USE_CERTIFICATE_FILE 0
|
||||||
|
# define SSL_F_SSL_USE_PRIVATEKEY 0
|
||||||
|
# define SSL_F_SSL_USE_PRIVATEKEY_ASN1 0
|
||||||
|
# define SSL_F_SSL_USE_PRIVATEKEY_FILE 0
|
||||||
|
# define SSL_F_SSL_USE_PSK_IDENTITY_HINT 0
|
||||||
|
# define SSL_F_SSL_USE_RSAPRIVATEKEY 0
|
||||||
|
# define SSL_F_SSL_USE_RSAPRIVATEKEY_ASN1 0
|
||||||
|
# define SSL_F_SSL_USE_RSAPRIVATEKEY_FILE 0
|
||||||
|
# define SSL_F_SSL_VALIDATE_CT 0
|
||||||
|
# define SSL_F_SSL_VERIFY_CERT_CHAIN 0
|
||||||
|
# define SSL_F_SSL_VERIFY_CLIENT_POST_HANDSHAKE 0
|
||||||
|
# define SSL_F_SSL_WRITE 0
|
||||||
|
# define SSL_F_SSL_WRITE_EARLY_DATA 0
|
||||||
|
# define SSL_F_SSL_WRITE_EARLY_FINISH 0
|
||||||
|
# define SSL_F_SSL_WRITE_EX 0
|
||||||
|
# define SSL_F_SSL_WRITE_INTERNAL 0
|
||||||
|
# define SSL_F_STATE_MACHINE 0
|
||||||
|
# define SSL_F_TLS12_CHECK_PEER_SIGALG 0
|
||||||
|
# define SSL_F_TLS12_COPY_SIGALGS 0
|
||||||
|
# define SSL_F_TLS13_CHANGE_CIPHER_STATE 0
|
||||||
|
# define SSL_F_TLS13_ENC 0
|
||||||
|
# define SSL_F_TLS13_FINAL_FINISH_MAC 0
|
||||||
|
# define SSL_F_TLS13_GENERATE_SECRET 0
|
||||||
|
# define SSL_F_TLS13_HKDF_EXPAND 0
|
||||||
|
# define SSL_F_TLS13_RESTORE_HANDSHAKE_DIGEST_FOR_PHA 0
|
||||||
|
# define SSL_F_TLS13_SAVE_HANDSHAKE_DIGEST_FOR_PHA 0
|
||||||
|
# define SSL_F_TLS13_SETUP_KEY_BLOCK 0
|
||||||
|
# define SSL_F_TLS1_CHANGE_CIPHER_STATE 0
|
||||||
|
# define SSL_F_TLS1_CHECK_DUPLICATE_EXTENSIONS 0
|
||||||
|
# define SSL_F_TLS1_ENC 0
|
||||||
|
# define SSL_F_TLS1_EXPORT_KEYING_MATERIAL 0
|
||||||
|
# define SSL_F_TLS1_GET_CURVELIST 0
|
||||||
|
# define SSL_F_TLS1_PRF 0
|
||||||
|
# define SSL_F_TLS1_SAVE_U16 0
|
||||||
|
# define SSL_F_TLS1_SETUP_KEY_BLOCK 0
|
||||||
|
# define SSL_F_TLS1_SET_GROUPS 0
|
||||||
|
# define SSL_F_TLS1_SET_RAW_SIGALGS 0
|
||||||
|
# define SSL_F_TLS1_SET_SERVER_SIGALGS 0
|
||||||
|
# define SSL_F_TLS1_SET_SHARED_SIGALGS 0
|
||||||
|
# define SSL_F_TLS1_SET_SIGALGS 0
|
||||||
|
# define SSL_F_TLS_CHOOSE_SIGALG 0
|
||||||
|
# define SSL_F_TLS_CLIENT_KEY_EXCHANGE_POST_WORK 0
|
||||||
|
# define SSL_F_TLS_COLLECT_EXTENSIONS 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CERTIFICATE_AUTHORITIES 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CERTIFICATE_REQUEST 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CERT_STATUS 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CERT_STATUS_BODY 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CERT_VERIFY 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CHANGE_CIPHER_SPEC 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CKE_DHE 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CKE_ECDHE 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CKE_GOST 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CKE_PSK_PREAMBLE 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CKE_RSA 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CKE_SRP 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CLIENT_CERTIFICATE 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CLIENT_HELLO 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CLIENT_KEY_EXCHANGE 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CLIENT_VERIFY 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_ALPN 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_CERTIFICATE 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_COOKIE 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_EARLY_DATA 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_EC_PT_FORMATS 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_EMS 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_ETM 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_HELLO 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_KEY_EXCHANGE 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_KEY_SHARE 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_MAXFRAGMENTLEN 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_NPN 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_PADDING 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_POST_HANDSHAKE_AUTH 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_PSK 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_PSK_KEX_MODES 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_RENEGOTIATE 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_SCT 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_SERVER_NAME 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_SESSION_TICKET 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_SIG_ALGS 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_SRP 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_STATUS_REQUEST 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_SUPPORTED_GROUPS 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_SUPPORTED_VERSIONS 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_USE_SRTP 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_CTOS_VERIFY 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_ENCRYPTED_EXTENSIONS 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_END_OF_EARLY_DATA 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_EXTENSIONS 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_FINISHED 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_HELLO_REQUEST 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_HELLO_RETRY_REQUEST 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_KEY_UPDATE 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_NEW_SESSION_TICKET 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_NEXT_PROTO 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_SERVER_CERTIFICATE 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_SERVER_HELLO 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_SERVER_KEY_EXCHANGE 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_ALPN 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_CERTIFICATE 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_COOKIE 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_CRYPTOPRO_BUG 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_DONE 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_EARLY_DATA 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_EARLY_DATA_INFO 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_EC_PT_FORMATS 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_EMS 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_ETM 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_HELLO 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_KEY_EXCHANGE 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_KEY_SHARE 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_MAXFRAGMENTLEN 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_NEXT_PROTO_NEG 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_PSK 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_RENEGOTIATE 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_SERVER_NAME 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_SESSION_TICKET 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_STATUS_REQUEST 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_SUPPORTED_GROUPS 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_SUPPORTED_VERSIONS 0
|
||||||
|
# define SSL_F_TLS_CONSTRUCT_STOC_USE_SRTP 0
|
||||||
|
# define SSL_F_TLS_EARLY_POST_PROCESS_CLIENT_HELLO 0
|
||||||
|
# define SSL_F_TLS_FINISH_HANDSHAKE 0
|
||||||
|
# define SSL_F_TLS_GET_MESSAGE_BODY 0
|
||||||
|
# define SSL_F_TLS_GET_MESSAGE_HEADER 0
|
||||||
|
# define SSL_F_TLS_HANDLE_ALPN 0
|
||||||
|
# define SSL_F_TLS_HANDLE_STATUS_REQUEST 0
|
||||||
|
# define SSL_F_TLS_PARSE_CERTIFICATE_AUTHORITIES 0
|
||||||
|
# define SSL_F_TLS_PARSE_CLIENTHELLO_TLSEXT 0
|
||||||
|
# define SSL_F_TLS_PARSE_CTOS_ALPN 0
|
||||||
|
# define SSL_F_TLS_PARSE_CTOS_COOKIE 0
|
||||||
|
# define SSL_F_TLS_PARSE_CTOS_EARLY_DATA 0
|
||||||
|
# define SSL_F_TLS_PARSE_CTOS_EC_PT_FORMATS 0
|
||||||
|
# define SSL_F_TLS_PARSE_CTOS_EMS 0
|
||||||
|
# define SSL_F_TLS_PARSE_CTOS_KEY_SHARE 0
|
||||||
|
# define SSL_F_TLS_PARSE_CTOS_MAXFRAGMENTLEN 0
|
||||||
|
# define SSL_F_TLS_PARSE_CTOS_POST_HANDSHAKE_AUTH 0
|
||||||
|
# define SSL_F_TLS_PARSE_CTOS_PSK 0
|
||||||
|
# define SSL_F_TLS_PARSE_CTOS_PSK_KEX_MODES 0
|
||||||
|
# define SSL_F_TLS_PARSE_CTOS_RENEGOTIATE 0
|
||||||
|
# define SSL_F_TLS_PARSE_CTOS_SERVER_NAME 0
|
||||||
|
# define SSL_F_TLS_PARSE_CTOS_SESSION_TICKET 0
|
||||||
|
# define SSL_F_TLS_PARSE_CTOS_SIG_ALGS 0
|
||||||
|
# define SSL_F_TLS_PARSE_CTOS_SIG_ALGS_CERT 0
|
||||||
|
# define SSL_F_TLS_PARSE_CTOS_SRP 0
|
||||||
|
# define SSL_F_TLS_PARSE_CTOS_STATUS_REQUEST 0
|
||||||
|
# define SSL_F_TLS_PARSE_CTOS_SUPPORTED_GROUPS 0
|
||||||
|
# define SSL_F_TLS_PARSE_CTOS_USE_SRTP 0
|
||||||
|
# define SSL_F_TLS_PARSE_STOC_ALPN 0
|
||||||
|
# define SSL_F_TLS_PARSE_STOC_COOKIE 0
|
||||||
|
# define SSL_F_TLS_PARSE_STOC_EARLY_DATA 0
|
||||||
|
# define SSL_F_TLS_PARSE_STOC_EARLY_DATA_INFO 0
|
||||||
|
# define SSL_F_TLS_PARSE_STOC_EC_PT_FORMATS 0
|
||||||
|
# define SSL_F_TLS_PARSE_STOC_KEY_SHARE 0
|
||||||
|
# define SSL_F_TLS_PARSE_STOC_MAXFRAGMENTLEN 0
|
||||||
|
# define SSL_F_TLS_PARSE_STOC_NPN 0
|
||||||
|
# define SSL_F_TLS_PARSE_STOC_PSK 0
|
||||||
|
# define SSL_F_TLS_PARSE_STOC_RENEGOTIATE 0
|
||||||
|
# define SSL_F_TLS_PARSE_STOC_SCT 0
|
||||||
|
# define SSL_F_TLS_PARSE_STOC_SERVER_NAME 0
|
||||||
|
# define SSL_F_TLS_PARSE_STOC_SESSION_TICKET 0
|
||||||
|
# define SSL_F_TLS_PARSE_STOC_STATUS_REQUEST 0
|
||||||
|
# define SSL_F_TLS_PARSE_STOC_SUPPORTED_VERSIONS 0
|
||||||
|
# define SSL_F_TLS_PARSE_STOC_USE_SRTP 0
|
||||||
|
# define SSL_F_TLS_POST_PROCESS_CLIENT_HELLO 0
|
||||||
|
# define SSL_F_TLS_POST_PROCESS_CLIENT_KEY_EXCHANGE 0
|
||||||
|
# define SSL_F_TLS_PREPARE_CLIENT_CERTIFICATE 0
|
||||||
|
# define SSL_F_TLS_PROCESS_AS_HELLO_RETRY_REQUEST 0
|
||||||
|
# define SSL_F_TLS_PROCESS_CERTIFICATE_REQUEST 0
|
||||||
|
# define SSL_F_TLS_PROCESS_CERT_STATUS 0
|
||||||
|
# define SSL_F_TLS_PROCESS_CERT_STATUS_BODY 0
|
||||||
|
# define SSL_F_TLS_PROCESS_CERT_VERIFY 0
|
||||||
|
# define SSL_F_TLS_PROCESS_CHANGE_CIPHER_SPEC 0
|
||||||
|
# define SSL_F_TLS_PROCESS_CKE_DHE 0
|
||||||
|
# define SSL_F_TLS_PROCESS_CKE_ECDHE 0
|
||||||
|
# define SSL_F_TLS_PROCESS_CKE_GOST 0
|
||||||
|
# define SSL_F_TLS_PROCESS_CKE_PSK_PREAMBLE 0
|
||||||
|
# define SSL_F_TLS_PROCESS_CKE_RSA 0
|
||||||
|
# define SSL_F_TLS_PROCESS_CKE_SRP 0
|
||||||
|
# define SSL_F_TLS_PROCESS_CLIENT_CERTIFICATE 0
|
||||||
|
# define SSL_F_TLS_PROCESS_CLIENT_HELLO 0
|
||||||
|
# define SSL_F_TLS_PROCESS_CLIENT_KEY_EXCHANGE 0
|
||||||
|
# define SSL_F_TLS_PROCESS_ENCRYPTED_EXTENSIONS 0
|
||||||
|
# define SSL_F_TLS_PROCESS_END_OF_EARLY_DATA 0
|
||||||
|
# define SSL_F_TLS_PROCESS_FINISHED 0
|
||||||
|
# define SSL_F_TLS_PROCESS_HELLO_REQ 0
|
||||||
|
# define SSL_F_TLS_PROCESS_HELLO_RETRY_REQUEST 0
|
||||||
|
# define SSL_F_TLS_PROCESS_INITIAL_SERVER_FLIGHT 0
|
||||||
|
# define SSL_F_TLS_PROCESS_KEY_EXCHANGE 0
|
||||||
|
# define SSL_F_TLS_PROCESS_KEY_UPDATE 0
|
||||||
|
# define SSL_F_TLS_PROCESS_NEW_SESSION_TICKET 0
|
||||||
|
# define SSL_F_TLS_PROCESS_NEXT_PROTO 0
|
||||||
|
# define SSL_F_TLS_PROCESS_SERVER_CERTIFICATE 0
|
||||||
|
# define SSL_F_TLS_PROCESS_SERVER_DONE 0
|
||||||
|
# define SSL_F_TLS_PROCESS_SERVER_HELLO 0
|
||||||
|
# define SSL_F_TLS_PROCESS_SKE_DHE 0
|
||||||
|
# define SSL_F_TLS_PROCESS_SKE_ECDHE 0
|
||||||
|
# define SSL_F_TLS_PROCESS_SKE_PSK_PREAMBLE 0
|
||||||
|
# define SSL_F_TLS_PROCESS_SKE_SRP 0
|
||||||
|
# define SSL_F_TLS_PSK_DO_BINDER 0
|
||||||
|
# define SSL_F_TLS_SCAN_CLIENTHELLO_TLSEXT 0
|
||||||
|
# define SSL_F_TLS_SETUP_HANDSHAKE 0
|
||||||
|
# define SSL_F_USE_CERTIFICATE_CHAIN_FILE 0
|
||||||
|
# define SSL_F_WPACKET_INTERN_INIT_LEN 0
|
||||||
|
# define SSL_F_WPACKET_START_SUB_PACKET_LEN__ 0
|
||||||
|
# define SSL_F_WRITE_STATE_MACHINE 0
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
#endif
|
312
deps/openssl/mingw64/include/openssl/trace.h
vendored
Normal file
312
deps/openssl/mingw64/include/openssl/trace.h
vendored
Normal file
@ -0,0 +1,312 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2019-2022 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OPENSSL_TRACE_H
|
||||||
|
# define OPENSSL_TRACE_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <stdarg.h>
|
||||||
|
|
||||||
|
# include <openssl/bio.h>
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TRACE CATEGORIES
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The trace messages of the OpenSSL libraries are organized into different
|
||||||
|
* categories. For every trace category, the application can register a separate
|
||||||
|
* tracer callback. When a callback is registered, a so called trace channel is
|
||||||
|
* created for this category. This channel consists essentially of an internal
|
||||||
|
* BIO which sends all trace output it receives to the registered application
|
||||||
|
* callback.
|
||||||
|
*
|
||||||
|
* The ALL category can be used as a fallback category to register a single
|
||||||
|
* channel which receives the output from all categories. However, if the
|
||||||
|
* application intends to print the trace channel name in the line prefix,
|
||||||
|
* it is better to register channels for all categories separately.
|
||||||
|
* (This is how the openssl application does it.)
|
||||||
|
*/
|
||||||
|
# define OSSL_TRACE_CATEGORY_ALL 0 /* The fallback */
|
||||||
|
# define OSSL_TRACE_CATEGORY_TRACE 1
|
||||||
|
# define OSSL_TRACE_CATEGORY_INIT 2
|
||||||
|
# define OSSL_TRACE_CATEGORY_TLS 3
|
||||||
|
# define OSSL_TRACE_CATEGORY_TLS_CIPHER 4
|
||||||
|
# define OSSL_TRACE_CATEGORY_CONF 5
|
||||||
|
# define OSSL_TRACE_CATEGORY_ENGINE_TABLE 6
|
||||||
|
# define OSSL_TRACE_CATEGORY_ENGINE_REF_COUNT 7
|
||||||
|
# define OSSL_TRACE_CATEGORY_PKCS5V2 8
|
||||||
|
# define OSSL_TRACE_CATEGORY_PKCS12_KEYGEN 9
|
||||||
|
# define OSSL_TRACE_CATEGORY_PKCS12_DECRYPT 10
|
||||||
|
# define OSSL_TRACE_CATEGORY_X509V3_POLICY 11
|
||||||
|
# define OSSL_TRACE_CATEGORY_BN_CTX 12
|
||||||
|
# define OSSL_TRACE_CATEGORY_CMP 13
|
||||||
|
# define OSSL_TRACE_CATEGORY_STORE 14
|
||||||
|
# define OSSL_TRACE_CATEGORY_DECODER 15
|
||||||
|
# define OSSL_TRACE_CATEGORY_ENCODER 16
|
||||||
|
# define OSSL_TRACE_CATEGORY_REF_COUNT 17
|
||||||
|
# define OSSL_TRACE_CATEGORY_HTTP 18
|
||||||
|
/* Count of available categories. */
|
||||||
|
# define OSSL_TRACE_CATEGORY_NUM 19
|
||||||
|
/* KEEP THIS LIST IN SYNC with trace_categories[] in crypto/trace.c */
|
||||||
|
|
||||||
|
/* Returns the trace category number for the given |name| */
|
||||||
|
int OSSL_trace_get_category_num(const char *name);
|
||||||
|
|
||||||
|
/* Returns the trace category name for the given |num| */
|
||||||
|
const char *OSSL_trace_get_category_name(int num);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TRACE CONSUMERS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Enables tracing for the given |category| by providing a BIO sink
|
||||||
|
* as |channel|. If a null pointer is passed as |channel|, an existing
|
||||||
|
* trace channel is removed and tracing for the category is disabled.
|
||||||
|
*
|
||||||
|
* Returns 1 on success and 0 on failure
|
||||||
|
*/
|
||||||
|
int OSSL_trace_set_channel(int category, BIO* channel);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Attach a prefix and a suffix to the given |category|, to be printed at the
|
||||||
|
* beginning and at the end of each trace output group, i.e. when
|
||||||
|
* OSSL_trace_begin() and OSSL_trace_end() are called.
|
||||||
|
* If a null pointer is passed as argument, the existing prefix or suffix is
|
||||||
|
* removed.
|
||||||
|
*
|
||||||
|
* They return 1 on success and 0 on failure
|
||||||
|
*/
|
||||||
|
int OSSL_trace_set_prefix(int category, const char *prefix);
|
||||||
|
int OSSL_trace_set_suffix(int category, const char *suffix);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* OSSL_trace_cb is the type tracing callback provided by the application.
|
||||||
|
* It MUST return the number of bytes written, or 0 on error (in other words,
|
||||||
|
* it can never write zero bytes).
|
||||||
|
*
|
||||||
|
* The |buffer| will always contain text, which may consist of several lines.
|
||||||
|
* The |data| argument points to whatever data was provided by the application
|
||||||
|
* when registering the tracer function.
|
||||||
|
*
|
||||||
|
* The |category| number is given, as well as a |cmd| number, described below.
|
||||||
|
*/
|
||||||
|
typedef size_t (*OSSL_trace_cb)(const char *buffer, size_t count,
|
||||||
|
int category, int cmd, void *data);
|
||||||
|
/*
|
||||||
|
* Possible |cmd| numbers.
|
||||||
|
*/
|
||||||
|
# define OSSL_TRACE_CTRL_BEGIN 0
|
||||||
|
# define OSSL_TRACE_CTRL_WRITE 1
|
||||||
|
# define OSSL_TRACE_CTRL_END 2
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Enables tracing for the given |category| by creating an internal
|
||||||
|
* trace channel which sends the output to the given |callback|.
|
||||||
|
* If a null pointer is passed as callback, an existing trace channel
|
||||||
|
* is removed and tracing for the category is disabled.
|
||||||
|
*
|
||||||
|
* NOTE: OSSL_trace_set_channel() and OSSL_trace_set_callback() are mutually
|
||||||
|
* exclusive.
|
||||||
|
*
|
||||||
|
* Returns 1 on success and 0 on failure
|
||||||
|
*/
|
||||||
|
int OSSL_trace_set_callback(int category, OSSL_trace_cb callback, void *data);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TRACE PRODUCERS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Returns 1 if tracing for the specified category is enabled, otherwise 0
|
||||||
|
*/
|
||||||
|
int OSSL_trace_enabled(int category);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Wrap a group of tracing output calls. OSSL_trace_begin() locks tracing and
|
||||||
|
* returns the trace channel associated with the given category, or NULL if no
|
||||||
|
* channel is associated with the category. OSSL_trace_end() unlocks tracing.
|
||||||
|
*
|
||||||
|
* Usage:
|
||||||
|
*
|
||||||
|
* BIO *out;
|
||||||
|
* if ((out = OSSL_trace_begin(category)) != NULL) {
|
||||||
|
* ...
|
||||||
|
* BIO_fprintf(out, ...);
|
||||||
|
* ...
|
||||||
|
* OSSL_trace_end(category, out);
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* See also the convenience macros OSSL_TRACE_BEGIN and OSSL_TRACE_END below.
|
||||||
|
*/
|
||||||
|
BIO *OSSL_trace_begin(int category);
|
||||||
|
void OSSL_trace_end(int category, BIO *channel);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* OSSL_TRACE* Convenience Macros
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* When the tracing feature is disabled, these macros are defined to
|
||||||
|
* produce dead code, which a good compiler should eliminate.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* OSSL_TRACE_BEGIN, OSSL_TRACE_END - Define a Trace Group
|
||||||
|
*
|
||||||
|
* These two macros can be used to create a block which is executed only
|
||||||
|
* if the corresponding trace category is enabled. Inside this block, a
|
||||||
|
* local variable named |trc_out| is defined, which points to the channel
|
||||||
|
* associated with the given trace category.
|
||||||
|
*
|
||||||
|
* Usage: (using 'TLS' as an example category)
|
||||||
|
*
|
||||||
|
* OSSL_TRACE_BEGIN(TLS) {
|
||||||
|
*
|
||||||
|
* BIO_fprintf(trc_out, ... );
|
||||||
|
*
|
||||||
|
* } OSSL_TRACE_END(TLS);
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* This expands to the following code
|
||||||
|
*
|
||||||
|
* do {
|
||||||
|
* BIO *trc_out = OSSL_trace_begin(OSSL_TRACE_CATEGORY_TLS);
|
||||||
|
* if (trc_out != NULL) {
|
||||||
|
* ...
|
||||||
|
* BIO_fprintf(trc_out, ...);
|
||||||
|
* }
|
||||||
|
* OSSL_trace_end(OSSL_TRACE_CATEGORY_TLS, trc_out);
|
||||||
|
* } while (0);
|
||||||
|
*
|
||||||
|
* The use of the inner '{...}' group and the trailing ';' is enforced
|
||||||
|
* by the definition of the macros in order to make the code look as much
|
||||||
|
* like C code as possible.
|
||||||
|
*
|
||||||
|
* Before returning from inside the trace block, it is necessary to
|
||||||
|
* call OSSL_TRACE_CANCEL(category).
|
||||||
|
*/
|
||||||
|
|
||||||
|
# if !defined OPENSSL_NO_TRACE && !defined FIPS_MODULE
|
||||||
|
|
||||||
|
# define OSSL_TRACE_BEGIN(category) \
|
||||||
|
do { \
|
||||||
|
BIO *trc_out = OSSL_trace_begin(OSSL_TRACE_CATEGORY_##category); \
|
||||||
|
\
|
||||||
|
if (trc_out != NULL)
|
||||||
|
|
||||||
|
# define OSSL_TRACE_END(category) \
|
||||||
|
OSSL_trace_end(OSSL_TRACE_CATEGORY_##category, trc_out); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
# define OSSL_TRACE_CANCEL(category) \
|
||||||
|
OSSL_trace_end(OSSL_TRACE_CATEGORY_##category, trc_out) \
|
||||||
|
|
||||||
|
# else
|
||||||
|
|
||||||
|
# define OSSL_TRACE_BEGIN(category) \
|
||||||
|
do { \
|
||||||
|
BIO *trc_out = NULL; \
|
||||||
|
if (0)
|
||||||
|
|
||||||
|
# define OSSL_TRACE_END(category) \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
|
# define OSSL_TRACE_CANCEL(category) \
|
||||||
|
((void)0)
|
||||||
|
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* OSSL_TRACE_ENABLED() - Check whether tracing is enabled for |category|
|
||||||
|
*
|
||||||
|
* Usage:
|
||||||
|
*
|
||||||
|
* if (OSSL_TRACE_ENABLED(TLS)) {
|
||||||
|
* ...
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
# if !defined OPENSSL_NO_TRACE && !defined FIPS_MODULE
|
||||||
|
|
||||||
|
# define OSSL_TRACE_ENABLED(category) \
|
||||||
|
OSSL_trace_enabled(OSSL_TRACE_CATEGORY_##category)
|
||||||
|
|
||||||
|
# else
|
||||||
|
|
||||||
|
# define OSSL_TRACE_ENABLED(category) (0)
|
||||||
|
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* OSSL_TRACE*() - OneShot Trace Macros
|
||||||
|
*
|
||||||
|
* These macros are intended to produce a simple printf-style trace output.
|
||||||
|
* Unfortunately, C90 macros don't support variable arguments, so the
|
||||||
|
* "vararg" OSSL_TRACEV() macro has a rather weird usage pattern:
|
||||||
|
*
|
||||||
|
* OSSL_TRACEV(category, (trc_out, "format string", ...args...));
|
||||||
|
*
|
||||||
|
* Where 'channel' is the literal symbol of this name, not a variable.
|
||||||
|
* For that reason, it is currently not intended to be used directly,
|
||||||
|
* but only as helper macro for the other oneshot trace macros
|
||||||
|
* OSSL_TRACE(), OSSL_TRACE1(), OSSL_TRACE2(), ...
|
||||||
|
*
|
||||||
|
* Usage:
|
||||||
|
*
|
||||||
|
* OSSL_TRACE(INIT, "Hello world!\n");
|
||||||
|
* OSSL_TRACE1(TLS, "The answer is %d\n", 42);
|
||||||
|
* OSSL_TRACE2(TLS, "The ultimate question to answer %d is '%s'\n",
|
||||||
|
* 42, "What do you get when you multiply six by nine?");
|
||||||
|
*/
|
||||||
|
|
||||||
|
# if !defined OPENSSL_NO_TRACE && !defined FIPS_MODULE
|
||||||
|
|
||||||
|
# define OSSL_TRACEV(category, args) \
|
||||||
|
OSSL_TRACE_BEGIN(category) \
|
||||||
|
BIO_printf args; \
|
||||||
|
OSSL_TRACE_END(category)
|
||||||
|
|
||||||
|
# else
|
||||||
|
|
||||||
|
# define OSSL_TRACEV(category, args) ((void)0)
|
||||||
|
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# define OSSL_TRACE(category, text) \
|
||||||
|
OSSL_TRACEV(category, (trc_out, "%s", text))
|
||||||
|
|
||||||
|
# define OSSL_TRACE1(category, format, arg1) \
|
||||||
|
OSSL_TRACEV(category, (trc_out, format, arg1))
|
||||||
|
# define OSSL_TRACE2(category, format, arg1, arg2) \
|
||||||
|
OSSL_TRACEV(category, (trc_out, format, arg1, arg2))
|
||||||
|
# define OSSL_TRACE3(category, format, arg1, arg2, arg3) \
|
||||||
|
OSSL_TRACEV(category, (trc_out, format, arg1, arg2, arg3))
|
||||||
|
# define OSSL_TRACE4(category, format, arg1, arg2, arg3, arg4) \
|
||||||
|
OSSL_TRACEV(category, (trc_out, format, arg1, arg2, arg3, arg4))
|
||||||
|
# define OSSL_TRACE5(category, format, arg1, arg2, arg3, arg4, arg5) \
|
||||||
|
OSSL_TRACEV(category, (trc_out, format, arg1, arg2, arg3, arg4, arg5))
|
||||||
|
# define OSSL_TRACE6(category, format, arg1, arg2, arg3, arg4, arg5, arg6) \
|
||||||
|
OSSL_TRACEV(category, (trc_out, format, arg1, arg2, arg3, arg4, arg5, arg6))
|
||||||
|
# define OSSL_TRACE7(category, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7) \
|
||||||
|
OSSL_TRACEV(category, (trc_out, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7))
|
||||||
|
# define OSSL_TRACE8(category, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) \
|
||||||
|
OSSL_TRACEV(category, (trc_out, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8))
|
||||||
|
# define OSSL_TRACE9(category, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) \
|
||||||
|
OSSL_TRACEV(category, (trc_out, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9))
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif
|
239
deps/openssl/mingw64/include/openssl/types.h
vendored
Normal file
239
deps/openssl/mingw64/include/openssl/types.h
vendored
Normal file
@ -0,0 +1,239 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2001-2022 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Unfortunate workaround to avoid symbol conflict with wincrypt.h
|
||||||
|
* See https://github.com/openssl/openssl/issues/9981
|
||||||
|
*/
|
||||||
|
#ifdef _WIN32
|
||||||
|
# define WINCRYPT_USE_SYMBOL_PREFIX
|
||||||
|
# undef X509_NAME
|
||||||
|
# undef X509_EXTENSIONS
|
||||||
|
# undef PKCS7_SIGNER_INFO
|
||||||
|
# undef OCSP_REQUEST
|
||||||
|
# undef OCSP_RESPONSE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef OPENSSL_TYPES_H
|
||||||
|
# define OPENSSL_TYPES_H
|
||||||
|
|
||||||
|
# include <limits.h>
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# include <openssl/e_os2.h>
|
||||||
|
# include <openssl/safestack.h>
|
||||||
|
# include <openssl/macros.h>
|
||||||
|
|
||||||
|
typedef struct ossl_provider_st OSSL_PROVIDER; /* Provider Object */
|
||||||
|
|
||||||
|
# ifdef NO_ASN1_TYPEDEFS
|
||||||
|
# define ASN1_INTEGER ASN1_STRING
|
||||||
|
# define ASN1_ENUMERATED ASN1_STRING
|
||||||
|
# define ASN1_BIT_STRING ASN1_STRING
|
||||||
|
# define ASN1_OCTET_STRING ASN1_STRING
|
||||||
|
# define ASN1_PRINTABLESTRING ASN1_STRING
|
||||||
|
# define ASN1_T61STRING ASN1_STRING
|
||||||
|
# define ASN1_IA5STRING ASN1_STRING
|
||||||
|
# define ASN1_UTCTIME ASN1_STRING
|
||||||
|
# define ASN1_GENERALIZEDTIME ASN1_STRING
|
||||||
|
# define ASN1_TIME ASN1_STRING
|
||||||
|
# define ASN1_GENERALSTRING ASN1_STRING
|
||||||
|
# define ASN1_UNIVERSALSTRING ASN1_STRING
|
||||||
|
# define ASN1_BMPSTRING ASN1_STRING
|
||||||
|
# define ASN1_VISIBLESTRING ASN1_STRING
|
||||||
|
# define ASN1_UTF8STRING ASN1_STRING
|
||||||
|
# define ASN1_BOOLEAN int
|
||||||
|
# define ASN1_NULL int
|
||||||
|
# else
|
||||||
|
typedef struct asn1_string_st ASN1_INTEGER;
|
||||||
|
typedef struct asn1_string_st ASN1_ENUMERATED;
|
||||||
|
typedef struct asn1_string_st ASN1_BIT_STRING;
|
||||||
|
typedef struct asn1_string_st ASN1_OCTET_STRING;
|
||||||
|
typedef struct asn1_string_st ASN1_PRINTABLESTRING;
|
||||||
|
typedef struct asn1_string_st ASN1_T61STRING;
|
||||||
|
typedef struct asn1_string_st ASN1_IA5STRING;
|
||||||
|
typedef struct asn1_string_st ASN1_GENERALSTRING;
|
||||||
|
typedef struct asn1_string_st ASN1_UNIVERSALSTRING;
|
||||||
|
typedef struct asn1_string_st ASN1_BMPSTRING;
|
||||||
|
typedef struct asn1_string_st ASN1_UTCTIME;
|
||||||
|
typedef struct asn1_string_st ASN1_TIME;
|
||||||
|
typedef struct asn1_string_st ASN1_GENERALIZEDTIME;
|
||||||
|
typedef struct asn1_string_st ASN1_VISIBLESTRING;
|
||||||
|
typedef struct asn1_string_st ASN1_UTF8STRING;
|
||||||
|
typedef struct asn1_string_st ASN1_STRING;
|
||||||
|
typedef int ASN1_BOOLEAN;
|
||||||
|
typedef int ASN1_NULL;
|
||||||
|
# endif
|
||||||
|
|
||||||
|
typedef struct asn1_type_st ASN1_TYPE;
|
||||||
|
typedef struct asn1_object_st ASN1_OBJECT;
|
||||||
|
typedef struct asn1_string_table_st ASN1_STRING_TABLE;
|
||||||
|
|
||||||
|
typedef struct ASN1_ITEM_st ASN1_ITEM;
|
||||||
|
typedef struct asn1_pctx_st ASN1_PCTX;
|
||||||
|
typedef struct asn1_sctx_st ASN1_SCTX;
|
||||||
|
|
||||||
|
# ifdef BIGNUM
|
||||||
|
# undef BIGNUM
|
||||||
|
# endif
|
||||||
|
|
||||||
|
typedef struct bio_st BIO;
|
||||||
|
typedef struct bignum_st BIGNUM;
|
||||||
|
typedef struct bignum_ctx BN_CTX;
|
||||||
|
typedef struct bn_blinding_st BN_BLINDING;
|
||||||
|
typedef struct bn_mont_ctx_st BN_MONT_CTX;
|
||||||
|
typedef struct bn_recp_ctx_st BN_RECP_CTX;
|
||||||
|
typedef struct bn_gencb_st BN_GENCB;
|
||||||
|
|
||||||
|
typedef struct buf_mem_st BUF_MEM;
|
||||||
|
|
||||||
|
STACK_OF(BIGNUM);
|
||||||
|
STACK_OF(BIGNUM_const);
|
||||||
|
|
||||||
|
typedef struct err_state_st ERR_STATE;
|
||||||
|
|
||||||
|
typedef struct evp_cipher_st EVP_CIPHER;
|
||||||
|
typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX;
|
||||||
|
typedef struct evp_md_st EVP_MD;
|
||||||
|
typedef struct evp_md_ctx_st EVP_MD_CTX;
|
||||||
|
typedef struct evp_mac_st EVP_MAC;
|
||||||
|
typedef struct evp_mac_ctx_st EVP_MAC_CTX;
|
||||||
|
typedef struct evp_pkey_st EVP_PKEY;
|
||||||
|
|
||||||
|
typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD;
|
||||||
|
|
||||||
|
typedef struct evp_pkey_method_st EVP_PKEY_METHOD;
|
||||||
|
typedef struct evp_pkey_ctx_st EVP_PKEY_CTX;
|
||||||
|
|
||||||
|
typedef struct evp_keymgmt_st EVP_KEYMGMT;
|
||||||
|
|
||||||
|
typedef struct evp_kdf_st EVP_KDF;
|
||||||
|
typedef struct evp_kdf_ctx_st EVP_KDF_CTX;
|
||||||
|
|
||||||
|
typedef struct evp_rand_st EVP_RAND;
|
||||||
|
typedef struct evp_rand_ctx_st EVP_RAND_CTX;
|
||||||
|
|
||||||
|
typedef struct evp_keyexch_st EVP_KEYEXCH;
|
||||||
|
|
||||||
|
typedef struct evp_signature_st EVP_SIGNATURE;
|
||||||
|
|
||||||
|
typedef struct evp_asym_cipher_st EVP_ASYM_CIPHER;
|
||||||
|
|
||||||
|
typedef struct evp_kem_st EVP_KEM;
|
||||||
|
|
||||||
|
typedef struct evp_Encode_Ctx_st EVP_ENCODE_CTX;
|
||||||
|
|
||||||
|
typedef struct hmac_ctx_st HMAC_CTX;
|
||||||
|
|
||||||
|
typedef struct dh_st DH;
|
||||||
|
typedef struct dh_method DH_METHOD;
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
typedef struct dsa_st DSA;
|
||||||
|
typedef struct dsa_method DSA_METHOD;
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
typedef struct rsa_st RSA;
|
||||||
|
typedef struct rsa_meth_st RSA_METHOD;
|
||||||
|
# endif
|
||||||
|
typedef struct rsa_pss_params_st RSA_PSS_PARAMS;
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
typedef struct ec_key_st EC_KEY;
|
||||||
|
typedef struct ec_key_method_st EC_KEY_METHOD;
|
||||||
|
# endif
|
||||||
|
|
||||||
|
typedef struct rand_meth_st RAND_METHOD;
|
||||||
|
typedef struct rand_drbg_st RAND_DRBG;
|
||||||
|
|
||||||
|
typedef struct ssl_dane_st SSL_DANE;
|
||||||
|
typedef struct x509_st X509;
|
||||||
|
typedef struct X509_algor_st X509_ALGOR;
|
||||||
|
typedef struct X509_crl_st X509_CRL;
|
||||||
|
typedef struct x509_crl_method_st X509_CRL_METHOD;
|
||||||
|
typedef struct x509_revoked_st X509_REVOKED;
|
||||||
|
typedef struct X509_name_st X509_NAME;
|
||||||
|
typedef struct X509_pubkey_st X509_PUBKEY;
|
||||||
|
typedef struct x509_store_st X509_STORE;
|
||||||
|
typedef struct x509_store_ctx_st X509_STORE_CTX;
|
||||||
|
|
||||||
|
typedef struct x509_object_st X509_OBJECT;
|
||||||
|
typedef struct x509_lookup_st X509_LOOKUP;
|
||||||
|
typedef struct x509_lookup_method_st X509_LOOKUP_METHOD;
|
||||||
|
typedef struct X509_VERIFY_PARAM_st X509_VERIFY_PARAM;
|
||||||
|
|
||||||
|
typedef struct x509_sig_info_st X509_SIG_INFO;
|
||||||
|
|
||||||
|
typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO;
|
||||||
|
|
||||||
|
typedef struct v3_ext_ctx X509V3_CTX;
|
||||||
|
typedef struct conf_st CONF;
|
||||||
|
typedef struct ossl_init_settings_st OPENSSL_INIT_SETTINGS;
|
||||||
|
|
||||||
|
typedef struct ui_st UI;
|
||||||
|
typedef struct ui_method_st UI_METHOD;
|
||||||
|
|
||||||
|
typedef struct engine_st ENGINE;
|
||||||
|
typedef struct ssl_st SSL;
|
||||||
|
typedef struct ssl_ctx_st SSL_CTX;
|
||||||
|
|
||||||
|
typedef struct comp_ctx_st COMP_CTX;
|
||||||
|
typedef struct comp_method_st COMP_METHOD;
|
||||||
|
|
||||||
|
typedef struct X509_POLICY_NODE_st X509_POLICY_NODE;
|
||||||
|
typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL;
|
||||||
|
typedef struct X509_POLICY_TREE_st X509_POLICY_TREE;
|
||||||
|
typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE;
|
||||||
|
|
||||||
|
typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID;
|
||||||
|
typedef struct DIST_POINT_st DIST_POINT;
|
||||||
|
typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT;
|
||||||
|
typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS;
|
||||||
|
|
||||||
|
typedef struct crypto_ex_data_st CRYPTO_EX_DATA;
|
||||||
|
|
||||||
|
typedef struct ossl_http_req_ctx_st OSSL_HTTP_REQ_CTX;
|
||||||
|
typedef struct ocsp_response_st OCSP_RESPONSE;
|
||||||
|
typedef struct ocsp_responder_id_st OCSP_RESPID;
|
||||||
|
|
||||||
|
typedef struct sct_st SCT;
|
||||||
|
typedef struct sct_ctx_st SCT_CTX;
|
||||||
|
typedef struct ctlog_st CTLOG;
|
||||||
|
typedef struct ctlog_store_st CTLOG_STORE;
|
||||||
|
typedef struct ct_policy_eval_ctx_st CT_POLICY_EVAL_CTX;
|
||||||
|
|
||||||
|
typedef struct ossl_store_info_st OSSL_STORE_INFO;
|
||||||
|
typedef struct ossl_store_search_st OSSL_STORE_SEARCH;
|
||||||
|
|
||||||
|
typedef struct ossl_lib_ctx_st OSSL_LIB_CTX;
|
||||||
|
|
||||||
|
typedef struct ossl_dispatch_st OSSL_DISPATCH;
|
||||||
|
typedef struct ossl_item_st OSSL_ITEM;
|
||||||
|
typedef struct ossl_algorithm_st OSSL_ALGORITHM;
|
||||||
|
typedef struct ossl_param_st OSSL_PARAM;
|
||||||
|
typedef struct ossl_param_bld_st OSSL_PARAM_BLD;
|
||||||
|
|
||||||
|
typedef int pem_password_cb (char *buf, int size, int rwflag, void *userdata);
|
||||||
|
|
||||||
|
typedef struct ossl_encoder_st OSSL_ENCODER;
|
||||||
|
typedef struct ossl_encoder_ctx_st OSSL_ENCODER_CTX;
|
||||||
|
typedef struct ossl_decoder_st OSSL_DECODER;
|
||||||
|
typedef struct ossl_decoder_ctx_st OSSL_DECODER_CTX;
|
||||||
|
|
||||||
|
typedef struct ossl_self_test_st OSSL_SELF_TEST;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* OPENSSL_TYPES_H */
|
384
deps/openssl/mingw64/include/openssl/ui.h.in
vendored
Normal file
384
deps/openssl/mingw64/include/openssl/ui.h.in
vendored
Normal file
@ -0,0 +1,384 @@
|
|||||||
|
/*
|
||||||
|
* {- join("\n * ", @autowarntext) -}
|
||||||
|
*
|
||||||
|
* Copyright 2001-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
{-
|
||||||
|
use OpenSSL::stackhash qw(generate_stack_macros);
|
||||||
|
-}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_UI_H
|
||||||
|
# define OPENSSL_UI_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/macros.h>
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# define HEADER_UI_H
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
# include <openssl/crypto.h>
|
||||||
|
# endif
|
||||||
|
# include <openssl/safestack.h>
|
||||||
|
# include <openssl/pem.h>
|
||||||
|
# include <openssl/types.h>
|
||||||
|
# include <openssl/uierr.h>
|
||||||
|
|
||||||
|
/* For compatibility reasons, the macro OPENSSL_NO_UI is currently retained */
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# ifdef OPENSSL_NO_UI_CONSOLE
|
||||||
|
# define OPENSSL_NO_UI
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* All the following functions return -1 or NULL on error and in some cases
|
||||||
|
* (UI_process()) -2 if interrupted or in some other way cancelled. When
|
||||||
|
* everything is fine, they return 0, a positive value or a non-NULL pointer,
|
||||||
|
* all depending on their purpose.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Creators and destructor. */
|
||||||
|
UI *UI_new(void);
|
||||||
|
UI *UI_new_method(const UI_METHOD *method);
|
||||||
|
void UI_free(UI *ui);
|
||||||
|
|
||||||
|
/*-
|
||||||
|
The following functions are used to add strings to be printed and prompt
|
||||||
|
strings to prompt for data. The names are UI_{add,dup}_<function>_string
|
||||||
|
and UI_{add,dup}_input_boolean.
|
||||||
|
|
||||||
|
UI_{add,dup}_<function>_string have the following meanings:
|
||||||
|
add add a text or prompt string. The pointers given to these
|
||||||
|
functions are used verbatim, no copying is done.
|
||||||
|
dup make a copy of the text or prompt string, then add the copy
|
||||||
|
to the collection of strings in the user interface.
|
||||||
|
<function>
|
||||||
|
The function is a name for the functionality that the given
|
||||||
|
string shall be used for. It can be one of:
|
||||||
|
input use the string as data prompt.
|
||||||
|
verify use the string as verification prompt. This
|
||||||
|
is used to verify a previous input.
|
||||||
|
info use the string for informational output.
|
||||||
|
error use the string for error output.
|
||||||
|
Honestly, there's currently no difference between info and error for the
|
||||||
|
moment.
|
||||||
|
|
||||||
|
UI_{add,dup}_input_boolean have the same semantics for "add" and "dup",
|
||||||
|
and are typically used when one wants to prompt for a yes/no response.
|
||||||
|
|
||||||
|
All of the functions in this group take a UI and a prompt string.
|
||||||
|
The string input and verify addition functions also take a flag argument,
|
||||||
|
a buffer for the result to end up with, a minimum input size and a maximum
|
||||||
|
input size (the result buffer MUST be large enough to be able to contain
|
||||||
|
the maximum number of characters). Additionally, the verify addition
|
||||||
|
functions takes another buffer to compare the result against.
|
||||||
|
The boolean input functions take an action description string (which should
|
||||||
|
be safe to ignore if the expected user action is obvious, for example with
|
||||||
|
a dialog box with an OK button and a Cancel button), a string of acceptable
|
||||||
|
characters to mean OK and to mean Cancel. The two last strings are checked
|
||||||
|
to make sure they don't have common characters. Additionally, the same
|
||||||
|
flag argument as for the string input is taken, as well as a result buffer.
|
||||||
|
The result buffer is required to be at least one byte long. Depending on
|
||||||
|
the answer, the first character from the OK or the Cancel character strings
|
||||||
|
will be stored in the first byte of the result buffer. No NUL will be
|
||||||
|
added, so the result is *not* a string.
|
||||||
|
|
||||||
|
On success, the all return an index of the added information. That index
|
||||||
|
is useful when retrieving results with UI_get0_result(). */
|
||||||
|
int UI_add_input_string(UI *ui, const char *prompt, int flags,
|
||||||
|
char *result_buf, int minsize, int maxsize);
|
||||||
|
int UI_dup_input_string(UI *ui, const char *prompt, int flags,
|
||||||
|
char *result_buf, int minsize, int maxsize);
|
||||||
|
int UI_add_verify_string(UI *ui, const char *prompt, int flags,
|
||||||
|
char *result_buf, int minsize, int maxsize,
|
||||||
|
const char *test_buf);
|
||||||
|
int UI_dup_verify_string(UI *ui, const char *prompt, int flags,
|
||||||
|
char *result_buf, int minsize, int maxsize,
|
||||||
|
const char *test_buf);
|
||||||
|
int UI_add_input_boolean(UI *ui, const char *prompt, const char *action_desc,
|
||||||
|
const char *ok_chars, const char *cancel_chars,
|
||||||
|
int flags, char *result_buf);
|
||||||
|
int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc,
|
||||||
|
const char *ok_chars, const char *cancel_chars,
|
||||||
|
int flags, char *result_buf);
|
||||||
|
int UI_add_info_string(UI *ui, const char *text);
|
||||||
|
int UI_dup_info_string(UI *ui, const char *text);
|
||||||
|
int UI_add_error_string(UI *ui, const char *text);
|
||||||
|
int UI_dup_error_string(UI *ui, const char *text);
|
||||||
|
|
||||||
|
/* These are the possible flags. They can be or'ed together. */
|
||||||
|
/* Use to have echoing of input */
|
||||||
|
# define UI_INPUT_FLAG_ECHO 0x01
|
||||||
|
/*
|
||||||
|
* Use a default password. Where that password is found is completely up to
|
||||||
|
* the application, it might for example be in the user data set with
|
||||||
|
* UI_add_user_data(). It is not recommended to have more than one input in
|
||||||
|
* each UI being marked with this flag, or the application might get
|
||||||
|
* confused.
|
||||||
|
*/
|
||||||
|
# define UI_INPUT_FLAG_DEFAULT_PWD 0x02
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* The user of these routines may want to define flags of their own. The core
|
||||||
|
* UI won't look at those, but will pass them on to the method routines. They
|
||||||
|
* must use higher bits so they don't get confused with the UI bits above.
|
||||||
|
* UI_INPUT_FLAG_USER_BASE tells which is the lowest bit to use. A good
|
||||||
|
* example of use is this:
|
||||||
|
*
|
||||||
|
* #define MY_UI_FLAG1 (0x01 << UI_INPUT_FLAG_USER_BASE)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
# define UI_INPUT_FLAG_USER_BASE 16
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* The following function helps construct a prompt.
|
||||||
|
* phrase_desc is a textual short description of the phrase to enter,
|
||||||
|
* for example "pass phrase", and
|
||||||
|
* object_name is the name of the object
|
||||||
|
* (which might be a card name or a file name) or NULL.
|
||||||
|
* The returned string shall always be allocated on the heap with
|
||||||
|
* OPENSSL_malloc(), and need to be free'd with OPENSSL_free().
|
||||||
|
*
|
||||||
|
* If the ui_method doesn't contain a pointer to a user-defined prompt
|
||||||
|
* constructor, a default string is built, looking like this:
|
||||||
|
*
|
||||||
|
* "Enter {phrase_desc} for {object_name}:"
|
||||||
|
*
|
||||||
|
* So, if phrase_desc has the value "pass phrase" and object_name has
|
||||||
|
* the value "foo.key", the resulting string is:
|
||||||
|
*
|
||||||
|
* "Enter pass phrase for foo.key:"
|
||||||
|
*/
|
||||||
|
char *UI_construct_prompt(UI *ui_method,
|
||||||
|
const char *phrase_desc, const char *object_name);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The following function is used to store a pointer to user-specific data.
|
||||||
|
* Any previous such pointer will be returned and replaced.
|
||||||
|
*
|
||||||
|
* For callback purposes, this function makes a lot more sense than using
|
||||||
|
* ex_data, since the latter requires that different parts of OpenSSL or
|
||||||
|
* applications share the same ex_data index.
|
||||||
|
*
|
||||||
|
* Note that the UI_OpenSSL() method completely ignores the user data. Other
|
||||||
|
* methods may not, however.
|
||||||
|
*/
|
||||||
|
void *UI_add_user_data(UI *ui, void *user_data);
|
||||||
|
/*
|
||||||
|
* Alternatively, this function is used to duplicate the user data.
|
||||||
|
* This uses the duplicator method function. The destroy function will
|
||||||
|
* be used to free the user data in this case.
|
||||||
|
*/
|
||||||
|
int UI_dup_user_data(UI *ui, void *user_data);
|
||||||
|
/* We need a user data retrieving function as well. */
|
||||||
|
void *UI_get0_user_data(UI *ui);
|
||||||
|
|
||||||
|
/* Return the result associated with a prompt given with the index i. */
|
||||||
|
const char *UI_get0_result(UI *ui, int i);
|
||||||
|
int UI_get_result_length(UI *ui, int i);
|
||||||
|
|
||||||
|
/* When all strings have been added, process the whole thing. */
|
||||||
|
int UI_process(UI *ui);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Give a user interface parameterised control commands. This can be used to
|
||||||
|
* send down an integer, a data pointer or a function pointer, as well as be
|
||||||
|
* used to get information from a UI.
|
||||||
|
*/
|
||||||
|
int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void));
|
||||||
|
|
||||||
|
/* The commands */
|
||||||
|
/*
|
||||||
|
* Use UI_CONTROL_PRINT_ERRORS with the value 1 to have UI_process print the
|
||||||
|
* OpenSSL error stack before printing any info or added error messages and
|
||||||
|
* before any prompting.
|
||||||
|
*/
|
||||||
|
# define UI_CTRL_PRINT_ERRORS 1
|
||||||
|
/*
|
||||||
|
* Check if a UI_process() is possible to do again with the same instance of
|
||||||
|
* a user interface. This makes UI_ctrl() return 1 if it is redoable, and 0
|
||||||
|
* if not.
|
||||||
|
*/
|
||||||
|
# define UI_CTRL_IS_REDOABLE 2
|
||||||
|
|
||||||
|
/* Some methods may use extra data */
|
||||||
|
# define UI_set_app_data(s,arg) UI_set_ex_data(s,0,arg)
|
||||||
|
# define UI_get_app_data(s) UI_get_ex_data(s,0)
|
||||||
|
|
||||||
|
# define UI_get_ex_new_index(l, p, newf, dupf, freef) \
|
||||||
|
CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_UI, l, p, newf, dupf, freef)
|
||||||
|
int UI_set_ex_data(UI *r, int idx, void *arg);
|
||||||
|
void *UI_get_ex_data(const UI *r, int idx);
|
||||||
|
|
||||||
|
/* Use specific methods instead of the built-in one */
|
||||||
|
void UI_set_default_method(const UI_METHOD *meth);
|
||||||
|
const UI_METHOD *UI_get_default_method(void);
|
||||||
|
const UI_METHOD *UI_get_method(UI *ui);
|
||||||
|
const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth);
|
||||||
|
|
||||||
|
# ifndef OPENSSL_NO_UI_CONSOLE
|
||||||
|
|
||||||
|
/* The method with all the built-in thingies */
|
||||||
|
UI_METHOD *UI_OpenSSL(void);
|
||||||
|
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* NULL method. Literally does nothing, but may serve as a placeholder
|
||||||
|
* to avoid internal default.
|
||||||
|
*/
|
||||||
|
const UI_METHOD *UI_null(void);
|
||||||
|
|
||||||
|
/* ---------- For method writers ---------- */
|
||||||
|
/*-
|
||||||
|
A method contains a number of functions that implement the low level
|
||||||
|
of the User Interface. The functions are:
|
||||||
|
|
||||||
|
an opener This function starts a session, maybe by opening
|
||||||
|
a channel to a tty, or by opening a window.
|
||||||
|
a writer This function is called to write a given string,
|
||||||
|
maybe to the tty, maybe as a field label in a
|
||||||
|
window.
|
||||||
|
a flusher This function is called to flush everything that
|
||||||
|
has been output so far. It can be used to actually
|
||||||
|
display a dialog box after it has been built.
|
||||||
|
a reader This function is called to read a given prompt,
|
||||||
|
maybe from the tty, maybe from a field in a
|
||||||
|
window. Note that it's called with all string
|
||||||
|
structures, not only the prompt ones, so it must
|
||||||
|
check such things itself.
|
||||||
|
a closer This function closes the session, maybe by closing
|
||||||
|
the channel to the tty, or closing the window.
|
||||||
|
|
||||||
|
All these functions are expected to return:
|
||||||
|
|
||||||
|
0 on error.
|
||||||
|
1 on success.
|
||||||
|
-1 on out-of-band events, for example if some prompting has
|
||||||
|
been canceled (by pressing Ctrl-C, for example). This is
|
||||||
|
only checked when returned by the flusher or the reader.
|
||||||
|
|
||||||
|
The way this is used, the opener is first called, then the writer for all
|
||||||
|
strings, then the flusher, then the reader for all strings and finally the
|
||||||
|
closer. Note that if you want to prompt from a terminal or other command
|
||||||
|
line interface, the best is to have the reader also write the prompts
|
||||||
|
instead of having the writer do it. If you want to prompt from a dialog
|
||||||
|
box, the writer can be used to build up the contents of the box, and the
|
||||||
|
flusher to actually display the box and run the event loop until all data
|
||||||
|
has been given, after which the reader only grabs the given data and puts
|
||||||
|
them back into the UI strings.
|
||||||
|
|
||||||
|
All method functions take a UI as argument. Additionally, the writer and
|
||||||
|
the reader take a UI_STRING.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The UI_STRING type is the data structure that contains all the needed info
|
||||||
|
* about a string or a prompt, including test data for a verification prompt.
|
||||||
|
*/
|
||||||
|
typedef struct ui_string_st UI_STRING;
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_stack_macros("UI_STRING");
|
||||||
|
-}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The different types of strings that are currently supported. This is only
|
||||||
|
* needed by method authors.
|
||||||
|
*/
|
||||||
|
enum UI_string_types {
|
||||||
|
UIT_NONE = 0,
|
||||||
|
UIT_PROMPT, /* Prompt for a string */
|
||||||
|
UIT_VERIFY, /* Prompt for a string and verify */
|
||||||
|
UIT_BOOLEAN, /* Prompt for a yes/no response */
|
||||||
|
UIT_INFO, /* Send info to the user */
|
||||||
|
UIT_ERROR /* Send an error message to the user */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Create and manipulate methods */
|
||||||
|
UI_METHOD *UI_create_method(const char *name);
|
||||||
|
void UI_destroy_method(UI_METHOD *ui_method);
|
||||||
|
int UI_method_set_opener(UI_METHOD *method, int (*opener) (UI *ui));
|
||||||
|
int UI_method_set_writer(UI_METHOD *method,
|
||||||
|
int (*writer) (UI *ui, UI_STRING *uis));
|
||||||
|
int UI_method_set_flusher(UI_METHOD *method, int (*flusher) (UI *ui));
|
||||||
|
int UI_method_set_reader(UI_METHOD *method,
|
||||||
|
int (*reader) (UI *ui, UI_STRING *uis));
|
||||||
|
int UI_method_set_closer(UI_METHOD *method, int (*closer) (UI *ui));
|
||||||
|
int UI_method_set_data_duplicator(UI_METHOD *method,
|
||||||
|
void *(*duplicator) (UI *ui, void *ui_data),
|
||||||
|
void (*destructor)(UI *ui, void *ui_data));
|
||||||
|
int UI_method_set_prompt_constructor(UI_METHOD *method,
|
||||||
|
char *(*prompt_constructor) (UI *ui,
|
||||||
|
const char
|
||||||
|
*phrase_desc,
|
||||||
|
const char
|
||||||
|
*object_name));
|
||||||
|
int UI_method_set_ex_data(UI_METHOD *method, int idx, void *data);
|
||||||
|
int (*UI_method_get_opener(const UI_METHOD *method)) (UI *);
|
||||||
|
int (*UI_method_get_writer(const UI_METHOD *method)) (UI *, UI_STRING *);
|
||||||
|
int (*UI_method_get_flusher(const UI_METHOD *method)) (UI *);
|
||||||
|
int (*UI_method_get_reader(const UI_METHOD *method)) (UI *, UI_STRING *);
|
||||||
|
int (*UI_method_get_closer(const UI_METHOD *method)) (UI *);
|
||||||
|
char *(*UI_method_get_prompt_constructor(const UI_METHOD *method))
|
||||||
|
(UI *, const char *, const char *);
|
||||||
|
void *(*UI_method_get_data_duplicator(const UI_METHOD *method)) (UI *, void *);
|
||||||
|
void (*UI_method_get_data_destructor(const UI_METHOD *method)) (UI *, void *);
|
||||||
|
const void *UI_method_get_ex_data(const UI_METHOD *method, int idx);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The following functions are helpers for method writers to access relevant
|
||||||
|
* data from a UI_STRING.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Return type of the UI_STRING */
|
||||||
|
enum UI_string_types UI_get_string_type(UI_STRING *uis);
|
||||||
|
/* Return input flags of the UI_STRING */
|
||||||
|
int UI_get_input_flags(UI_STRING *uis);
|
||||||
|
/* Return the actual string to output (the prompt, info or error) */
|
||||||
|
const char *UI_get0_output_string(UI_STRING *uis);
|
||||||
|
/*
|
||||||
|
* Return the optional action string to output (the boolean prompt
|
||||||
|
* instruction)
|
||||||
|
*/
|
||||||
|
const char *UI_get0_action_string(UI_STRING *uis);
|
||||||
|
/* Return the result of a prompt */
|
||||||
|
const char *UI_get0_result_string(UI_STRING *uis);
|
||||||
|
int UI_get_result_string_length(UI_STRING *uis);
|
||||||
|
/*
|
||||||
|
* Return the string to test the result against. Only useful with verifies.
|
||||||
|
*/
|
||||||
|
const char *UI_get0_test_string(UI_STRING *uis);
|
||||||
|
/* Return the required minimum size of the result */
|
||||||
|
int UI_get_result_minsize(UI_STRING *uis);
|
||||||
|
/* Return the required maximum size of the result */
|
||||||
|
int UI_get_result_maxsize(UI_STRING *uis);
|
||||||
|
/* Set the result of a UI_STRING. */
|
||||||
|
int UI_set_result(UI *ui, UI_STRING *uis, const char *result);
|
||||||
|
int UI_set_result_ex(UI *ui, UI_STRING *uis, const char *result, int len);
|
||||||
|
|
||||||
|
/* A couple of popular utility functions */
|
||||||
|
int UI_UTIL_read_pw_string(char *buf, int length, const char *prompt,
|
||||||
|
int verify);
|
||||||
|
int UI_UTIL_read_pw(char *buf, char *buff, int size, const char *prompt,
|
||||||
|
int verify);
|
||||||
|
UI_METHOD *UI_UTIL_wrap_read_pem_callback(pem_password_cb *cb, int rwflag);
|
||||||
|
|
||||||
|
|
||||||
|
# ifdef __cplusplus
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
#endif
|
1085
deps/openssl/mingw64/include/openssl/x509.h.in
vendored
Normal file
1085
deps/openssl/mingw64/include/openssl/x509.h.in
vendored
Normal file
File diff suppressed because it is too large
Load Diff
797
deps/openssl/mingw64/include/openssl/x509_vfy.h.in
vendored
Normal file
797
deps/openssl/mingw64/include/openssl/x509_vfy.h.in
vendored
Normal file
@ -0,0 +1,797 @@
|
|||||||
|
/*
|
||||||
|
* {- join("\n * ", @autowarntext) -}
|
||||||
|
*
|
||||||
|
* Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||||
|
* this file except in compliance with the License. You can obtain a copy
|
||||||
|
* in the file LICENSE in the source distribution or at
|
||||||
|
* https://www.openssl.org/source/license.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
{-
|
||||||
|
use OpenSSL::stackhash qw(generate_stack_macros);
|
||||||
|
-}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_X509_VFY_H
|
||||||
|
# define OPENSSL_X509_VFY_H
|
||||||
|
# pragma once
|
||||||
|
|
||||||
|
# include <openssl/macros.h>
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||||
|
# define HEADER_X509_VFY_H
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Protect against recursion, x509.h and x509_vfy.h each include the other.
|
||||||
|
*/
|
||||||
|
# ifndef OPENSSL_X509_H
|
||||||
|
# include <openssl/x509.h>
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# include <openssl/opensslconf.h>
|
||||||
|
# include <openssl/lhash.h>
|
||||||
|
# include <openssl/bio.h>
|
||||||
|
# include <openssl/crypto.h>
|
||||||
|
# include <openssl/symhacks.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*-
|
||||||
|
SSL_CTX -> X509_STORE
|
||||||
|
-> X509_LOOKUP
|
||||||
|
->X509_LOOKUP_METHOD
|
||||||
|
-> X509_LOOKUP
|
||||||
|
->X509_LOOKUP_METHOD
|
||||||
|
|
||||||
|
SSL -> X509_STORE_CTX
|
||||||
|
->X509_STORE
|
||||||
|
|
||||||
|
The X509_STORE holds the tables etc for verification stuff.
|
||||||
|
A X509_STORE_CTX is used while validating a single certificate.
|
||||||
|
The X509_STORE has X509_LOOKUPs for looking up certs.
|
||||||
|
The X509_STORE then calls a function to actually verify the
|
||||||
|
certificate chain.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
X509_LU_NONE = 0,
|
||||||
|
X509_LU_X509, X509_LU_CRL
|
||||||
|
} X509_LOOKUP_TYPE;
|
||||||
|
|
||||||
|
#ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
#define X509_LU_RETRY -1
|
||||||
|
#define X509_LU_FAIL 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
{-
|
||||||
|
generate_stack_macros("X509_LOOKUP")
|
||||||
|
.generate_stack_macros("X509_OBJECT")
|
||||||
|
.generate_stack_macros("X509_VERIFY_PARAM");
|
||||||
|
-}
|
||||||
|
|
||||||
|
/* This is used for a table of trust checking functions */
|
||||||
|
typedef struct x509_trust_st {
|
||||||
|
int trust;
|
||||||
|
int flags;
|
||||||
|
int (*check_trust) (struct x509_trust_st *, X509 *, int);
|
||||||
|
char *name;
|
||||||
|
int arg1;
|
||||||
|
void *arg2;
|
||||||
|
} X509_TRUST;
|
||||||
|
{-
|
||||||
|
generate_stack_macros("X509_TRUST");
|
||||||
|
-}
|
||||||
|
|
||||||
|
/* standard trust ids */
|
||||||
|
# define X509_TRUST_DEFAULT 0 /* Only valid in purpose settings */
|
||||||
|
# define X509_TRUST_COMPAT 1
|
||||||
|
# define X509_TRUST_SSL_CLIENT 2
|
||||||
|
# define X509_TRUST_SSL_SERVER 3
|
||||||
|
# define X509_TRUST_EMAIL 4
|
||||||
|
# define X509_TRUST_OBJECT_SIGN 5
|
||||||
|
# define X509_TRUST_OCSP_SIGN 6
|
||||||
|
# define X509_TRUST_OCSP_REQUEST 7
|
||||||
|
# define X509_TRUST_TSA 8
|
||||||
|
/* Keep these up to date! */
|
||||||
|
# define X509_TRUST_MIN 1
|
||||||
|
# define X509_TRUST_MAX 8
|
||||||
|
|
||||||
|
/* trust_flags values */
|
||||||
|
# define X509_TRUST_DYNAMIC (1U << 0)
|
||||||
|
# define X509_TRUST_DYNAMIC_NAME (1U << 1)
|
||||||
|
/* No compat trust if self-signed, preempts "DO_SS" */
|
||||||
|
# define X509_TRUST_NO_SS_COMPAT (1U << 2)
|
||||||
|
/* Compat trust if no explicit accepted trust EKUs */
|
||||||
|
# define X509_TRUST_DO_SS_COMPAT (1U << 3)
|
||||||
|
/* Accept "anyEKU" as a wildcard rejection OID and as a wildcard trust OID */
|
||||||
|
# define X509_TRUST_OK_ANY_EKU (1U << 4)
|
||||||
|
|
||||||
|
/* check_trust return codes */
|
||||||
|
# define X509_TRUST_TRUSTED 1
|
||||||
|
# define X509_TRUST_REJECTED 2
|
||||||
|
# define X509_TRUST_UNTRUSTED 3
|
||||||
|
|
||||||
|
int X509_TRUST_set(int *t, int trust);
|
||||||
|
int X509_TRUST_get_count(void);
|
||||||
|
X509_TRUST *X509_TRUST_get0(int idx);
|
||||||
|
int X509_TRUST_get_by_id(int id);
|
||||||
|
int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509 *, int),
|
||||||
|
const char *name, int arg1, void *arg2);
|
||||||
|
void X509_TRUST_cleanup(void);
|
||||||
|
int X509_TRUST_get_flags(const X509_TRUST *xp);
|
||||||
|
char *X509_TRUST_get0_name(const X509_TRUST *xp);
|
||||||
|
int X509_TRUST_get_trust(const X509_TRUST *xp);
|
||||||
|
|
||||||
|
int X509_trusted(const X509 *x);
|
||||||
|
int X509_add1_trust_object(X509 *x, const ASN1_OBJECT *obj);
|
||||||
|
int X509_add1_reject_object(X509 *x, const ASN1_OBJECT *obj);
|
||||||
|
void X509_trust_clear(X509 *x);
|
||||||
|
void X509_reject_clear(X509 *x);
|
||||||
|
STACK_OF(ASN1_OBJECT) *X509_get0_trust_objects(X509 *x);
|
||||||
|
STACK_OF(ASN1_OBJECT) *X509_get0_reject_objects(X509 *x);
|
||||||
|
|
||||||
|
int (*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509 *,
|
||||||
|
int);
|
||||||
|
int X509_check_trust(X509 *x, int id, int flags);
|
||||||
|
|
||||||
|
int X509_verify_cert(X509_STORE_CTX *ctx);
|
||||||
|
int X509_STORE_CTX_verify(X509_STORE_CTX *ctx);
|
||||||
|
STACK_OF(X509) *X509_build_chain(X509 *target, STACK_OF(X509) *certs,
|
||||||
|
X509_STORE *store, int with_self_signed,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
|
||||||
|
int X509_STORE_set_depth(X509_STORE *store, int depth);
|
||||||
|
|
||||||
|
typedef int (*X509_STORE_CTX_verify_cb)(int, X509_STORE_CTX *);
|
||||||
|
int X509_STORE_CTX_print_verify_cb(int ok, X509_STORE_CTX *ctx);
|
||||||
|
typedef int (*X509_STORE_CTX_verify_fn)(X509_STORE_CTX *);
|
||||||
|
typedef int (*X509_STORE_CTX_get_issuer_fn)(X509 **issuer,
|
||||||
|
X509_STORE_CTX *ctx, X509 *x);
|
||||||
|
typedef int (*X509_STORE_CTX_check_issued_fn)(X509_STORE_CTX *ctx,
|
||||||
|
X509 *x, X509 *issuer);
|
||||||
|
typedef int (*X509_STORE_CTX_check_revocation_fn)(X509_STORE_CTX *ctx);
|
||||||
|
typedef int (*X509_STORE_CTX_get_crl_fn)(X509_STORE_CTX *ctx,
|
||||||
|
X509_CRL **crl, X509 *x);
|
||||||
|
typedef int (*X509_STORE_CTX_check_crl_fn)(X509_STORE_CTX *ctx, X509_CRL *crl);
|
||||||
|
typedef int (*X509_STORE_CTX_cert_crl_fn)(X509_STORE_CTX *ctx,
|
||||||
|
X509_CRL *crl, X509 *x);
|
||||||
|
typedef int (*X509_STORE_CTX_check_policy_fn)(X509_STORE_CTX *ctx);
|
||||||
|
typedef STACK_OF(X509)
|
||||||
|
*(*X509_STORE_CTX_lookup_certs_fn)(X509_STORE_CTX *ctx,
|
||||||
|
const X509_NAME *nm);
|
||||||
|
typedef STACK_OF(X509_CRL)
|
||||||
|
*(*X509_STORE_CTX_lookup_crls_fn)(const X509_STORE_CTX *ctx,
|
||||||
|
const X509_NAME *nm);
|
||||||
|
typedef int (*X509_STORE_CTX_cleanup_fn)(X509_STORE_CTX *ctx);
|
||||||
|
|
||||||
|
void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth);
|
||||||
|
|
||||||
|
# define X509_STORE_CTX_set_app_data(ctx,data) \
|
||||||
|
X509_STORE_CTX_set_ex_data(ctx,0,data)
|
||||||
|
# define X509_STORE_CTX_get_app_data(ctx) \
|
||||||
|
X509_STORE_CTX_get_ex_data(ctx,0)
|
||||||
|
|
||||||
|
# define X509_L_FILE_LOAD 1
|
||||||
|
# define X509_L_ADD_DIR 2
|
||||||
|
# define X509_L_ADD_STORE 3
|
||||||
|
# define X509_L_LOAD_STORE 4
|
||||||
|
|
||||||
|
# define X509_LOOKUP_load_file(x,name,type) \
|
||||||
|
X509_LOOKUP_ctrl((x),X509_L_FILE_LOAD,(name),(long)(type),NULL)
|
||||||
|
|
||||||
|
# define X509_LOOKUP_add_dir(x,name,type) \
|
||||||
|
X509_LOOKUP_ctrl((x),X509_L_ADD_DIR,(name),(long)(type),NULL)
|
||||||
|
|
||||||
|
# define X509_LOOKUP_add_store(x,name) \
|
||||||
|
X509_LOOKUP_ctrl((x),X509_L_ADD_STORE,(name),0,NULL)
|
||||||
|
|
||||||
|
# define X509_LOOKUP_load_store(x,name) \
|
||||||
|
X509_LOOKUP_ctrl((x),X509_L_LOAD_STORE,(name),0,NULL)
|
||||||
|
|
||||||
|
# define X509_LOOKUP_load_file_ex(x, name, type, libctx, propq) \
|
||||||
|
X509_LOOKUP_ctrl_ex((x), X509_L_FILE_LOAD, (name), (long)(type), NULL,\
|
||||||
|
(libctx), (propq))
|
||||||
|
|
||||||
|
# define X509_LOOKUP_load_store_ex(x, name, libctx, propq) \
|
||||||
|
X509_LOOKUP_ctrl_ex((x), X509_L_LOAD_STORE, (name), 0, NULL, \
|
||||||
|
(libctx), (propq))
|
||||||
|
|
||||||
|
# define X509_LOOKUP_add_store_ex(x, name, libctx, propq) \
|
||||||
|
X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \
|
||||||
|
(libctx), (propq))
|
||||||
|
|
||||||
|
# define X509_V_OK 0
|
||||||
|
# define X509_V_ERR_UNSPECIFIED 1
|
||||||
|
# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2
|
||||||
|
# define X509_V_ERR_UNABLE_TO_GET_CRL 3
|
||||||
|
# define X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE 4
|
||||||
|
# define X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE 5
|
||||||
|
# define X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY 6
|
||||||
|
# define X509_V_ERR_CERT_SIGNATURE_FAILURE 7
|
||||||
|
# define X509_V_ERR_CRL_SIGNATURE_FAILURE 8
|
||||||
|
# define X509_V_ERR_CERT_NOT_YET_VALID 9
|
||||||
|
# define X509_V_ERR_CERT_HAS_EXPIRED 10
|
||||||
|
# define X509_V_ERR_CRL_NOT_YET_VALID 11
|
||||||
|
# define X509_V_ERR_CRL_HAS_EXPIRED 12
|
||||||
|
# define X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD 13
|
||||||
|
# define X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD 14
|
||||||
|
# define X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD 15
|
||||||
|
# define X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD 16
|
||||||
|
# define X509_V_ERR_OUT_OF_MEM 17
|
||||||
|
# define X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT 18
|
||||||
|
# define X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN 19
|
||||||
|
# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY 20
|
||||||
|
# define X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 21
|
||||||
|
# define X509_V_ERR_CERT_CHAIN_TOO_LONG 22
|
||||||
|
# define X509_V_ERR_CERT_REVOKED 23
|
||||||
|
# define X509_V_ERR_NO_ISSUER_PUBLIC_KEY 24
|
||||||
|
# define X509_V_ERR_PATH_LENGTH_EXCEEDED 25
|
||||||
|
# define X509_V_ERR_INVALID_PURPOSE 26
|
||||||
|
# define X509_V_ERR_CERT_UNTRUSTED 27
|
||||||
|
# define X509_V_ERR_CERT_REJECTED 28
|
||||||
|
|
||||||
|
/* These are 'informational' when looking for issuer cert */
|
||||||
|
# define X509_V_ERR_SUBJECT_ISSUER_MISMATCH 29
|
||||||
|
# define X509_V_ERR_AKID_SKID_MISMATCH 30
|
||||||
|
# define X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH 31
|
||||||
|
# define X509_V_ERR_KEYUSAGE_NO_CERTSIGN 32
|
||||||
|
# define X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER 33
|
||||||
|
# define X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION 34
|
||||||
|
# define X509_V_ERR_KEYUSAGE_NO_CRL_SIGN 35
|
||||||
|
# define X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION 36
|
||||||
|
# define X509_V_ERR_INVALID_NON_CA 37
|
||||||
|
# define X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED 38
|
||||||
|
# define X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE 39
|
||||||
|
# define X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED 40
|
||||||
|
# define X509_V_ERR_INVALID_EXTENSION 41
|
||||||
|
# define X509_V_ERR_INVALID_POLICY_EXTENSION 42
|
||||||
|
# define X509_V_ERR_NO_EXPLICIT_POLICY 43
|
||||||
|
# define X509_V_ERR_DIFFERENT_CRL_SCOPE 44
|
||||||
|
# define X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE 45
|
||||||
|
# define X509_V_ERR_UNNESTED_RESOURCE 46
|
||||||
|
# define X509_V_ERR_PERMITTED_VIOLATION 47
|
||||||
|
# define X509_V_ERR_EXCLUDED_VIOLATION 48
|
||||||
|
# define X509_V_ERR_SUBTREE_MINMAX 49
|
||||||
|
/* The application is not happy */
|
||||||
|
# define X509_V_ERR_APPLICATION_VERIFICATION 50
|
||||||
|
# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE 51
|
||||||
|
# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX 52
|
||||||
|
# define X509_V_ERR_UNSUPPORTED_NAME_SYNTAX 53
|
||||||
|
# define X509_V_ERR_CRL_PATH_VALIDATION_ERROR 54
|
||||||
|
/* Another issuer check debug option */
|
||||||
|
# define X509_V_ERR_PATH_LOOP 55
|
||||||
|
/* Suite B mode algorithm violation */
|
||||||
|
# define X509_V_ERR_SUITE_B_INVALID_VERSION 56
|
||||||
|
# define X509_V_ERR_SUITE_B_INVALID_ALGORITHM 57
|
||||||
|
# define X509_V_ERR_SUITE_B_INVALID_CURVE 58
|
||||||
|
# define X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM 59
|
||||||
|
# define X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED 60
|
||||||
|
# define X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256 61
|
||||||
|
/* Host, email and IP check errors */
|
||||||
|
# define X509_V_ERR_HOSTNAME_MISMATCH 62
|
||||||
|
# define X509_V_ERR_EMAIL_MISMATCH 63
|
||||||
|
# define X509_V_ERR_IP_ADDRESS_MISMATCH 64
|
||||||
|
/* DANE TLSA errors */
|
||||||
|
# define X509_V_ERR_DANE_NO_MATCH 65
|
||||||
|
/* security level errors */
|
||||||
|
# define X509_V_ERR_EE_KEY_TOO_SMALL 66
|
||||||
|
# define X509_V_ERR_CA_KEY_TOO_SMALL 67
|
||||||
|
# define X509_V_ERR_CA_MD_TOO_WEAK 68
|
||||||
|
/* Caller error */
|
||||||
|
# define X509_V_ERR_INVALID_CALL 69
|
||||||
|
/* Issuer lookup error */
|
||||||
|
# define X509_V_ERR_STORE_LOOKUP 70
|
||||||
|
/* Certificate transparency */
|
||||||
|
# define X509_V_ERR_NO_VALID_SCTS 71
|
||||||
|
|
||||||
|
# define X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION 72
|
||||||
|
/* OCSP status errors */
|
||||||
|
# define X509_V_ERR_OCSP_VERIFY_NEEDED 73 /* Need OCSP verification */
|
||||||
|
# define X509_V_ERR_OCSP_VERIFY_FAILED 74 /* Couldn't verify cert through OCSP */
|
||||||
|
# define X509_V_ERR_OCSP_CERT_UNKNOWN 75 /* Certificate wasn't recognized by the OCSP responder */
|
||||||
|
|
||||||
|
# define X509_V_ERR_UNSUPPORTED_SIGNATURE_ALGORITHM 76
|
||||||
|
# define X509_V_ERR_SIGNATURE_ALGORITHM_MISMATCH 77
|
||||||
|
|
||||||
|
/* Errors in case a check in X509_V_FLAG_X509_STRICT mode fails */
|
||||||
|
# define X509_V_ERR_SIGNATURE_ALGORITHM_INCONSISTENCY 78
|
||||||
|
# define X509_V_ERR_INVALID_CA 79
|
||||||
|
# define X509_V_ERR_PATHLEN_INVALID_FOR_NON_CA 80
|
||||||
|
# define X509_V_ERR_PATHLEN_WITHOUT_KU_KEY_CERT_SIGN 81
|
||||||
|
# define X509_V_ERR_KU_KEY_CERT_SIGN_INVALID_FOR_NON_CA 82
|
||||||
|
# define X509_V_ERR_ISSUER_NAME_EMPTY 83
|
||||||
|
# define X509_V_ERR_SUBJECT_NAME_EMPTY 84
|
||||||
|
# define X509_V_ERR_MISSING_AUTHORITY_KEY_IDENTIFIER 85
|
||||||
|
# define X509_V_ERR_MISSING_SUBJECT_KEY_IDENTIFIER 86
|
||||||
|
# define X509_V_ERR_EMPTY_SUBJECT_ALT_NAME 87
|
||||||
|
# define X509_V_ERR_EMPTY_SUBJECT_SAN_NOT_CRITICAL 88
|
||||||
|
# define X509_V_ERR_CA_BCONS_NOT_CRITICAL 89
|
||||||
|
# define X509_V_ERR_AUTHORITY_KEY_IDENTIFIER_CRITICAL 90
|
||||||
|
# define X509_V_ERR_SUBJECT_KEY_IDENTIFIER_CRITICAL 91
|
||||||
|
# define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92
|
||||||
|
# define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93
|
||||||
|
# define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94
|
||||||
|
|
||||||
|
/* Certificate verify flags */
|
||||||
|
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
# define X509_V_FLAG_CB_ISSUER_CHECK 0x0 /* Deprecated */
|
||||||
|
# endif
|
||||||
|
/* Use check time instead of current time */
|
||||||
|
# define X509_V_FLAG_USE_CHECK_TIME 0x2
|
||||||
|
/* Lookup CRLs */
|
||||||
|
# define X509_V_FLAG_CRL_CHECK 0x4
|
||||||
|
/* Lookup CRLs for whole chain */
|
||||||
|
# define X509_V_FLAG_CRL_CHECK_ALL 0x8
|
||||||
|
/* Ignore unhandled critical extensions */
|
||||||
|
# define X509_V_FLAG_IGNORE_CRITICAL 0x10
|
||||||
|
/* Disable workarounds for broken certificates */
|
||||||
|
# define X509_V_FLAG_X509_STRICT 0x20
|
||||||
|
/* Enable proxy certificate validation */
|
||||||
|
# define X509_V_FLAG_ALLOW_PROXY_CERTS 0x40
|
||||||
|
/* Enable policy checking */
|
||||||
|
# define X509_V_FLAG_POLICY_CHECK 0x80
|
||||||
|
/* Policy variable require-explicit-policy */
|
||||||
|
# define X509_V_FLAG_EXPLICIT_POLICY 0x100
|
||||||
|
/* Policy variable inhibit-any-policy */
|
||||||
|
# define X509_V_FLAG_INHIBIT_ANY 0x200
|
||||||
|
/* Policy variable inhibit-policy-mapping */
|
||||||
|
# define X509_V_FLAG_INHIBIT_MAP 0x400
|
||||||
|
/* Notify callback that policy is OK */
|
||||||
|
# define X509_V_FLAG_NOTIFY_POLICY 0x800
|
||||||
|
/* Extended CRL features such as indirect CRLs, alternate CRL signing keys */
|
||||||
|
# define X509_V_FLAG_EXTENDED_CRL_SUPPORT 0x1000
|
||||||
|
/* Delta CRL support */
|
||||||
|
# define X509_V_FLAG_USE_DELTAS 0x2000
|
||||||
|
/* Check self-signed CA signature */
|
||||||
|
# define X509_V_FLAG_CHECK_SS_SIGNATURE 0x4000
|
||||||
|
/* Use trusted store first */
|
||||||
|
# define X509_V_FLAG_TRUSTED_FIRST 0x8000
|
||||||
|
/* Suite B 128 bit only mode: not normally used */
|
||||||
|
# define X509_V_FLAG_SUITEB_128_LOS_ONLY 0x10000
|
||||||
|
/* Suite B 192 bit only mode */
|
||||||
|
# define X509_V_FLAG_SUITEB_192_LOS 0x20000
|
||||||
|
/* Suite B 128 bit mode allowing 192 bit algorithms */
|
||||||
|
# define X509_V_FLAG_SUITEB_128_LOS 0x30000
|
||||||
|
/* Allow partial chains if at least one certificate is in trusted store */
|
||||||
|
# define X509_V_FLAG_PARTIAL_CHAIN 0x80000
|
||||||
|
/*
|
||||||
|
* If the initial chain is not trusted, do not attempt to build an alternative
|
||||||
|
* chain. Alternate chain checking was introduced in 1.1.0. Setting this flag
|
||||||
|
* will force the behaviour to match that of previous versions.
|
||||||
|
*/
|
||||||
|
# define X509_V_FLAG_NO_ALT_CHAINS 0x100000
|
||||||
|
/* Do not check certificate/CRL validity against current time */
|
||||||
|
# define X509_V_FLAG_NO_CHECK_TIME 0x200000
|
||||||
|
|
||||||
|
# define X509_VP_FLAG_DEFAULT 0x1
|
||||||
|
# define X509_VP_FLAG_OVERWRITE 0x2
|
||||||
|
# define X509_VP_FLAG_RESET_FLAGS 0x4
|
||||||
|
# define X509_VP_FLAG_LOCKED 0x8
|
||||||
|
# define X509_VP_FLAG_ONCE 0x10
|
||||||
|
|
||||||
|
/* Internal use: mask of policy related options */
|
||||||
|
# define X509_V_FLAG_POLICY_MASK (X509_V_FLAG_POLICY_CHECK \
|
||||||
|
| X509_V_FLAG_EXPLICIT_POLICY \
|
||||||
|
| X509_V_FLAG_INHIBIT_ANY \
|
||||||
|
| X509_V_FLAG_INHIBIT_MAP)
|
||||||
|
|
||||||
|
int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, X509_LOOKUP_TYPE type,
|
||||||
|
const X509_NAME *name);
|
||||||
|
X509_OBJECT *X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h,
|
||||||
|
X509_LOOKUP_TYPE type,
|
||||||
|
const X509_NAME *name);
|
||||||
|
X509_OBJECT *X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h,
|
||||||
|
X509_OBJECT *x);
|
||||||
|
int X509_OBJECT_up_ref_count(X509_OBJECT *a);
|
||||||
|
X509_OBJECT *X509_OBJECT_new(void);
|
||||||
|
void X509_OBJECT_free(X509_OBJECT *a);
|
||||||
|
X509_LOOKUP_TYPE X509_OBJECT_get_type(const X509_OBJECT *a);
|
||||||
|
X509 *X509_OBJECT_get0_X509(const X509_OBJECT *a);
|
||||||
|
int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj);
|
||||||
|
X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a);
|
||||||
|
int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj);
|
||||||
|
X509_STORE *X509_STORE_new(void);
|
||||||
|
void X509_STORE_free(X509_STORE *v);
|
||||||
|
int X509_STORE_lock(X509_STORE *ctx);
|
||||||
|
int X509_STORE_unlock(X509_STORE *ctx);
|
||||||
|
int X509_STORE_up_ref(X509_STORE *v);
|
||||||
|
STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *v);
|
||||||
|
STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *st);
|
||||||
|
STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st,
|
||||||
|
const X509_NAME *nm);
|
||||||
|
STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st,
|
||||||
|
const X509_NAME *nm);
|
||||||
|
int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags);
|
||||||
|
int X509_STORE_set_purpose(X509_STORE *ctx, int purpose);
|
||||||
|
int X509_STORE_set_trust(X509_STORE *ctx, int trust);
|
||||||
|
int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM *pm);
|
||||||
|
X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx);
|
||||||
|
|
||||||
|
void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify);
|
||||||
|
#define X509_STORE_set_verify_func(ctx, func) \
|
||||||
|
X509_STORE_set_verify((ctx),(func))
|
||||||
|
void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx,
|
||||||
|
X509_STORE_CTX_verify_fn verify);
|
||||||
|
X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx);
|
||||||
|
void X509_STORE_set_verify_cb(X509_STORE *ctx,
|
||||||
|
X509_STORE_CTX_verify_cb verify_cb);
|
||||||
|
# define X509_STORE_set_verify_cb_func(ctx,func) \
|
||||||
|
X509_STORE_set_verify_cb((ctx),(func))
|
||||||
|
X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *ctx);
|
||||||
|
void X509_STORE_set_get_issuer(X509_STORE *ctx,
|
||||||
|
X509_STORE_CTX_get_issuer_fn get_issuer);
|
||||||
|
X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *ctx);
|
||||||
|
void X509_STORE_set_check_issued(X509_STORE *ctx,
|
||||||
|
X509_STORE_CTX_check_issued_fn check_issued);
|
||||||
|
X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *ctx);
|
||||||
|
void X509_STORE_set_check_revocation(X509_STORE *ctx,
|
||||||
|
X509_STORE_CTX_check_revocation_fn check_revocation);
|
||||||
|
X509_STORE_CTX_check_revocation_fn
|
||||||
|
X509_STORE_get_check_revocation(const X509_STORE *ctx);
|
||||||
|
void X509_STORE_set_get_crl(X509_STORE *ctx,
|
||||||
|
X509_STORE_CTX_get_crl_fn get_crl);
|
||||||
|
X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx);
|
||||||
|
void X509_STORE_set_check_crl(X509_STORE *ctx,
|
||||||
|
X509_STORE_CTX_check_crl_fn check_crl);
|
||||||
|
X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *ctx);
|
||||||
|
void X509_STORE_set_cert_crl(X509_STORE *ctx,
|
||||||
|
X509_STORE_CTX_cert_crl_fn cert_crl);
|
||||||
|
X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *ctx);
|
||||||
|
void X509_STORE_set_check_policy(X509_STORE *ctx,
|
||||||
|
X509_STORE_CTX_check_policy_fn check_policy);
|
||||||
|
X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *ctx);
|
||||||
|
void X509_STORE_set_lookup_certs(X509_STORE *ctx,
|
||||||
|
X509_STORE_CTX_lookup_certs_fn lookup_certs);
|
||||||
|
X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *ctx);
|
||||||
|
void X509_STORE_set_lookup_crls(X509_STORE *ctx,
|
||||||
|
X509_STORE_CTX_lookup_crls_fn lookup_crls);
|
||||||
|
#define X509_STORE_set_lookup_crls_cb(ctx, func) \
|
||||||
|
X509_STORE_set_lookup_crls((ctx), (func))
|
||||||
|
X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *ctx);
|
||||||
|
void X509_STORE_set_cleanup(X509_STORE *ctx,
|
||||||
|
X509_STORE_CTX_cleanup_fn cleanup);
|
||||||
|
X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx);
|
||||||
|
|
||||||
|
#define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \
|
||||||
|
CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef)
|
||||||
|
int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data);
|
||||||
|
void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx);
|
||||||
|
|
||||||
|
X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
X509_STORE_CTX *X509_STORE_CTX_new(void);
|
||||||
|
|
||||||
|
int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x);
|
||||||
|
|
||||||
|
void X509_STORE_CTX_free(X509_STORE_CTX *ctx);
|
||||||
|
int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store,
|
||||||
|
X509 *target, STACK_OF(X509) *untrusted);
|
||||||
|
void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk);
|
||||||
|
void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx);
|
||||||
|
|
||||||
|
X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx);
|
||||||
|
X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx);
|
||||||
|
STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx);
|
||||||
|
void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk);
|
||||||
|
void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx,
|
||||||
|
X509_STORE_CTX_verify_cb verify);
|
||||||
|
X509_STORE_CTX_verify_cb X509_STORE_CTX_get_verify_cb(const X509_STORE_CTX *ctx);
|
||||||
|
X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx);
|
||||||
|
X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx);
|
||||||
|
X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx);
|
||||||
|
X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx);
|
||||||
|
X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx);
|
||||||
|
X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx);
|
||||||
|
X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx);
|
||||||
|
X509_STORE_CTX_check_policy_fn X509_STORE_CTX_get_check_policy(const X509_STORE_CTX *ctx);
|
||||||
|
X509_STORE_CTX_lookup_certs_fn X509_STORE_CTX_get_lookup_certs(const X509_STORE_CTX *ctx);
|
||||||
|
X509_STORE_CTX_lookup_crls_fn X509_STORE_CTX_get_lookup_crls(const X509_STORE_CTX *ctx);
|
||||||
|
X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx);
|
||||||
|
|
||||||
|
#ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
||||||
|
# define X509_STORE_CTX_get_chain X509_STORE_CTX_get0_chain
|
||||||
|
# define X509_STORE_CTX_set_chain X509_STORE_CTX_set0_untrusted
|
||||||
|
# define X509_STORE_CTX_trusted_stack X509_STORE_CTX_set0_trusted_stack
|
||||||
|
# define X509_STORE_get_by_subject X509_STORE_CTX_get_by_subject
|
||||||
|
# define X509_STORE_get1_certs X509_STORE_CTX_get1_certs
|
||||||
|
# define X509_STORE_get1_crls X509_STORE_CTX_get1_crls
|
||||||
|
/* the following macro is misspelled; use X509_STORE_get1_certs instead */
|
||||||
|
# define X509_STORE_get1_cert X509_STORE_CTX_get1_certs
|
||||||
|
/* the following macro is misspelled; use X509_STORE_get1_crls instead */
|
||||||
|
# define X509_STORE_get1_crl X509_STORE_CTX_get1_crls
|
||||||
|
#endif
|
||||||
|
|
||||||
|
X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m);
|
||||||
|
X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void);
|
||||||
|
X509_LOOKUP_METHOD *X509_LOOKUP_file(void);
|
||||||
|
X509_LOOKUP_METHOD *X509_LOOKUP_store(void);
|
||||||
|
|
||||||
|
typedef int (*X509_LOOKUP_ctrl_fn)(X509_LOOKUP *ctx, int cmd, const char *argc,
|
||||||
|
long argl, char **ret);
|
||||||
|
typedef int (*X509_LOOKUP_ctrl_ex_fn)(
|
||||||
|
X509_LOOKUP *ctx, int cmd, const char *argc, long argl, char **ret,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
|
||||||
|
typedef int (*X509_LOOKUP_get_by_subject_fn)(X509_LOOKUP *ctx,
|
||||||
|
X509_LOOKUP_TYPE type,
|
||||||
|
const X509_NAME *name,
|
||||||
|
X509_OBJECT *ret);
|
||||||
|
typedef int (*X509_LOOKUP_get_by_subject_ex_fn)(X509_LOOKUP *ctx,
|
||||||
|
X509_LOOKUP_TYPE type,
|
||||||
|
const X509_NAME *name,
|
||||||
|
X509_OBJECT *ret,
|
||||||
|
OSSL_LIB_CTX *libctx,
|
||||||
|
const char *propq);
|
||||||
|
typedef int (*X509_LOOKUP_get_by_issuer_serial_fn)(X509_LOOKUP *ctx,
|
||||||
|
X509_LOOKUP_TYPE type,
|
||||||
|
const X509_NAME *name,
|
||||||
|
const ASN1_INTEGER *serial,
|
||||||
|
X509_OBJECT *ret);
|
||||||
|
typedef int (*X509_LOOKUP_get_by_fingerprint_fn)(X509_LOOKUP *ctx,
|
||||||
|
X509_LOOKUP_TYPE type,
|
||||||
|
const unsigned char* bytes,
|
||||||
|
int len,
|
||||||
|
X509_OBJECT *ret);
|
||||||
|
typedef int (*X509_LOOKUP_get_by_alias_fn)(X509_LOOKUP *ctx,
|
||||||
|
X509_LOOKUP_TYPE type,
|
||||||
|
const char *str,
|
||||||
|
int len,
|
||||||
|
X509_OBJECT *ret);
|
||||||
|
|
||||||
|
X509_LOOKUP_METHOD *X509_LOOKUP_meth_new(const char *name);
|
||||||
|
void X509_LOOKUP_meth_free(X509_LOOKUP_METHOD *method);
|
||||||
|
|
||||||
|
int X509_LOOKUP_meth_set_new_item(X509_LOOKUP_METHOD *method,
|
||||||
|
int (*new_item) (X509_LOOKUP *ctx));
|
||||||
|
int (*X509_LOOKUP_meth_get_new_item(const X509_LOOKUP_METHOD* method))
|
||||||
|
(X509_LOOKUP *ctx);
|
||||||
|
|
||||||
|
int X509_LOOKUP_meth_set_free(X509_LOOKUP_METHOD *method,
|
||||||
|
void (*free_fn) (X509_LOOKUP *ctx));
|
||||||
|
void (*X509_LOOKUP_meth_get_free(const X509_LOOKUP_METHOD* method))
|
||||||
|
(X509_LOOKUP *ctx);
|
||||||
|
|
||||||
|
int X509_LOOKUP_meth_set_init(X509_LOOKUP_METHOD *method,
|
||||||
|
int (*init) (X509_LOOKUP *ctx));
|
||||||
|
int (*X509_LOOKUP_meth_get_init(const X509_LOOKUP_METHOD* method))
|
||||||
|
(X509_LOOKUP *ctx);
|
||||||
|
|
||||||
|
int X509_LOOKUP_meth_set_shutdown(X509_LOOKUP_METHOD *method,
|
||||||
|
int (*shutdown) (X509_LOOKUP *ctx));
|
||||||
|
int (*X509_LOOKUP_meth_get_shutdown(const X509_LOOKUP_METHOD* method))
|
||||||
|
(X509_LOOKUP *ctx);
|
||||||
|
|
||||||
|
int X509_LOOKUP_meth_set_ctrl(X509_LOOKUP_METHOD *method,
|
||||||
|
X509_LOOKUP_ctrl_fn ctrl_fn);
|
||||||
|
X509_LOOKUP_ctrl_fn X509_LOOKUP_meth_get_ctrl(const X509_LOOKUP_METHOD *method);
|
||||||
|
|
||||||
|
int X509_LOOKUP_meth_set_get_by_subject(X509_LOOKUP_METHOD *method,
|
||||||
|
X509_LOOKUP_get_by_subject_fn fn);
|
||||||
|
X509_LOOKUP_get_by_subject_fn X509_LOOKUP_meth_get_get_by_subject(
|
||||||
|
const X509_LOOKUP_METHOD *method);
|
||||||
|
|
||||||
|
int X509_LOOKUP_meth_set_get_by_issuer_serial(X509_LOOKUP_METHOD *method,
|
||||||
|
X509_LOOKUP_get_by_issuer_serial_fn fn);
|
||||||
|
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_get_by_fingerprint(X509_LOOKUP_METHOD *method,
|
||||||
|
X509_LOOKUP_get_by_fingerprint_fn fn);
|
||||||
|
X509_LOOKUP_get_by_fingerprint_fn X509_LOOKUP_meth_get_get_by_fingerprint(
|
||||||
|
const X509_LOOKUP_METHOD *method);
|
||||||
|
|
||||||
|
int X509_LOOKUP_meth_set_get_by_alias(X509_LOOKUP_METHOD *method,
|
||||||
|
X509_LOOKUP_get_by_alias_fn fn);
|
||||||
|
X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias(
|
||||||
|
const X509_LOOKUP_METHOD *method);
|
||||||
|
|
||||||
|
|
||||||
|
int X509_STORE_add_cert(X509_STORE *ctx, X509 *x);
|
||||||
|
int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x);
|
||||||
|
|
||||||
|
int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs,
|
||||||
|
X509_LOOKUP_TYPE type,
|
||||||
|
const X509_NAME *name, X509_OBJECT *ret);
|
||||||
|
X509_OBJECT *X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX *vs,
|
||||||
|
X509_LOOKUP_TYPE type,
|
||||||
|
const X509_NAME *name);
|
||||||
|
|
||||||
|
int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc,
|
||||||
|
long argl, char **ret);
|
||||||
|
int X509_LOOKUP_ctrl_ex(X509_LOOKUP *ctx, int cmd, const char *argc, long argl,
|
||||||
|
char **ret, OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
|
||||||
|
int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type);
|
||||||
|
int X509_load_cert_file_ex(X509_LOOKUP *ctx, const char *file, int type,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type);
|
||||||
|
int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type);
|
||||||
|
int X509_load_cert_crl_file_ex(X509_LOOKUP *ctx, const char *file, int type,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
|
||||||
|
X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method);
|
||||||
|
void X509_LOOKUP_free(X509_LOOKUP *ctx);
|
||||||
|
int X509_LOOKUP_init(X509_LOOKUP *ctx);
|
||||||
|
int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,
|
||||||
|
const X509_NAME *name, X509_OBJECT *ret);
|
||||||
|
int X509_LOOKUP_by_subject_ex(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,
|
||||||
|
const X509_NAME *name, X509_OBJECT *ret,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,
|
||||||
|
const X509_NAME *name,
|
||||||
|
const ASN1_INTEGER *serial,
|
||||||
|
X509_OBJECT *ret);
|
||||||
|
int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,
|
||||||
|
const unsigned char *bytes, int len,
|
||||||
|
X509_OBJECT *ret);
|
||||||
|
int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,
|
||||||
|
const char *str, int len, X509_OBJECT *ret);
|
||||||
|
int X509_LOOKUP_set_method_data(X509_LOOKUP *ctx, void *data);
|
||||||
|
void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx);
|
||||||
|
X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx);
|
||||||
|
int X509_LOOKUP_shutdown(X509_LOOKUP *ctx);
|
||||||
|
|
||||||
|
int X509_STORE_load_file(X509_STORE *ctx, const char *file);
|
||||||
|
int X509_STORE_load_path(X509_STORE *ctx, const char *path);
|
||||||
|
int X509_STORE_load_store(X509_STORE *ctx, const char *store);
|
||||||
|
int X509_STORE_load_locations(X509_STORE *ctx,
|
||||||
|
const char *file,
|
||||||
|
const char *dir);
|
||||||
|
int X509_STORE_set_default_paths(X509_STORE *ctx);
|
||||||
|
|
||||||
|
int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
int X509_STORE_load_store_ex(X509_STORE *ctx, const char *store,
|
||||||
|
OSSL_LIB_CTX *libctx, const char *propq);
|
||||||
|
int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file,
|
||||||
|
const char *dir, OSSL_LIB_CTX *libctx,
|
||||||
|
const char *propq);
|
||||||
|
int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx,
|
||||||
|
const char *propq);
|
||||||
|
|
||||||
|
#define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \
|
||||||
|
CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef)
|
||||||
|
int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data);
|
||||||
|
void *X509_STORE_CTX_get_ex_data(const X509_STORE_CTX *ctx, int idx);
|
||||||
|
int X509_STORE_CTX_get_error(const X509_STORE_CTX *ctx);
|
||||||
|
void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s);
|
||||||
|
int X509_STORE_CTX_get_error_depth(const X509_STORE_CTX *ctx);
|
||||||
|
void X509_STORE_CTX_set_error_depth(X509_STORE_CTX *ctx, int depth);
|
||||||
|
X509 *X509_STORE_CTX_get_current_cert(const X509_STORE_CTX *ctx);
|
||||||
|
void X509_STORE_CTX_set_current_cert(X509_STORE_CTX *ctx, X509 *x);
|
||||||
|
X509 *X509_STORE_CTX_get0_current_issuer(const X509_STORE_CTX *ctx);
|
||||||
|
X509_CRL *X509_STORE_CTX_get0_current_crl(const X509_STORE_CTX *ctx);
|
||||||
|
X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx);
|
||||||
|
STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx);
|
||||||
|
STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx);
|
||||||
|
void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target);
|
||||||
|
void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk);
|
||||||
|
void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk);
|
||||||
|
int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose);
|
||||||
|
int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust);
|
||||||
|
int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose,
|
||||||
|
int purpose, int trust);
|
||||||
|
void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags);
|
||||||
|
void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags,
|
||||||
|
time_t t);
|
||||||
|
|
||||||
|
X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx);
|
||||||
|
int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx);
|
||||||
|
int X509_STORE_CTX_get_num_untrusted(const X509_STORE_CTX *ctx);
|
||||||
|
|
||||||
|
X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(const X509_STORE_CTX *ctx);
|
||||||
|
void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param);
|
||||||
|
int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Bridge opacity barrier between libcrypt and libssl, also needed to support
|
||||||
|
* offline testing in test/danetest.c
|
||||||
|
*/
|
||||||
|
void X509_STORE_CTX_set0_dane(X509_STORE_CTX *ctx, SSL_DANE *dane);
|
||||||
|
#define DANE_FLAG_NO_DANE_EE_NAMECHECKS (1L << 0)
|
||||||
|
|
||||||
|
/* X509_VERIFY_PARAM functions */
|
||||||
|
|
||||||
|
X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void);
|
||||||
|
void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param);
|
||||||
|
int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to,
|
||||||
|
const X509_VERIFY_PARAM *from);
|
||||||
|
int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to,
|
||||||
|
const X509_VERIFY_PARAM *from);
|
||||||
|
int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name);
|
||||||
|
int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param,
|
||||||
|
unsigned long flags);
|
||||||
|
int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param,
|
||||||
|
unsigned long flags);
|
||||||
|
unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param);
|
||||||
|
int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose);
|
||||||
|
int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust);
|
||||||
|
void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth);
|
||||||
|
void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level);
|
||||||
|
time_t X509_VERIFY_PARAM_get_time(const X509_VERIFY_PARAM *param);
|
||||||
|
void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t);
|
||||||
|
int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param,
|
||||||
|
ASN1_OBJECT *policy);
|
||||||
|
int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param,
|
||||||
|
STACK_OF(ASN1_OBJECT) *policies);
|
||||||
|
|
||||||
|
int X509_VERIFY_PARAM_set_inh_flags(X509_VERIFY_PARAM *param,
|
||||||
|
uint32_t flags);
|
||||||
|
uint32_t X509_VERIFY_PARAM_get_inh_flags(const X509_VERIFY_PARAM *param);
|
||||||
|
|
||||||
|
char *X509_VERIFY_PARAM_get0_host(X509_VERIFY_PARAM *param, int idx);
|
||||||
|
int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param,
|
||||||
|
const char *name, size_t namelen);
|
||||||
|
int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param,
|
||||||
|
const char *name, size_t namelen);
|
||||||
|
void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param,
|
||||||
|
unsigned int flags);
|
||||||
|
unsigned int X509_VERIFY_PARAM_get_hostflags(const X509_VERIFY_PARAM *param);
|
||||||
|
char *X509_VERIFY_PARAM_get0_peername(const X509_VERIFY_PARAM *param);
|
||||||
|
void X509_VERIFY_PARAM_move_peername(X509_VERIFY_PARAM *, X509_VERIFY_PARAM *);
|
||||||
|
char *X509_VERIFY_PARAM_get0_email(X509_VERIFY_PARAM *param);
|
||||||
|
int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param,
|
||||||
|
const char *email, size_t emaillen);
|
||||||
|
char *X509_VERIFY_PARAM_get1_ip_asc(X509_VERIFY_PARAM *param);
|
||||||
|
int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param,
|
||||||
|
const unsigned char *ip, size_t iplen);
|
||||||
|
int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param,
|
||||||
|
const char *ipasc);
|
||||||
|
|
||||||
|
int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param);
|
||||||
|
int X509_VERIFY_PARAM_get_auth_level(const X509_VERIFY_PARAM *param);
|
||||||
|
const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param);
|
||||||
|
|
||||||
|
int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param);
|
||||||
|
int X509_VERIFY_PARAM_get_count(void);
|
||||||
|
const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id);
|
||||||
|
const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name);
|
||||||
|
void X509_VERIFY_PARAM_table_cleanup(void);
|
||||||
|
|
||||||
|
/* Non positive return values are errors */
|
||||||
|
#define X509_PCY_TREE_FAILURE -2 /* Failure to satisfy explicit policy */
|
||||||
|
#define X509_PCY_TREE_INVALID -1 /* Inconsistent or invalid extensions */
|
||||||
|
#define X509_PCY_TREE_INTERNAL 0 /* Internal error, most likely malloc */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Positive return values form a bit mask, all but the first are internal to
|
||||||
|
* the library and don't appear in results from X509_policy_check().
|
||||||
|
*/
|
||||||
|
#define X509_PCY_TREE_VALID 1 /* The policy tree is valid */
|
||||||
|
#define X509_PCY_TREE_EMPTY 2 /* The policy tree is empty */
|
||||||
|
#define X509_PCY_TREE_EXPLICIT 4 /* Explicit policy required */
|
||||||
|
|
||||||
|
int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy,
|
||||||
|
STACK_OF(X509) *certs,
|
||||||
|
STACK_OF(ASN1_OBJECT) *policy_oids, unsigned int flags);
|
||||||
|
|
||||||
|
void X509_policy_tree_free(X509_POLICY_TREE *tree);
|
||||||
|
|
||||||
|
int X509_policy_tree_level_count(const X509_POLICY_TREE *tree);
|
||||||
|
X509_POLICY_LEVEL *X509_policy_tree_get0_level(const X509_POLICY_TREE *tree,
|
||||||
|
int i);
|
||||||
|
|
||||||
|
STACK_OF(X509_POLICY_NODE)
|
||||||
|
*X509_policy_tree_get0_policies(const X509_POLICY_TREE *tree);
|
||||||
|
|
||||||
|
STACK_OF(X509_POLICY_NODE)
|
||||||
|
*X509_policy_tree_get0_user_policies(const X509_POLICY_TREE *tree);
|
||||||
|
|
||||||
|
int X509_policy_level_node_count(X509_POLICY_LEVEL *level);
|
||||||
|
|
||||||
|
X509_POLICY_NODE *X509_policy_level_get0_node(const X509_POLICY_LEVEL *level,
|
||||||
|
int i);
|
||||||
|
|
||||||
|
const ASN1_OBJECT *X509_policy_node_get0_policy(const X509_POLICY_NODE *node);
|
||||||
|
|
||||||
|
STACK_OF(POLICYQUALINFO)
|
||||||
|
*X509_policy_node_get0_qualifiers(const X509_POLICY_NODE *node);
|
||||||
|
const X509_POLICY_NODE
|
||||||
|
*X509_policy_node_get0_parent(const X509_POLICY_NODE *node);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
1020
deps/openssl/mingw64/include/openssl/x509v3.h.in
vendored
Normal file
1020
deps/openssl/mingw64/include/openssl/x509v3.h.in
vendored
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user