mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-10-31 21:14:37 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			96 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef _SSL_STACK_H_
 | |
| #define _SSL_STACK_H_
 | |
| 
 | |
| #ifdef __cplusplus
 | |
|  extern "C" {
 | |
| #endif
 | |
| 
 | |
| #include "ssl_types.h"
 | |
| 
 | |
| #define STACK_OF(type)  struct stack_st_##type
 | |
| 
 | |
| #define SKM_DEFINE_STACK_OF(t1, t2, t3) \
 | |
|     STACK_OF(t1); \
 | |
|     static ossl_inline STACK_OF(t1) *sk_##t1##_new_null(void) \
 | |
|     { \
 | |
|         return (STACK_OF(t1) *)OPENSSL_sk_new_null(); \
 | |
|     } \
 | |
| 
 | |
| #define DEFINE_STACK_OF(t) SKM_DEFINE_STACK_OF(t, t, t)
 | |
| typedef struct asn1_string_st ASN1_OCTET_STRING;
 | |
| 
 | |
| struct stack_st_GENERAL_NAME;
 | |
| typedef struct GENERAL_NAME_st {
 | |
|     int type;
 | |
|     union {
 | |
|         char *ptr;
 | |
|         struct asn1_string_st* dNSName;
 | |
|         ASN1_OCTET_STRING* iPAddress;
 | |
|     } d;
 | |
| } GENERAL_NAME;
 | |
| 
 | |
| typedef struct asn1_string_st ASN1_OCTET_STRING;
 | |
| typedef struct X509_name_st X509_NAME;
 | |
| typedef struct asn1_string_st ASN1_STRING;
 | |
| typedef struct X509_name_entry_st X509_NAME_ENTRY;
 | |
| 
 | |
| typedef struct asn1_string_st {
 | |
|     int type;
 | |
|     int length;
 | |
|     void *data;
 | |
| } ASN1_IA5STRING;
 | |
| 
 | |
| typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES;
 | |
| 
 | |
| /**
 | |
|  * @brief get nr of stack items
 | |
|  *
 | |
|  * @param sk Stack structure pointer
 | |
|  *
 | |
|  * @return number of items in the stack
 | |
|  */
 | |
| size_t sk_GENERAL_NAME_num(const struct stack_st_GENERAL_NAME *sk);
 | |
| 
 | |
| /**
 | |
|  * @brief get GENERAL_NAME value from the stack
 | |
|  *
 | |
|  * @param sk Stack structure pointer
 | |
|  * @param i Index to stack item
 | |
|  *
 | |
|  * @return GENERAL_NAME object pointer
 | |
|  */
 | |
| GENERAL_NAME *sk_GENERAL_NAME_value(const struct stack_st_GENERAL_NAME *sk, size_t i);
 | |
| 
 | |
| /**
 | |
|  * @brief create a openssl stack object
 | |
|  *
 | |
|  * @param c - stack function
 | |
|  *
 | |
|  * @return openssl stack object point
 | |
|  */
 | |
| OPENSSL_STACK* OPENSSL_sk_new(OPENSSL_sk_compfunc c);
 | |
| 
 | |
| /**
 | |
|  * @brief create a NULL function openssl stack object
 | |
|  *
 | |
|  * @param none
 | |
|  *
 | |
|  * @return openssl stack object point
 | |
|  */
 | |
| OPENSSL_STACK *OPENSSL_sk_new_null(void);
 | |
| 
 | |
| /**
 | |
|  * @brief free openssl stack object
 | |
|  *
 | |
|  * @param openssl stack object point
 | |
|  *
 | |
|  * @return none
 | |
|  */
 | |
| void OPENSSL_sk_free(OPENSSL_STACK *stack);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif
 | 
