| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #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
|