Where Online Learning is simpler!
The C and C++ Include Header Files
cat -n /usr/include/openssl/cmp.h
1 /* 2 * WARNING: do not edit! 3 * Generated by Makefile from ../include/openssl/cmp.h.in 4 * 5 * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. 6 * Copyright Nokia 2007-2019 7 * Copyright Siemens AG 2015-2019 8 * 9 * Licensed under the Apache License 2.0 (the "License"). You may not use 10 * this file except in compliance with the License. You can obtain a copy 11 * in the file LICENSE in the source distribution or at 12 * https://www.openssl.org/source/license.html 13 */ 14 15 /* clang-format off */ 16 17 /* clang-format on */ 18 19 #ifndef OPENSSL_CMP_H 20 #define OPENSSL_CMP_H 21 22 #include <openssl/opensslconf.h> 23 #ifndef OPENSSL_NO_CMP 24 25 #include <openssl/crmf.h> 26 #include <openssl/cmperr.h> 27 #include <openssl/cmp_util.h> 28 #include <openssl/http.h> 29 30 /* explicit #includes not strictly needed since implied by the above: */ 31 #include <openssl/types.h> 32 #include <openssl/safestack.h> 33 #include <openssl/x509.h> 34 #include <openssl/x509v3.h> 35 36 #ifdef __cplusplus 37 extern "C" { 38 #endif 39 40 #define OSSL_CMP_PVNO_2 2 41 #define OSSL_CMP_PVNO_3 3 42 #define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ 43 44 /*- 45 * PKIFailureInfo ::= BIT STRING { 46 * -- since we can fail in more than one way! 47 * -- More codes may be added in the future if/when required. 48 * badAlg (0), 49 * -- unrecognized or unsupported Algorithm Identifier 50 * badMessageCheck (1), 51 * -- integrity check failed (e.g., signature did not verify) 52 * badRequest (2), 53 * -- transaction not permitted or supported 54 * badTime (3), 55 * -- messageTime was not sufficiently close to the system time, 56 * -- as defined by local policy 57 * badCertId (4), 58 * -- no certificate could be found matching the provided criteria 59 * badDataFormat (5), 60 * -- the data submitted has the wrong format 61 * wrongAuthority (6), 62 * -- the authority indicated in the request is different from the 63 * -- one creating the response token 64 * incorrectData (7), 65 * -- the requester's data is incorrect (for notary services) 66 * missingTimeStamp (8), 67 * -- when the timestamp is missing but should be there 68 * -- (by policy) 69 * badPOP (9), 70 * -- the proof-of-possession failed 71 * certRevoked (10), 72 * -- the certificate has already been revoked 73 * certConfirmed (11), 74 * -- the certificate has already been confirmed 75 * wrongIntegrity (12), 76 * -- invalid integrity, password based instead of signature or 77 * -- vice versa 78 * badRecipientNonce (13), 79 * -- invalid recipient nonce, either missing or wrong value 80 * timeNotAvailable (14), 81 * -- the TSA's time source is not available 82 * unacceptedPolicy (15), 83 * -- the requested TSA policy is not supported by the TSA. 84 * unacceptedExtension (16), 85 * -- the requested extension is not supported by the TSA. 86 * addInfoNotAvailable (17), 87 * -- the additional information requested could not be 88 * -- understood or is not available 89 * badSenderNonce (18), 90 * -- invalid sender nonce, either missing or wrong size 91 * badCertTemplate (19), 92 * -- invalid cert. template or missing mandatory information 93 * signerNotTrusted (20), 94 * -- signer of the message unknown or not trusted 95 * transactionIdInUse (21), 96 * -- the transaction identifier is already in use 97 * unsupportedVersion (22), 98 * -- the version of the message is not supported 99 * notAuthorized (23), 100 * -- the sender was not authorized to make the preceding 101 * -- request or perform the preceding action 102 * systemUnavail (24), 103 * -- the request cannot be handled due to system unavailability 104 * systemFailure (25), 105 * -- the request cannot be handled due to system failure 106 * duplicateCertReq (26) 107 * -- certificate cannot be issued because a duplicate 108 * -- certificate already exists 109 * } 110 */ 111 #define OSSL_CMP_PKIFAILUREINFO_badAlg 0 112 #define OSSL_CMP_PKIFAILUREINFO_badMessageCheck 1 113 #define OSSL_CMP_PKIFAILUREINFO_badRequest 2 114 #define OSSL_CMP_PKIFAILUREINFO_badTime 3 115 #define OSSL_CMP_PKIFAILUREINFO_badCertId 4 116 #define OSSL_CMP_PKIFAILUREINFO_badDataFormat 5 117 #define OSSL_CMP_PKIFAILUREINFO_wrongAuthority 6 118 #define OSSL_CMP_PKIFAILUREINFO_incorrectData 7 119 #define OSSL_CMP_PKIFAILUREINFO_missingTimeStamp 8 120 #define OSSL_CMP_PKIFAILUREINFO_badPOP 9 121 #define OSSL_CMP_PKIFAILUREINFO_certRevoked 10 122 #define OSSL_CMP_PKIFAILUREINFO_certConfirmed 11 123 #define OSSL_CMP_PKIFAILUREINFO_wrongIntegrity 12 124 #define OSSL_CMP_PKIFAILUREINFO_badRecipientNonce 13 125 #define OSSL_CMP_PKIFAILUREINFO_timeNotAvailable 14 126 #define OSSL_CMP_PKIFAILUREINFO_unacceptedPolicy 15 127 #define OSSL_CMP_PKIFAILUREINFO_unacceptedExtension 16 128 #define OSSL_CMP_PKIFAILUREINFO_addInfoNotAvailable 17 129 #define OSSL_CMP_PKIFAILUREINFO_badSenderNonce 18 130 #define OSSL_CMP_PKIFAILUREINFO_badCertTemplate 19 131 #define OSSL_CMP_PKIFAILUREINFO_signerNotTrusted 20 132 #define OSSL_CMP_PKIFAILUREINFO_transactionIdInUse 21 133 #define OSSL_CMP_PKIFAILUREINFO_unsupportedVersion 22 134 #define OSSL_CMP_PKIFAILUREINFO_notAuthorized 23 135 #define OSSL_CMP_PKIFAILUREINFO_systemUnavail 24 136 #define OSSL_CMP_PKIFAILUREINFO_systemFailure 25 137 #define OSSL_CMP_PKIFAILUREINFO_duplicateCertReq 26 138 #define OSSL_CMP_PKIFAILUREINFO_MAX 26 139 #define OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN \ 140 ((1 << (OSSL_CMP_PKIFAILUREINFO_MAX + 1)) - 1) 141 #if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX 142 #error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int 143 #endif 144 typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; 145 146 #define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) 147 #define OSSL_CMP_CTX_FAILINFO_badMessageCheck (1 << 1) 148 #define OSSL_CMP_CTX_FAILINFO_badRequest (1 << 2) 149 #define OSSL_CMP_CTX_FAILINFO_badTime (1 << 3) 150 #define OSSL_CMP_CTX_FAILINFO_badCertId (1 << 4) 151 #define OSSL_CMP_CTX_FAILINFO_badDataFormat (1 << 5) 152 #define OSSL_CMP_CTX_FAILINFO_wrongAuthority (1 << 6) 153 #define OSSL_CMP_CTX_FAILINFO_incorrectData (1 << 7) 154 #define OSSL_CMP_CTX_FAILINFO_missingTimeStamp (1 << 8) 155 #define OSSL_CMP_CTX_FAILINFO_badPOP (1 << 9) 156 #define OSSL_CMP_CTX_FAILINFO_certRevoked (1 << 10) 157 #define OSSL_CMP_CTX_FAILINFO_certConfirmed (1 << 11) 158 #define OSSL_CMP_CTX_FAILINFO_wrongIntegrity (1 << 12) 159 #define OSSL_CMP_CTX_FAILINFO_badRecipientNonce (1 << 13) 160 #define OSSL_CMP_CTX_FAILINFO_timeNotAvailable (1 << 14) 161 #define OSSL_CMP_CTX_FAILINFO_unacceptedPolicy (1 << 15) 162 #define OSSL_CMP_CTX_FAILINFO_unacceptedExtension (1 << 16) 163 #define OSSL_CMP_CTX_FAILINFO_addInfoNotAvailable (1 << 17) 164 #define OSSL_CMP_CTX_FAILINFO_badSenderNonce (1 << 18) 165 #define OSSL_CMP_CTX_FAILINFO_badCertTemplate (1 << 19) 166 #define OSSL_CMP_CTX_FAILINFO_signerNotTrusted (1 << 20) 167 #define OSSL_CMP_CTX_FAILINFO_transactionIdInUse (1 << 21) 168 #define OSSL_CMP_CTX_FAILINFO_unsupportedVersion (1 << 22) 169 #define OSSL_CMP_CTX_FAILINFO_notAuthorized (1 << 23) 170 #define OSSL_CMP_CTX_FAILINFO_systemUnavail (1 << 24) 171 #define OSSL_CMP_CTX_FAILINFO_systemFailure (1 << 25) 172 #define OSSL_CMP_CTX_FAILINFO_duplicateCertReq (1 << 26) 173 174 /*- 175 * PKIStatus ::= INTEGER { 176 * accepted (0), 177 * -- you got exactly what you asked for 178 * grantedWithMods (1), 179 * -- you got something like what you asked for; the 180 * -- requester is responsible for ascertaining the differences 181 * rejection (2), 182 * -- you don't get it, more information elsewhere in the message 183 * waiting (3), 184 * -- the request body part has not yet been processed; expect to 185 * -- hear more later (note: proper handling of this status 186 * -- response MAY use the polling req/rep PKIMessages specified 187 * -- in Section 5.3.22; alternatively, polling in the underlying 188 * -- transport layer MAY have some utility in this regard) 189 * revocationWarning (4), 190 * -- this message contains a warning that a revocation is 191 * -- imminent 192 * revocationNotification (5), 193 * -- notification that a revocation has occurred 194 * keyUpdateWarning (6) 195 * -- update already done for the oldCertId specified in 196 * -- CertReqMsg 197 * } 198 */ 199 #define OSSL_CMP_PKISTATUS_request -3 200 #define OSSL_CMP_PKISTATUS_trans -2 201 #define OSSL_CMP_PKISTATUS_unspecified -1 202 #define OSSL_CMP_PKISTATUS_accepted 0 203 #define OSSL_CMP_PKISTATUS_grantedWithMods 1 204 #define OSSL_CMP_PKISTATUS_rejection 2 205 #define OSSL_CMP_PKISTATUS_waiting 3 206 #define OSSL_CMP_PKISTATUS_revocationWarning 4 207 #define OSSL_CMP_PKISTATUS_revocationNotification 5 208 #define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 209 typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; 210 211 DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) 212 213 #define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 214 #define OSSL_CMP_CERTORENCCERT_ENCRYPTEDCERT 1 215 216 /* data type declarations */ 217 typedef struct ossl_cmp_ctx_st OSSL_CMP_CTX; 218 typedef struct ossl_cmp_pkiheader_st OSSL_CMP_PKIHEADER; 219 DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKIHEADER) 220 typedef struct ossl_cmp_msg_st OSSL_CMP_MSG; 221 DECLARE_ASN1_DUP_FUNCTION(OSSL_CMP_MSG) 222 DECLARE_ASN1_ENCODE_FUNCTIONS(OSSL_CMP_MSG, OSSL_CMP_MSG, OSSL_CMP_MSG) 223 typedef struct ossl_cmp_certstatus_st OSSL_CMP_CERTSTATUS; 224 /* clang-format off */ 225 SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CERTSTATUS, OSSL_CMP_CERTSTATUS, OSSL_CMP_CERTSTATUS) 226 #define sk_OSSL_CMP_CERTSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk)) 227 #define sk_OSSL_CMP_CERTSTATUS_value(sk, idx) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk), (idx))) 228 #define sk_OSSL_CMP_CERTSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CERTSTATUS_compfunc_type(cmp))) 229 #define sk_OSSL_CMP_CERTSTATUS_new_null() ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_new_null()) 230 #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))) 231 #define sk_OSSL_CMP_CERTSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), (n)) 232 #define sk_OSSL_CMP_CERTSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk)) 233 #define sk_OSSL_CMP_CERTSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk)) 234 #define sk_OSSL_CMP_CERTSTATUS_delete(sk, i) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), (i))) 235 #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))) 236 #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)) 237 #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)) 238 #define sk_OSSL_CMP_CERTSTATUS_pop(sk) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk))) 239 #define sk_OSSL_CMP_CERTSTATUS_shift(sk) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk))) 240 #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)) 241 #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)) 242 #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))) 243 #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)) 244 #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)) 245 #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) 246 #define sk_OSSL_CMP_CERTSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk)) 247 #define sk_OSSL_CMP_CERTSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk)) 248 #define sk_OSSL_CMP_CERTSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk))) 249 #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))) 250 #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))) 251 252 /* clang-format on */ 253 typedef struct ossl_cmp_itav_st OSSL_CMP_ITAV; 254 DECLARE_ASN1_DUP_FUNCTION(OSSL_CMP_ITAV) 255 /* clang-format off */ 256 SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) 257 #define sk_OSSL_CMP_ITAV_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk)) 258 #define sk_OSSL_CMP_ITAV_value(sk, idx) ((OSSL_CMP_ITAV *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), (idx))) 259 #define sk_OSSL_CMP_ITAV_new(cmp) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) 260 #define sk_OSSL_CMP_ITAV_new_null() ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_new_null()) 261 #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))) 262 #define sk_OSSL_CMP_ITAV_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_ITAV_sk_type(sk), (n)) 263 #define sk_OSSL_CMP_ITAV_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_ITAV_sk_type(sk)) 264 #define sk_OSSL_CMP_ITAV_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_ITAV_sk_type(sk)) 265 #define sk_OSSL_CMP_ITAV_delete(sk, i) ((OSSL_CMP_ITAV *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_ITAV_sk_type(sk), (i))) 266 #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))) 267 #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)) 268 #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)) 269 #define sk_OSSL_CMP_ITAV_pop(sk) ((OSSL_CMP_ITAV *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_ITAV_sk_type(sk))) 270 #define sk_OSSL_CMP_ITAV_shift(sk) ((OSSL_CMP_ITAV *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_ITAV_sk_type(sk))) 271 #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)) 272 #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)) 273 #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))) 274 #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)) 275 #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)) 276 #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) 277 #define sk_OSSL_CMP_ITAV_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_ITAV_sk_type(sk)) 278 #define sk_OSSL_CMP_ITAV_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk)) 279 #define sk_OSSL_CMP_ITAV_dup(sk) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk))) 280 #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))) 281 #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))) 282 283 /* clang-format on */ 284 285 typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; 286 /* clang-format off */ 287 SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) 288 #define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) 289 #define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) 290 #define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) 291 #define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) 292 #define sk_OSSL_CMP_CRLSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp), (n))) 293 #define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) 294 #define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) 295 #define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) 296 #define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) 297 #define sk_OSSL_CMP_CRLSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) 298 #define sk_OSSL_CMP_CRLSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) 299 #define sk_OSSL_CMP_CRLSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) 300 #define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) 301 #define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) 302 #define sk_OSSL_CMP_CRLSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc)) 303 #define sk_OSSL_CMP_CRLSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), (idx)) 304 #define sk_OSSL_CMP_CRLSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr))) 305 #define sk_OSSL_CMP_CRLSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) 306 #define sk_OSSL_CMP_CRLSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr)) 307 #define sk_OSSL_CMP_CRLSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_type(ptr), pnum) 308 #define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) 309 #define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) 310 #define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) 311 #define sk_OSSL_CMP_CRLSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CRLSTATUS_freefunc_type(freefunc))) 312 #define sk_OSSL_CMP_CRLSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CRLSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) 313 314 /* clang-format on */ 315 316 typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; 317 #define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free 318 typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; 319 DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) 320 #define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE 321 #define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num 322 #define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value 323 #define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push 324 #define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free 325 326 typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; 327 typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; 328 DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) 329 DECLARE_ASN1_DUP_FUNCTION(OSSL_CMP_PKISI) 330 /* clang-format off */ 331 SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_PKISI, OSSL_CMP_PKISI, OSSL_CMP_PKISI) 332 #define sk_OSSL_CMP_PKISI_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk)) 333 #define sk_OSSL_CMP_PKISI_value(sk, idx) ((OSSL_CMP_PKISI *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk), (idx))) 334 #define sk_OSSL_CMP_PKISI_new(cmp) ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_PKISI_compfunc_type(cmp))) 335 #define sk_OSSL_CMP_PKISI_new_null() ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_new_null()) 336 #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))) 337 #define sk_OSSL_CMP_PKISI_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_PKISI_sk_type(sk), (n)) 338 #define sk_OSSL_CMP_PKISI_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_PKISI_sk_type(sk)) 339 #define sk_OSSL_CMP_PKISI_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_PKISI_sk_type(sk)) 340 #define sk_OSSL_CMP_PKISI_delete(sk, i) ((OSSL_CMP_PKISI *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_PKISI_sk_type(sk), (i))) 341 #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))) 342 #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)) 343 #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)) 344 #define sk_OSSL_CMP_PKISI_pop(sk) ((OSSL_CMP_PKISI *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_PKISI_sk_type(sk))) 345 #define sk_OSSL_CMP_PKISI_shift(sk) ((OSSL_CMP_PKISI *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_PKISI_sk_type(sk))) 346 #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)) 347 #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)) 348 #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))) 349 #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)) 350 #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)) 351 #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) 352 #define sk_OSSL_CMP_PKISI_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_PKISI_sk_type(sk)) 353 #define sk_OSSL_CMP_PKISI_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk)) 354 #define sk_OSSL_CMP_PKISI_dup(sk) ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk))) 355 #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))) 356 #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))) 357 358 /* clang-format on */ 359 typedef struct ossl_cmp_certrepmessage_st OSSL_CMP_CERTREPMESSAGE; 360 /* clang-format off */ 361 SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CERTREPMESSAGE, OSSL_CMP_CERTREPMESSAGE, OSSL_CMP_CERTREPMESSAGE) 362 #define sk_OSSL_CMP_CERTREPMESSAGE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) 363 #define sk_OSSL_CMP_CERTREPMESSAGE_value(sk, idx) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (idx))) 364 #define sk_OSSL_CMP_CERTREPMESSAGE_new(cmp) ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CERTREPMESSAGE_compfunc_type(cmp))) 365 #define sk_OSSL_CMP_CERTREPMESSAGE_new_null() ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_new_null()) 366 #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))) 367 #define sk_OSSL_CMP_CERTREPMESSAGE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (n)) 368 #define sk_OSSL_CMP_CERTREPMESSAGE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) 369 #define sk_OSSL_CMP_CERTREPMESSAGE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) 370 #define sk_OSSL_CMP_CERTREPMESSAGE_delete(sk, i) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (i))) 371 #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))) 372 #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)) 373 #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)) 374 #define sk_OSSL_CMP_CERTREPMESSAGE_pop(sk) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk))) 375 #define sk_OSSL_CMP_CERTREPMESSAGE_shift(sk) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk))) 376 #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)) 377 #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)) 378 #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))) 379 #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)) 380 #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)) 381 #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) 382 #define sk_OSSL_CMP_CERTREPMESSAGE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) 383 #define sk_OSSL_CMP_CERTREPMESSAGE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) 384 #define sk_OSSL_CMP_CERTREPMESSAGE_dup(sk) ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk))) 385 #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))) 386 #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))) 387 388 /* clang-format on */ 389 typedef struct ossl_cmp_pollrep_st OSSL_CMP_POLLREP; 390 typedef STACK_OF(OSSL_CMP_POLLREP) OSSL_CMP_POLLREPCONTENT; 391 typedef struct ossl_cmp_certresponse_st OSSL_CMP_CERTRESPONSE; 392 /* clang-format off */ 393 SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CERTRESPONSE, OSSL_CMP_CERTRESPONSE, OSSL_CMP_CERTRESPONSE) 394 #define sk_OSSL_CMP_CERTRESPONSE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk)) 395 #define sk_OSSL_CMP_CERTRESPONSE_value(sk, idx) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk), (idx))) 396 #define sk_OSSL_CMP_CERTRESPONSE_new(cmp) ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CERTRESPONSE_compfunc_type(cmp))) 397 #define sk_OSSL_CMP_CERTRESPONSE_new_null() ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_new_null()) 398 #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))) 399 #define sk_OSSL_CMP_CERTRESPONSE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), (n)) 400 #define sk_OSSL_CMP_CERTRESPONSE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk)) 401 #define sk_OSSL_CMP_CERTRESPONSE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk)) 402 #define sk_OSSL_CMP_CERTRESPONSE_delete(sk, i) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), (i))) 403 #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))) 404 #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)) 405 #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)) 406 #define sk_OSSL_CMP_CERTRESPONSE_pop(sk) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk))) 407 #define sk_OSSL_CMP_CERTRESPONSE_shift(sk) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk))) 408 #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)) 409 #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)) 410 #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))) 411 #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)) 412 #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)) 413 #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) 414 #define sk_OSSL_CMP_CERTRESPONSE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk)) 415 #define sk_OSSL_CMP_CERTRESPONSE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk)) 416 #define sk_OSSL_CMP_CERTRESPONSE_dup(sk) ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk))) 417 #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))) 418 #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))) 419 420 /* clang-format on */ 421 typedef STACK_OF(ASN1_UTF8STRING) OSSL_CMP_PKIFREETEXT; 422 423 /* 424 * function DECLARATIONS 425 */ 426 427 /* from cmp_asn.c */ 428 OSSL_CMP_ITAV *OSSL_CMP_ITAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); 429 void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, 430 ASN1_TYPE *value); 431 ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); 432 ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); 433 int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, 434 OSSL_CMP_ITAV *itav); 435 void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); 436 437 OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) 438 *certProfile); 439 int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, 440 STACK_OF(ASN1_UTF8STRING) **out); 441 OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); 442 int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); 443 444 OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); 445 int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); 446 OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, 447 const X509 *newWithOld, 448 const X509 *oldWithNew); 449 int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, 450 X509 **newWithNew, 451 X509 **newWithOld, 452 X509 **oldWithNew); 453 454 OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, 455 const X509 *cert, int only_DN); 456 OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, 457 const GENERAL_NAMES *issuer, 458 const ASN1_TIME *thisUpdate); 459 int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, 460 DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, 461 ASN1_TIME **thisUpdate); 462 void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); 463 OSSL_CMP_ITAV 464 *OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); 465 int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, 466 STACK_OF(OSSL_CMP_CRLSTATUS) **out); 467 OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); 468 int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); 469 OSSL_CMP_ITAV 470 *OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, 471 OSSL_CMP_ATAVS *keySpec); 472 int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, 473 OSSL_CRMF_CERTTEMPLATE **certTemplate, 474 OSSL_CMP_ATAVS **keySpec); 475 476 OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); 477 void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, 478 ASN1_TYPE *value); 479 ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); 480 ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); 481 OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); 482 X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); 483 OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); 484 int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); 485 int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); 486 487 void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); 488 489 /* from cmp_ctx.c */ 490 OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); 491 void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); 492 int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); 493 OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); 494 const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); 495 /* CMP general options: */ 496 #define OSSL_CMP_OPT_LOG_VERBOSITY 0 497 /* CMP transfer options: */ 498 #define OSSL_CMP_OPT_KEEP_ALIVE 10 499 #define OSSL_CMP_OPT_MSG_TIMEOUT 11 500 #define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 501 #define OSSL_CMP_OPT_USE_TLS 13 502 /* CMP request options: */ 503 #define OSSL_CMP_OPT_VALIDITY_DAYS 20 504 #define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 505 #define OSSL_CMP_OPT_SUBJECTALTNAME_CRITICAL 22 506 #define OSSL_CMP_OPT_POLICIES_CRITICAL 23 507 #define OSSL_CMP_OPT_POPO_METHOD 24 508 #define OSSL_CMP_OPT_IMPLICIT_CONFIRM 25 509 #define OSSL_CMP_OPT_DISABLE_CONFIRM 26 510 #define OSSL_CMP_OPT_REVOCATION_REASON 27 511 /* CMP protection options: */ 512 #define OSSL_CMP_OPT_UNPROTECTED_SEND 30 513 #define OSSL_CMP_OPT_UNPROTECTED_ERRORS 31 514 #define OSSL_CMP_OPT_OWF_ALGNID 32 515 #define OSSL_CMP_OPT_MAC_ALGNID 33 516 #define OSSL_CMP_OPT_DIGEST_ALGNID 34 517 #define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 518 #define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 519 #define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 520 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); 521 int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); 522 /* CMP-specific callback for logging and outputting the error queue: */ 523 int OSSL_CMP_CTX_set_log_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_log_cb_t cb); 524 #define OSSL_CMP_CTX_set_log_verbosity(ctx, level) \ 525 OSSL_CMP_CTX_set_option(ctx, OSSL_CMP_OPT_LOG_VERBOSITY, level) 526 void OSSL_CMP_CTX_print_errors(const OSSL_CMP_CTX *ctx); 527 /* message transfer: */ 528 int OSSL_CMP_CTX_set1_serverPath(OSSL_CMP_CTX *ctx, const char *path); 529 int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); 530 int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); 531 int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); 532 int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); 533 #ifndef OPENSSL_NO_HTTP 534 int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); 535 int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); 536 void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); 537 #endif 538 typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t)(OSSL_CMP_CTX *ctx, 539 const OSSL_CMP_MSG *req); 540 int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); 541 int OSSL_CMP_CTX_set_transfer_cb_arg(OSSL_CMP_CTX *ctx, void *arg); 542 void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); 543 /* server authentication: */ 544 int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); 545 int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); 546 int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); 547 #define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore 548 X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); 549 #define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore 550 int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); 551 STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); 552 /* client authentication: */ 553 int OSSL_CMP_CTX_set1_cert(OSSL_CMP_CTX *ctx, X509 *cert); 554 int OSSL_CMP_CTX_build_cert_chain(OSSL_CMP_CTX *ctx, X509_STORE *own_trusted, 555 STACK_OF(X509) *candidates); 556 int OSSL_CMP_CTX_set1_pkey(OSSL_CMP_CTX *ctx, EVP_PKEY *pkey); 557 int OSSL_CMP_CTX_set1_referenceValue(OSSL_CMP_CTX *ctx, 558 const unsigned char *ref, int len); 559 int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, 560 const unsigned char *sec, int len); 561 /* CMP message header and extra certificates: */ 562 int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); 563 int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); 564 int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); 565 STACK_OF(OSSL_CMP_ITAV) 566 *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); 567 int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, 568 STACK_OF(X509) *extraCertsOut); 569 /* certificate template: */ 570 int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); 571 EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); 572 int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); 573 int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); 574 int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); 575 int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, 576 const GENERAL_NAME *name); 577 int OSSL_CMP_CTX_set0_reqExtensions(OSSL_CMP_CTX *ctx, X509_EXTENSIONS *exts); 578 int OSSL_CMP_CTX_reqExtensions_have_SAN(OSSL_CMP_CTX *ctx); 579 int OSSL_CMP_CTX_push0_policy(OSSL_CMP_CTX *ctx, POLICYINFO *pinfo); 580 int OSSL_CMP_CTX_set1_oldCert(OSSL_CMP_CTX *ctx, X509 *cert); 581 int OSSL_CMP_CTX_set1_p10CSR(OSSL_CMP_CTX *ctx, const X509_REQ *csr); 582 /* misc body contents: */ 583 int OSSL_CMP_CTX_push0_genm_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); 584 /* certificate confirmation: */ 585 typedef int (*OSSL_CMP_certConf_cb_t)(OSSL_CMP_CTX *ctx, X509 *cert, 586 int fail_info, const char **txt); 587 int OSSL_CMP_certConf_cb(OSSL_CMP_CTX *ctx, X509 *cert, int fail_info, 588 const char **text); 589 int OSSL_CMP_CTX_set_certConf_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_certConf_cb_t cb); 590 int OSSL_CMP_CTX_set_certConf_cb_arg(OSSL_CMP_CTX *ctx, void *arg); 591 void *OSSL_CMP_CTX_get_certConf_cb_arg(const OSSL_CMP_CTX *ctx); 592 /* result fetching: */ 593 int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); 594 OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); 595 int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); 596 #define OSSL_CMP_PKISI_BUFLEN 1024 597 X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); 598 X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); 599 STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); 600 STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); 601 STACK_OF(X509) *OSSL_CMP_CTX_get1_extraCertsIn(const OSSL_CMP_CTX *ctx); 602 int OSSL_CMP_CTX_set1_transactionID(OSSL_CMP_CTX *ctx, 603 const ASN1_OCTET_STRING *id); 604 int OSSL_CMP_CTX_set1_senderNonce(OSSL_CMP_CTX *ctx, 605 const ASN1_OCTET_STRING *nonce); 606 607 /* from cmp_status.c */ 608 char *OSSL_CMP_CTX_snprint_PKIStatus(const OSSL_CMP_CTX *ctx, char *buf, 609 size_t bufsize); 610 char *OSSL_CMP_snprint_PKIStatusInfo(const OSSL_CMP_PKISI *statusInfo, 611 char *buf, size_t bufsize); 612 OSSL_CMP_PKISI * 613 OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); 614 615 /* from cmp_hdr.c */ 616 ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); 617 ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); 618 STACK_OF(OSSL_CMP_ITAV) 619 *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); 620 621 /* from cmp_msg.c */ 622 OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); 623 int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); 624 X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); 625 int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); 626 int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); 627 OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); 628 OSSL_CMP_MSG *OSSL_CMP_MSG_read(const char *file, OSSL_LIB_CTX *libctx, 629 const char *propq); 630 int OSSL_CMP_MSG_write(const char *file, const OSSL_CMP_MSG *msg); 631 OSSL_CMP_MSG *d2i_OSSL_CMP_MSG_bio(BIO *bio, OSSL_CMP_MSG **msg); 632 int i2d_OSSL_CMP_MSG_bio(BIO *bio, const OSSL_CMP_MSG *msg); 633 634 /* from cmp_vfy.c */ 635 int OSSL_CMP_validate_msg(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *msg); 636 int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, 637 X509_STORE *trusted_store, X509 *cert); 638 639 /* from cmp_http.c */ 640 #ifndef OPENSSL_NO_HTTP 641 OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, 642 const OSSL_CMP_MSG *req); 643 #endif 644 645 /* from cmp_server.c */ 646 typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; 647 OSSL_CMP_MSG *OSSL_CMP_SRV_process_request(OSSL_CMP_SRV_CTX *srv_ctx, 648 const OSSL_CMP_MSG *req); 649 OSSL_CMP_MSG *OSSL_CMP_CTX_server_perform(OSSL_CMP_CTX *client_ctx, 650 const OSSL_CMP_MSG *req); 651 OSSL_CMP_SRV_CTX *OSSL_CMP_SRV_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); 652 void OSSL_CMP_SRV_CTX_free(OSSL_CMP_SRV_CTX *srv_ctx); 653 typedef OSSL_CMP_PKISI *(*OSSL_CMP_SRV_cert_request_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, const OSSL_CMP_MSG *req, int certReqId, 654 const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr, 655 X509 **certOut, STACK_OF(X509) **chainOut, STACK_OF(X509) **caPubs); 656 typedef OSSL_CMP_PKISI *(*OSSL_CMP_SRV_rr_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, 657 const OSSL_CMP_MSG *req, 658 const X509_NAME *issuer, 659 const ASN1_INTEGER *serial); 660 typedef int (*OSSL_CMP_SRV_genm_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, 661 const OSSL_CMP_MSG *req, 662 const STACK_OF(OSSL_CMP_ITAV) *in, 663 STACK_OF(OSSL_CMP_ITAV) **out); 664 typedef void (*OSSL_CMP_SRV_error_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, 665 const OSSL_CMP_MSG *req, 666 const OSSL_CMP_PKISI *statusInfo, 667 const ASN1_INTEGER *errorCode, 668 const OSSL_CMP_PKIFREETEXT *errDetails); 669 typedef int (*OSSL_CMP_SRV_certConf_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, 670 const OSSL_CMP_MSG *req, 671 int certReqId, 672 const ASN1_OCTET_STRING *certHash, 673 const OSSL_CMP_PKISI *si); 674 typedef int (*OSSL_CMP_SRV_pollReq_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, 675 const OSSL_CMP_MSG *req, int certReqId, 676 OSSL_CMP_MSG **certReq, 677 int64_t *check_after); 678 int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, 679 OSSL_CMP_SRV_cert_request_cb_t process_cert_request, 680 OSSL_CMP_SRV_rr_cb_t process_rr, 681 OSSL_CMP_SRV_genm_cb_t process_genm, 682 OSSL_CMP_SRV_error_cb_t process_error, 683 OSSL_CMP_SRV_certConf_cb_t process_certConf, 684 OSSL_CMP_SRV_pollReq_cb_t process_pollReq); 685 typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, 686 const OSSL_CMP_MSG *req); 687 typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, 688 const ASN1_OCTET_STRING *id); 689 int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, 690 OSSL_CMP_SRV_delayed_delivery_cb_t delay, 691 OSSL_CMP_SRV_clean_transaction_cb_t clean); 692 OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); 693 void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); 694 int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, 695 int val); 696 int OSSL_CMP_SRV_CTX_set_accept_unprotected(OSSL_CMP_SRV_CTX *srv_ctx, int val); 697 int OSSL_CMP_SRV_CTX_set_accept_raverified(OSSL_CMP_SRV_CTX *srv_ctx, int val); 698 int OSSL_CMP_SRV_CTX_set_grant_implicit_confirm(OSSL_CMP_SRV_CTX *srv_ctx, 699 int val); 700 701 /* from cmp_client.c */ 702 X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, 703 const OSSL_CRMF_MSG *crm); 704 #define OSSL_CMP_IR 0 705 #define OSSL_CMP_CR 2 706 #define OSSL_CMP_P10CR 4 707 #define OSSL_CMP_KUR 7 708 #define OSSL_CMP_GENM 21 709 #define OSSL_CMP_ERROR 23 710 #define OSSL_CMP_exec_IR_ses(ctx) \ 711 OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) 712 #define OSSL_CMP_exec_CR_ses(ctx) \ 713 OSSL_CMP_exec_certreq(ctx, OSSL_CMP_CR, NULL) 714 #define OSSL_CMP_exec_P10CR_ses(ctx) \ 715 OSSL_CMP_exec_certreq(ctx, OSSL_CMP_P10CR, NULL) 716 #define OSSL_CMP_exec_KUR_ses(ctx) \ 717 OSSL_CMP_exec_certreq(ctx, OSSL_CMP_KUR, NULL) 718 int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, 719 const OSSL_CRMF_MSG *crm, int *checkAfter); 720 int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); 721 STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); 722 723 /* from cmp_genm.c */ 724 int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); 725 int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, 726 const X509 *oldWithOld, X509 **newWithNew, 727 X509 **newWithOld, X509 **oldWithNew); 728 int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, 729 const X509_CRL *last_crl, 730 X509_CRL **crl); 731 int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, 732 OSSL_CRMF_CERTTEMPLATE **certTemplate, 733 OSSL_CMP_ATAVS **keySpec); 734 735 #ifdef __cplusplus 736 } 737 #endif 738 #endif /* !defined(OPENSSL_NO_CMP) */ 739 #endif /* !defined(OPENSSL_CMP_H) */