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