1 /* 2 * WARNING: do not edit! 3 * Generated by Makefile from include/openssl/cmp.h.in 4 * 5 * Copyright 2007-2026 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_rejected_by_client -5 200 #define OSSL_CMP_PKISTATUS_checking_response -4 201 #define OSSL_CMP_PKISTATUS_request -3 202 #define OSSL_CMP_PKISTATUS_trans -2 203 #define OSSL_CMP_PKISTATUS_unspecified -1 204 #define OSSL_CMP_PKISTATUS_accepted 0 205 #define OSSL_CMP_PKISTATUS_grantedWithMods 1 206 #define OSSL_CMP_PKISTATUS_rejection 2 207 #define OSSL_CMP_PKISTATUS_waiting 3 208 #define OSSL_CMP_PKISTATUS_revocationWarning 4 209 #define OSSL_CMP_PKISTATUS_revocationNotification 5 210 #define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 211 typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; 212 213 DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) 214 215 #define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 216 #define OSSL_CMP_CERTORENCCERT_ENCRYPTEDCERT 1 217 218 /* data type declarations */ 219 typedef struct ossl_cmp_ctx_st OSSL_CMP_CTX; 220 typedef struct ossl_cmp_pkiheader_st OSSL_CMP_PKIHEADER; 221 DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKIHEADER) 222 typedef struct ossl_cmp_msg_st OSSL_CMP_MSG; 223 DECLARE_ASN1_DUP_FUNCTION(OSSL_CMP_MSG) 224 DECLARE_ASN1_ENCODE_FUNCTIONS(OSSL_CMP_MSG, OSSL_CMP_MSG, OSSL_CMP_MSG) 225 typedef struct ossl_cmp_certstatus_st OSSL_CMP_CERTSTATUS; 226 /* clang-format off */ 227 SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CERTSTATUS, OSSL_CMP_CERTSTATUS, OSSL_CMP_CERTSTATUS) 228 #define sk_OSSL_CMP_CERTSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk)) 229 #define sk_OSSL_CMP_CERTSTATUS_value(sk, idx) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk), (idx))) 230 #define sk_OSSL_CMP_CERTSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CERTSTATUS_compfunc_type(cmp))) 231 #define sk_OSSL_CMP_CERTSTATUS_new_null() ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_new_null()) 232 #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))) 233 #define sk_OSSL_CMP_CERTSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), (n)) 234 #define sk_OSSL_CMP_CERTSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk)) 235 #define sk_OSSL_CMP_CERTSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk)) 236 #define sk_OSSL_CMP_CERTSTATUS_delete(sk, i) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), (i))) 237 #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))) 238 #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)) 239 #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)) 240 #define sk_OSSL_CMP_CERTSTATUS_pop(sk) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk))) 241 #define sk_OSSL_CMP_CERTSTATUS_shift(sk) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk))) 242 #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)) 243 #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)) 244 #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))) 245 #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)) 246 #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)) 247 #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) 248 #define sk_OSSL_CMP_CERTSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk)) 249 #define sk_OSSL_CMP_CERTSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk)) 250 #define sk_OSSL_CMP_CERTSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk))) 251 #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))) 252 #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))) 253 254 /* clang-format on */ 255 typedef struct ossl_cmp_itav_st OSSL_CMP_ITAV; 256 DECLARE_ASN1_DUP_FUNCTION(OSSL_CMP_ITAV) 257 /* clang-format off */ 258 SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) 259 #define sk_OSSL_CMP_ITAV_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk)) 260 #define sk_OSSL_CMP_ITAV_value(sk, idx) ((OSSL_CMP_ITAV *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), (idx))) 261 #define sk_OSSL_CMP_ITAV_new(cmp) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) 262 #define sk_OSSL_CMP_ITAV_new_null() ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_new_null()) 263 #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))) 264 #define sk_OSSL_CMP_ITAV_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_ITAV_sk_type(sk), (n)) 265 #define sk_OSSL_CMP_ITAV_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_ITAV_sk_type(sk)) 266 #define sk_OSSL_CMP_ITAV_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_ITAV_sk_type(sk)) 267 #define sk_OSSL_CMP_ITAV_delete(sk, i) ((OSSL_CMP_ITAV *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_ITAV_sk_type(sk), (i))) 268 #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))) 269 #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)) 270 #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)) 271 #define sk_OSSL_CMP_ITAV_pop(sk) ((OSSL_CMP_ITAV *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_ITAV_sk_type(sk))) 272 #define sk_OSSL_CMP_ITAV_shift(sk) ((OSSL_CMP_ITAV *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_ITAV_sk_type(sk))) 273 #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)) 274 #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)) 275 #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))) 276 #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)) 277 #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)) 278 #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) 279 #define sk_OSSL_CMP_ITAV_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_ITAV_sk_type(sk)) 280 #define sk_OSSL_CMP_ITAV_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk)) 281 #define sk_OSSL_CMP_ITAV_dup(sk) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk))) 282 #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))) 283 #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))) 284 285 /* clang-format on */ 286 287 typedef struct ossl_cmp_crlstatus_st OSSL_CMP_CRLSTATUS; 288 /* clang-format off */ 289 SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS, OSSL_CMP_CRLSTATUS) 290 #define sk_OSSL_CMP_CRLSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) 291 #define sk_OSSL_CMP_CRLSTATUS_value(sk, idx) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk), (idx))) 292 #define sk_OSSL_CMP_CRLSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CRLSTATUS_compfunc_type(cmp))) 293 #define sk_OSSL_CMP_CRLSTATUS_new_null() ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_new_null()) 294 #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))) 295 #define sk_OSSL_CMP_CRLSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (n)) 296 #define sk_OSSL_CMP_CRLSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) 297 #define sk_OSSL_CMP_CRLSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) 298 #define sk_OSSL_CMP_CRLSTATUS_delete(sk, i) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk), (i))) 299 #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))) 300 #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)) 301 #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)) 302 #define sk_OSSL_CMP_CRLSTATUS_pop(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) 303 #define sk_OSSL_CMP_CRLSTATUS_shift(sk) ((OSSL_CMP_CRLSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk))) 304 #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)) 305 #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)) 306 #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))) 307 #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)) 308 #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)) 309 #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) 310 #define sk_OSSL_CMP_CRLSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CRLSTATUS_sk_type(sk)) 311 #define sk_OSSL_CMP_CRLSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk)) 312 #define sk_OSSL_CMP_CRLSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CRLSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CRLSTATUS_sk_type(sk))) 313 #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))) 314 #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))) 315 316 /* clang-format on */ 317 318 typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV; 319 #define OSSL_CMP_ATAV_free OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free 320 typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS; 321 DECLARE_ASN1_FUNCTIONS(OSSL_CMP_ATAVS) 322 #define stack_st_OSSL_CMP_ATAV stack_st_OSSL_CRMF_ATTRIBUTETYPEANDVALUE 323 #define sk_OSSL_CMP_ATAV_num sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_num 324 #define sk_OSSL_CMP_ATAV_value sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_value 325 #define sk_OSSL_CMP_ATAV_push sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push 326 #define sk_OSSL_CMP_ATAV_pop_free sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_pop_free 327 328 typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; 329 typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; 330 DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) 331 DECLARE_ASN1_DUP_FUNCTION(OSSL_CMP_PKISI) 332 /* clang-format off */ 333 SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_PKISI, OSSL_CMP_PKISI, OSSL_CMP_PKISI) 334 #define sk_OSSL_CMP_PKISI_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk)) 335 #define sk_OSSL_CMP_PKISI_value(sk, idx) ((OSSL_CMP_PKISI *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk), (idx))) 336 #define sk_OSSL_CMP_PKISI_new(cmp) ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_PKISI_compfunc_type(cmp))) 337 #define sk_OSSL_CMP_PKISI_new_null() ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_new_null()) 338 #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))) 339 #define sk_OSSL_CMP_PKISI_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_PKISI_sk_type(sk), (n)) 340 #define sk_OSSL_CMP_PKISI_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_PKISI_sk_type(sk)) 341 #define sk_OSSL_CMP_PKISI_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_PKISI_sk_type(sk)) 342 #define sk_OSSL_CMP_PKISI_delete(sk, i) ((OSSL_CMP_PKISI *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_PKISI_sk_type(sk), (i))) 343 #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))) 344 #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)) 345 #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)) 346 #define sk_OSSL_CMP_PKISI_pop(sk) ((OSSL_CMP_PKISI *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_PKISI_sk_type(sk))) 347 #define sk_OSSL_CMP_PKISI_shift(sk) ((OSSL_CMP_PKISI *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_PKISI_sk_type(sk))) 348 #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)) 349 #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)) 350 #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))) 351 #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)) 352 #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)) 353 #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) 354 #define sk_OSSL_CMP_PKISI_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_PKISI_sk_type(sk)) 355 #define sk_OSSL_CMP_PKISI_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk)) 356 #define sk_OSSL_CMP_PKISI_dup(sk) ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk))) 357 #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))) 358 #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))) 359 360 /* clang-format on */ 361 typedef struct ossl_cmp_certrepmessage_st OSSL_CMP_CERTREPMESSAGE; 362 /* clang-format off */ 363 SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CERTREPMESSAGE, OSSL_CMP_CERTREPMESSAGE, OSSL_CMP_CERTREPMESSAGE) 364 #define sk_OSSL_CMP_CERTREPMESSAGE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) 365 #define sk_OSSL_CMP_CERTREPMESSAGE_value(sk, idx) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (idx))) 366 #define sk_OSSL_CMP_CERTREPMESSAGE_new(cmp) ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CERTREPMESSAGE_compfunc_type(cmp))) 367 #define sk_OSSL_CMP_CERTREPMESSAGE_new_null() ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_new_null()) 368 #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))) 369 #define sk_OSSL_CMP_CERTREPMESSAGE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (n)) 370 #define sk_OSSL_CMP_CERTREPMESSAGE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) 371 #define sk_OSSL_CMP_CERTREPMESSAGE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) 372 #define sk_OSSL_CMP_CERTREPMESSAGE_delete(sk, i) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (i))) 373 #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))) 374 #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)) 375 #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)) 376 #define sk_OSSL_CMP_CERTREPMESSAGE_pop(sk) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk))) 377 #define sk_OSSL_CMP_CERTREPMESSAGE_shift(sk) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk))) 378 #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)) 379 #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)) 380 #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))) 381 #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)) 382 #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)) 383 #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) 384 #define sk_OSSL_CMP_CERTREPMESSAGE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) 385 #define sk_OSSL_CMP_CERTREPMESSAGE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) 386 #define sk_OSSL_CMP_CERTREPMESSAGE_dup(sk) ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk))) 387 #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))) 388 #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))) 389 390 /* clang-format on */ 391 typedef struct ossl_cmp_pollrep_st OSSL_CMP_POLLREP; 392 typedef STACK_OF(OSSL_CMP_POLLREP) OSSL_CMP_POLLREPCONTENT; 393 typedef struct ossl_cmp_certresponse_st OSSL_CMP_CERTRESPONSE; 394 /* clang-format off */ 395 SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CERTRESPONSE, OSSL_CMP_CERTRESPONSE, OSSL_CMP_CERTRESPONSE) 396 #define sk_OSSL_CMP_CERTRESPONSE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk)) 397 #define sk_OSSL_CMP_CERTRESPONSE_value(sk, idx) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk), (idx))) 398 #define sk_OSSL_CMP_CERTRESPONSE_new(cmp) ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CERTRESPONSE_compfunc_type(cmp))) 399 #define sk_OSSL_CMP_CERTRESPONSE_new_null() ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_new_null()) 400 #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))) 401 #define sk_OSSL_CMP_CERTRESPONSE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), (n)) 402 #define sk_OSSL_CMP_CERTRESPONSE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk)) 403 #define sk_OSSL_CMP_CERTRESPONSE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk)) 404 #define sk_OSSL_CMP_CERTRESPONSE_delete(sk, i) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), (i))) 405 #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))) 406 #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)) 407 #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)) 408 #define sk_OSSL_CMP_CERTRESPONSE_pop(sk) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk))) 409 #define sk_OSSL_CMP_CERTRESPONSE_shift(sk) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk))) 410 #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)) 411 #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)) 412 #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))) 413 #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)) 414 #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)) 415 #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) 416 #define sk_OSSL_CMP_CERTRESPONSE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk)) 417 #define sk_OSSL_CMP_CERTRESPONSE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk)) 418 #define sk_OSSL_CMP_CERTRESPONSE_dup(sk) ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk))) 419 #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))) 420 #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))) 421 422 /* clang-format on */ 423 typedef STACK_OF(ASN1_UTF8STRING) OSSL_CMP_PKIFREETEXT; 424 425 /* 426 * function DECLARATIONS 427 */ 428 429 /* from cmp_asn.c */ 430 OSSL_CMP_ITAV *OSSL_CMP_ITAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); 431 void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, 432 ASN1_TYPE *value); 433 ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); 434 ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); 435 int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **sk_p, 436 OSSL_CMP_ITAV *itav); 437 void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); 438 439 OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) 440 *certProfile); 441 int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, 442 STACK_OF(ASN1_UTF8STRING) **out); 443 OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); 444 int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); 445 446 OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); 447 int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); 448 OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, 449 const X509 *newWithOld, 450 const X509 *oldWithNew); 451 int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, 452 X509 **newWithNew, 453 X509 **newWithOld, 454 X509 **oldWithNew); 455 456 OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_create(const X509_CRL *crl, 457 const X509 *cert, int only_DN); 458 OSSL_CMP_CRLSTATUS *OSSL_CMP_CRLSTATUS_new1(const DIST_POINT_NAME *dpn, 459 const GENERAL_NAMES *issuer, 460 const ASN1_TIME *thisUpdate); 461 int OSSL_CMP_CRLSTATUS_get0(const OSSL_CMP_CRLSTATUS *crlstatus, 462 DIST_POINT_NAME **dpn, GENERAL_NAMES **issuer, 463 ASN1_TIME **thisUpdate); 464 void OSSL_CMP_CRLSTATUS_free(OSSL_CMP_CRLSTATUS *crlstatus); 465 OSSL_CMP_ITAV 466 *OSSL_CMP_ITAV_new0_crlStatusList(STACK_OF(OSSL_CMP_CRLSTATUS) *crlStatusList); 467 int OSSL_CMP_ITAV_get0_crlStatusList(const OSSL_CMP_ITAV *itav, 468 STACK_OF(OSSL_CMP_CRLSTATUS) **out); 469 OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_crls(const X509_CRL *crls); 470 int OSSL_CMP_ITAV_get0_crls(const OSSL_CMP_ITAV *it, STACK_OF(X509_CRL) **out); 471 OSSL_CMP_ITAV 472 *OSSL_CMP_ITAV_new0_certReqTemplate(OSSL_CRMF_CERTTEMPLATE *certTemplate, 473 OSSL_CMP_ATAVS *keySpec); 474 int OSSL_CMP_ITAV_get1_certReqTemplate(const OSSL_CMP_ITAV *itav, 475 OSSL_CRMF_CERTTEMPLATE **certTemplate, 476 OSSL_CMP_ATAVS **keySpec); 477 478 OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); 479 void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *itav, ASN1_OBJECT *type, 480 ASN1_TYPE *value); 481 ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *itav); 482 ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *itav); 483 OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg); 484 X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav); 485 OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len); 486 int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav); 487 int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav); 488 489 void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); 490 491 /* from cmp_ctx.c */ 492 OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); 493 void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); 494 int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); 495 OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); 496 const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); 497 /* CMP general options: */ 498 #define OSSL_CMP_OPT_LOG_VERBOSITY 0 499 /* CMP transfer options: */ 500 #define OSSL_CMP_OPT_KEEP_ALIVE 10 501 #define OSSL_CMP_OPT_MSG_TIMEOUT 11 502 #define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 503 #define OSSL_CMP_OPT_USE_TLS 13 504 /* CMP request options: */ 505 #define OSSL_CMP_OPT_VALIDITY_DAYS 20 506 #define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 507 #define OSSL_CMP_OPT_SUBJECTALTNAME_CRITICAL 22 508 #define OSSL_CMP_OPT_POLICIES_CRITICAL 23 509 #define OSSL_CMP_OPT_POPO_METHOD 24 510 #define OSSL_CMP_OPT_IMPLICIT_CONFIRM 25 511 #define OSSL_CMP_OPT_DISABLE_CONFIRM 26 512 #define OSSL_CMP_OPT_REVOCATION_REASON 27 513 /* CMP protection options: */ 514 #define OSSL_CMP_OPT_UNPROTECTED_SEND 30 515 #define OSSL_CMP_OPT_UNPROTECTED_ERRORS 31 516 #define OSSL_CMP_OPT_OWF_ALGNID 32 517 #define OSSL_CMP_OPT_MAC_ALGNID 33 518 #define OSSL_CMP_OPT_DIGEST_ALGNID 34 519 #define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 520 #define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 521 #define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 522 int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); 523 int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); 524 /* CMP-specific callback for logging and outputting the error queue: */ 525 int OSSL_CMP_CTX_set_log_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_log_cb_t cb); 526 #define OSSL_CMP_CTX_set_log_verbosity(ctx, level) \ 527 OSSL_CMP_CTX_set_option(ctx, OSSL_CMP_OPT_LOG_VERBOSITY, level) 528 void OSSL_CMP_CTX_print_errors(const OSSL_CMP_CTX *ctx); 529 /* message transfer: */ 530 int OSSL_CMP_CTX_set1_serverPath(OSSL_CMP_CTX *ctx, const char *path); 531 int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); 532 int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); 533 int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); 534 int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); 535 #ifndef OPENSSL_NO_HTTP 536 int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); 537 int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); 538 void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); 539 #endif 540 typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t)(OSSL_CMP_CTX *ctx, 541 const OSSL_CMP_MSG *req); 542 int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); 543 int OSSL_CMP_CTX_set_transfer_cb_arg(OSSL_CMP_CTX *ctx, void *arg); 544 void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); 545 /* server authentication: */ 546 int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); 547 int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); 548 int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); 549 #define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore 550 X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); 551 #define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore 552 int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); 553 STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); 554 /* client authentication: */ 555 int OSSL_CMP_CTX_set1_cert(OSSL_CMP_CTX *ctx, X509 *cert); 556 int OSSL_CMP_CTX_build_cert_chain(OSSL_CMP_CTX *ctx, X509_STORE *own_trusted, 557 STACK_OF(X509) *candidates); 558 int OSSL_CMP_CTX_set1_pkey(OSSL_CMP_CTX *ctx, EVP_PKEY *pkey); 559 int OSSL_CMP_CTX_set1_referenceValue(OSSL_CMP_CTX *ctx, 560 const unsigned char *ref, int len); 561 int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, 562 const unsigned char *sec, int len); 563 /* CMP message header and extra certificates: */ 564 int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); 565 int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); 566 int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); 567 STACK_OF(OSSL_CMP_ITAV) 568 *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); 569 int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, 570 STACK_OF(X509) *extraCertsOut); 571 /* certificate template: */ 572 int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); 573 EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); 574 int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); 575 int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); 576 int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); 577 int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, 578 const GENERAL_NAME *name); 579 int OSSL_CMP_CTX_set0_reqExtensions(OSSL_CMP_CTX *ctx, X509_EXTENSIONS *exts); 580 int OSSL_CMP_CTX_reqExtensions_have_SAN(OSSL_CMP_CTX *ctx); 581 int OSSL_CMP_CTX_push0_policy(OSSL_CMP_CTX *ctx, POLICYINFO *pinfo); 582 int OSSL_CMP_CTX_set1_oldCert(OSSL_CMP_CTX *ctx, X509 *cert); 583 int OSSL_CMP_CTX_set1_p10CSR(OSSL_CMP_CTX *ctx, const X509_REQ *csr); 584 /* misc body contents: */ 585 int OSSL_CMP_CTX_push0_genm_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); 586 /* certificate confirmation: */ 587 typedef int (*OSSL_CMP_certConf_cb_t)(OSSL_CMP_CTX *ctx, X509 *cert, 588 int fail_info, const char **txt); 589 int OSSL_CMP_certConf_cb(OSSL_CMP_CTX *ctx, X509 *cert, int fail_info, 590 const char **text); 591 int OSSL_CMP_CTX_set_certConf_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_certConf_cb_t cb); 592 int OSSL_CMP_CTX_set_certConf_cb_arg(OSSL_CMP_CTX *ctx, void *arg); 593 void *OSSL_CMP_CTX_get_certConf_cb_arg(const OSSL_CMP_CTX *ctx); 594 /* result fetching: */ 595 int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); 596 OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); 597 int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); 598 #define OSSL_CMP_PKISI_BUFLEN 1024 599 X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); 600 X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); 601 STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); 602 STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); 603 STACK_OF(X509) *OSSL_CMP_CTX_get1_extraCertsIn(const OSSL_CMP_CTX *ctx); 604 int OSSL_CMP_CTX_set1_transactionID(OSSL_CMP_CTX *ctx, 605 const ASN1_OCTET_STRING *id); 606 int OSSL_CMP_CTX_set1_senderNonce(OSSL_CMP_CTX *ctx, 607 const ASN1_OCTET_STRING *nonce); 608 609 /* from cmp_status.c */ 610 char *OSSL_CMP_CTX_snprint_PKIStatus(const OSSL_CMP_CTX *ctx, char *buf, 611 size_t bufsize); 612 char *OSSL_CMP_snprint_PKIStatusInfo(const OSSL_CMP_PKISI *statusInfo, 613 char *buf, size_t bufsize); 614 OSSL_CMP_PKISI * 615 OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); 616 617 /* from cmp_hdr.c */ 618 ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const OSSL_CMP_PKIHEADER *hdr); 619 ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); 620 STACK_OF(OSSL_CMP_ITAV) 621 *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); 622 623 /* from cmp_msg.c */ 624 OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); 625 int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); 626 X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); 627 int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); 628 int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); 629 OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); 630 OSSL_CMP_MSG *OSSL_CMP_MSG_read(const char *file, OSSL_LIB_CTX *libctx, 631 const char *propq); 632 int OSSL_CMP_MSG_write(const char *file, const OSSL_CMP_MSG *msg); 633 OSSL_CMP_MSG *d2i_OSSL_CMP_MSG_bio(BIO *bio, OSSL_CMP_MSG **msg); 634 int i2d_OSSL_CMP_MSG_bio(BIO *bio, const OSSL_CMP_MSG *msg); 635 636 /* from cmp_vfy.c */ 637 int OSSL_CMP_validate_msg(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *msg); 638 int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, 639 X509_STORE *trusted_store, X509 *cert); 640 641 /* from cmp_http.c */ 642 #ifndef OPENSSL_NO_HTTP 643 OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, 644 const OSSL_CMP_MSG *req); 645 #endif 646 647 /* from cmp_server.c */ 648 typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; 649 OSSL_CMP_MSG *OSSL_CMP_SRV_process_request(OSSL_CMP_SRV_CTX *srv_ctx, 650 const OSSL_CMP_MSG *req); 651 OSSL_CMP_MSG *OSSL_CMP_CTX_server_perform(OSSL_CMP_CTX *client_ctx, 652 const OSSL_CMP_MSG *req); 653 OSSL_CMP_SRV_CTX *OSSL_CMP_SRV_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); 654 void OSSL_CMP_SRV_CTX_free(OSSL_CMP_SRV_CTX *srv_ctx); 655 typedef OSSL_CMP_PKISI *(*OSSL_CMP_SRV_cert_request_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, const OSSL_CMP_MSG *req, int certReqId, 656 const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr, 657 X509 **certOut, STACK_OF(X509) **chainOut, STACK_OF(X509) **caPubs); 658 typedef OSSL_CMP_PKISI *(*OSSL_CMP_SRV_rr_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, 659 const OSSL_CMP_MSG *req, 660 const X509_NAME *issuer, 661 const ASN1_INTEGER *serial); 662 typedef int (*OSSL_CMP_SRV_genm_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, 663 const OSSL_CMP_MSG *req, 664 const STACK_OF(OSSL_CMP_ITAV) *in, 665 STACK_OF(OSSL_CMP_ITAV) **out); 666 typedef void (*OSSL_CMP_SRV_error_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, 667 const OSSL_CMP_MSG *req, 668 const OSSL_CMP_PKISI *statusInfo, 669 const ASN1_INTEGER *errorCode, 670 const OSSL_CMP_PKIFREETEXT *errDetails); 671 typedef int (*OSSL_CMP_SRV_certConf_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, 672 const OSSL_CMP_MSG *req, 673 int certReqId, 674 const ASN1_OCTET_STRING *certHash, 675 const OSSL_CMP_PKISI *si); 676 typedef int (*OSSL_CMP_SRV_pollReq_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, 677 const OSSL_CMP_MSG *req, int certReqId, 678 OSSL_CMP_MSG **certReq, 679 int64_t *check_after); 680 int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, 681 OSSL_CMP_SRV_cert_request_cb_t process_cert_request, 682 OSSL_CMP_SRV_rr_cb_t process_rr, 683 OSSL_CMP_SRV_genm_cb_t process_genm, 684 OSSL_CMP_SRV_error_cb_t process_error, 685 OSSL_CMP_SRV_certConf_cb_t process_certConf, 686 OSSL_CMP_SRV_pollReq_cb_t process_pollReq); 687 typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, 688 const OSSL_CMP_MSG *req); 689 typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, 690 const ASN1_OCTET_STRING *id); 691 int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, 692 OSSL_CMP_SRV_delayed_delivery_cb_t delay, 693 OSSL_CMP_SRV_clean_transaction_cb_t clean); 694 OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); 695 void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); 696 int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, 697 int val); 698 int OSSL_CMP_SRV_CTX_set_accept_unprotected(OSSL_CMP_SRV_CTX *srv_ctx, int val); 699 int OSSL_CMP_SRV_CTX_set_accept_raverified(OSSL_CMP_SRV_CTX *srv_ctx, int val); 700 int OSSL_CMP_SRV_CTX_set_grant_implicit_confirm(OSSL_CMP_SRV_CTX *srv_ctx, 701 int val); 702 703 /* from cmp_client.c */ 704 X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, 705 const OSSL_CRMF_MSG *crm); 706 #define OSSL_CMP_IR 0 707 #define OSSL_CMP_CR 2 708 #define OSSL_CMP_P10CR 4 709 #define OSSL_CMP_KUR 7 710 #define OSSL_CMP_GENM 21 711 #define OSSL_CMP_ERROR 23 712 #define OSSL_CMP_exec_IR_ses(ctx) \ 713 OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) 714 #define OSSL_CMP_exec_CR_ses(ctx) \ 715 OSSL_CMP_exec_certreq(ctx, OSSL_CMP_CR, NULL) 716 #define OSSL_CMP_exec_P10CR_ses(ctx) \ 717 OSSL_CMP_exec_certreq(ctx, OSSL_CMP_P10CR, NULL) 718 #define OSSL_CMP_exec_KUR_ses(ctx) \ 719 OSSL_CMP_exec_certreq(ctx, OSSL_CMP_KUR, NULL) 720 int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, 721 const OSSL_CRMF_MSG *crm, int *checkAfter); 722 int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); 723 STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); 724 725 /* from cmp_genm.c */ 726 int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); 727 int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, 728 const X509 *oldWithOld, X509 **newWithNew, 729 X509 **newWithOld, X509 **oldWithNew); 730 int OSSL_CMP_get1_crlUpdate(OSSL_CMP_CTX *ctx, const X509 *crlcert, 731 const X509_CRL *last_crl, 732 X509_CRL **crl); 733 int OSSL_CMP_get1_certReqTemplate(OSSL_CMP_CTX *ctx, 734 OSSL_CRMF_CERTTEMPLATE **certTemplate, 735 OSSL_CMP_ATAVS **keySpec); 736 737 #ifdef __cplusplus 738 } 739 #endif 740 #endif /* !defined(OPENSSL_NO_CMP) */ 741 #endif /* !defined(OPENSSL_CMP_H) */ 742