cssmcli.h
1 /* 2 * Copyright (c) 1999-2001,2004,2011,2014 Apple Inc. All Rights Reserved. 3 * 4 * @APPLE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. Please obtain a copy of the License at 10 * http://www.opensource.apple.com/apsl/ and read it before using this 11 * file. 12 * 13 * The Original Code and all software distributed under the License are 14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 18 * Please see the License for the specific language governing rights and 19 * limitations under the License. 20 * 21 * @APPLE_LICENSE_HEADER_END@ 22 * 23 * cssmcli.h -- Service Provider Interface for Certificate Library Modules 24 */ 25 26 #ifndef _CSSMCLI_H_ 27 #define _CSSMCLI_H_ 1 28 29 #include <Security/cssmtype.h> 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 #pragma clang diagnostic push 36 #pragma clang diagnostic ignored "-Wdeprecated-declarations" 37 38 typedef struct DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER cssm_spi_cl_funcs { 39 CSSM_RETURN (CSSMCLI *CertCreateTemplate) 40 (CSSM_CL_HANDLE CLHandle, 41 uint32 NumberOfFields, 42 const CSSM_FIELD *CertFields, 43 CSSM_DATA_PTR CertTemplate); 44 CSSM_RETURN (CSSMCLI *CertGetAllTemplateFields) 45 (CSSM_CL_HANDLE CLHandle, 46 const CSSM_DATA *CertTemplate, 47 uint32 *NumberOfFields, 48 CSSM_FIELD_PTR *CertFields); 49 CSSM_RETURN (CSSMCLI *CertSign) 50 (CSSM_CL_HANDLE CLHandle, 51 CSSM_CC_HANDLE CCHandle, 52 const CSSM_DATA *CertTemplate, 53 const CSSM_FIELD *SignScope, 54 uint32 ScopeSize, 55 CSSM_DATA_PTR SignedCert); 56 CSSM_RETURN (CSSMCLI *CertVerify) 57 (CSSM_CL_HANDLE CLHandle, 58 CSSM_CC_HANDLE CCHandle, 59 const CSSM_DATA *CertToBeVerified, 60 const CSSM_DATA *SignerCert, 61 const CSSM_FIELD *VerifyScope, 62 uint32 ScopeSize); 63 CSSM_RETURN (CSSMCLI *CertVerifyWithKey) 64 (CSSM_CL_HANDLE CLHandle, 65 CSSM_CC_HANDLE CCHandle, 66 const CSSM_DATA *CertToBeVerified); 67 CSSM_RETURN (CSSMCLI *CertGetFirstFieldValue) 68 (CSSM_CL_HANDLE CLHandle, 69 const CSSM_DATA *Cert, 70 const CSSM_OID *CertField, 71 CSSM_HANDLE_PTR ResultsHandle, 72 uint32 *NumberOfMatchedFields, 73 CSSM_DATA_PTR *Value); 74 CSSM_RETURN (CSSMCLI *CertGetNextFieldValue) 75 (CSSM_CL_HANDLE CLHandle, 76 CSSM_HANDLE ResultsHandle, 77 CSSM_DATA_PTR *Value); 78 CSSM_RETURN (CSSMCLI *CertAbortQuery) 79 (CSSM_CL_HANDLE CLHandle, 80 CSSM_HANDLE ResultsHandle); 81 CSSM_RETURN (CSSMCLI *CertGetKeyInfo) 82 (CSSM_CL_HANDLE CLHandle, 83 const CSSM_DATA *Cert, 84 CSSM_KEY_PTR *Key); 85 CSSM_RETURN (CSSMCLI *CertGetAllFields) 86 (CSSM_CL_HANDLE CLHandle, 87 const CSSM_DATA *Cert, 88 uint32 *NumberOfFields, 89 CSSM_FIELD_PTR *CertFields); 90 CSSM_RETURN (CSSMCLI *FreeFields) 91 (CSSM_CL_HANDLE CLHandle, 92 uint32 NumberOfFields, 93 CSSM_FIELD_PTR *FieldArray); 94 CSSM_RETURN (CSSMCLI *FreeFieldValue) 95 (CSSM_CL_HANDLE CLHandle, 96 const CSSM_OID *CertOrCrlOid, 97 CSSM_DATA_PTR Value); 98 CSSM_RETURN (CSSMCLI *CertCache) 99 (CSSM_CL_HANDLE CLHandle, 100 const CSSM_DATA *Cert, 101 CSSM_HANDLE_PTR CertHandle); 102 CSSM_RETURN (CSSMCLI *CertGetFirstCachedFieldValue) 103 (CSSM_CL_HANDLE CLHandle, 104 CSSM_HANDLE CertHandle, 105 const CSSM_OID *CertField, 106 CSSM_HANDLE_PTR ResultsHandle, 107 uint32 *NumberOfMatchedFields, 108 CSSM_DATA_PTR *Value); 109 CSSM_RETURN (CSSMCLI *CertGetNextCachedFieldValue) 110 (CSSM_CL_HANDLE CLHandle, 111 CSSM_HANDLE ResultsHandle, 112 CSSM_DATA_PTR *Value); 113 CSSM_RETURN (CSSMCLI *CertAbortCache) 114 (CSSM_CL_HANDLE CLHandle, 115 CSSM_HANDLE CertHandle); 116 CSSM_RETURN (CSSMCLI *CertGroupToSignedBundle) 117 (CSSM_CL_HANDLE CLHandle, 118 CSSM_CC_HANDLE CCHandle, 119 const CSSM_CERTGROUP *CertGroupToBundle, 120 const CSSM_CERT_BUNDLE_HEADER *BundleInfo, 121 CSSM_DATA_PTR SignedBundle); 122 CSSM_RETURN (CSSMCLI *CertGroupFromVerifiedBundle) 123 (CSSM_CL_HANDLE CLHandle, 124 CSSM_CC_HANDLE CCHandle, 125 const CSSM_CERT_BUNDLE *CertBundle, 126 const CSSM_DATA *SignerCert, 127 CSSM_CERTGROUP_PTR *CertGroup); 128 CSSM_RETURN (CSSMCLI *CertDescribeFormat) 129 (CSSM_CL_HANDLE CLHandle, 130 uint32 *NumberOfFields, 131 CSSM_OID_PTR *OidList); 132 CSSM_RETURN (CSSMCLI *CrlCreateTemplate) 133 (CSSM_CL_HANDLE CLHandle, 134 uint32 NumberOfFields, 135 const CSSM_FIELD *CrlTemplate, 136 CSSM_DATA_PTR NewCrl); 137 CSSM_RETURN (CSSMCLI *CrlSetFields) 138 (CSSM_CL_HANDLE CLHandle, 139 uint32 NumberOfFields, 140 const CSSM_FIELD *CrlTemplate, 141 const CSSM_DATA *OldCrl, 142 CSSM_DATA_PTR ModifiedCrl); 143 CSSM_RETURN (CSSMCLI *CrlAddCert) 144 (CSSM_CL_HANDLE CLHandle, 145 CSSM_CC_HANDLE CCHandle, 146 const CSSM_DATA *Cert, 147 uint32 NumberOfFields, 148 const CSSM_FIELD *CrlEntryFields, 149 const CSSM_DATA *OldCrl, 150 CSSM_DATA_PTR NewCrl); 151 CSSM_RETURN (CSSMCLI *CrlRemoveCert) 152 (CSSM_CL_HANDLE CLHandle, 153 const CSSM_DATA *Cert, 154 const CSSM_DATA *OldCrl, 155 CSSM_DATA_PTR NewCrl); 156 CSSM_RETURN (CSSMCLI *CrlSign) 157 (CSSM_CL_HANDLE CLHandle, 158 CSSM_CC_HANDLE CCHandle, 159 const CSSM_DATA *UnsignedCrl, 160 const CSSM_FIELD *SignScope, 161 uint32 ScopeSize, 162 CSSM_DATA_PTR SignedCrl); 163 CSSM_RETURN (CSSMCLI *CrlVerify) 164 (CSSM_CL_HANDLE CLHandle, 165 CSSM_CC_HANDLE CCHandle, 166 const CSSM_DATA *CrlToBeVerified, 167 const CSSM_DATA *SignerCert, 168 const CSSM_FIELD *VerifyScope, 169 uint32 ScopeSize); 170 CSSM_RETURN (CSSMCLI *CrlVerifyWithKey) 171 (CSSM_CL_HANDLE CLHandle, 172 CSSM_CC_HANDLE CCHandle, 173 const CSSM_DATA *CrlToBeVerified); 174 CSSM_RETURN (CSSMCLI *IsCertInCrl) 175 (CSSM_CL_HANDLE CLHandle, 176 const CSSM_DATA *Cert, 177 const CSSM_DATA *Crl, 178 CSSM_BOOL *CertFound); 179 CSSM_RETURN (CSSMCLI *CrlGetFirstFieldValue) 180 (CSSM_CL_HANDLE CLHandle, 181 const CSSM_DATA *Crl, 182 const CSSM_OID *CrlField, 183 CSSM_HANDLE_PTR ResultsHandle, 184 uint32 *NumberOfMatchedFields, 185 CSSM_DATA_PTR *Value); 186 CSSM_RETURN (CSSMCLI *CrlGetNextFieldValue) 187 (CSSM_CL_HANDLE CLHandle, 188 CSSM_HANDLE ResultsHandle, 189 CSSM_DATA_PTR *Value); 190 CSSM_RETURN (CSSMCLI *CrlAbortQuery) 191 (CSSM_CL_HANDLE CLHandle, 192 CSSM_HANDLE ResultsHandle); 193 CSSM_RETURN (CSSMCLI *CrlGetAllFields) 194 (CSSM_CL_HANDLE CLHandle, 195 const CSSM_DATA *Crl, 196 uint32 *NumberOfCrlFields, 197 CSSM_FIELD_PTR *CrlFields); 198 CSSM_RETURN (CSSMCLI *CrlCache) 199 (CSSM_CL_HANDLE CLHandle, 200 const CSSM_DATA *Crl, 201 CSSM_HANDLE_PTR CrlHandle); 202 CSSM_RETURN (CSSMCLI *IsCertInCachedCrl) 203 (CSSM_CL_HANDLE CLHandle, 204 const CSSM_DATA *Cert, 205 CSSM_HANDLE CrlHandle, 206 CSSM_BOOL *CertFound, 207 CSSM_DATA_PTR CrlRecordIndex); 208 CSSM_RETURN (CSSMCLI *CrlGetFirstCachedFieldValue) 209 (CSSM_CL_HANDLE CLHandle, 210 CSSM_HANDLE CrlHandle, 211 const CSSM_DATA *CrlRecordIndex, 212 const CSSM_OID *CrlField, 213 CSSM_HANDLE_PTR ResultsHandle, 214 uint32 *NumberOfMatchedFields, 215 CSSM_DATA_PTR *Value); 216 CSSM_RETURN (CSSMCLI *CrlGetNextCachedFieldValue) 217 (CSSM_CL_HANDLE CLHandle, 218 CSSM_HANDLE ResultsHandle, 219 CSSM_DATA_PTR *Value); 220 CSSM_RETURN (CSSMCLI *CrlGetAllCachedRecordFields) 221 (CSSM_CL_HANDLE CLHandle, 222 CSSM_HANDLE CrlHandle, 223 const CSSM_DATA *CrlRecordIndex, 224 uint32 *NumberOfFields, 225 CSSM_FIELD_PTR *CrlFields); 226 CSSM_RETURN (CSSMCLI *CrlAbortCache) 227 (CSSM_CL_HANDLE CLHandle, 228 CSSM_HANDLE CrlHandle); 229 CSSM_RETURN (CSSMCLI *CrlDescribeFormat) 230 (CSSM_CL_HANDLE CLHandle, 231 uint32 *NumberOfFields, 232 CSSM_OID_PTR *OidList); 233 CSSM_RETURN (CSSMCLI *PassThrough) 234 (CSSM_CL_HANDLE CLHandle, 235 CSSM_CC_HANDLE CCHandle, 236 uint32 PassThroughId, 237 const void *InputParams, 238 void **OutputParams); 239 } CSSM_SPI_CL_FUNCS DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER, *CSSM_SPI_CL_FUNCS_PTR DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; 240 241 #pragma clang diagnostic pop 242 243 #ifdef __cplusplus 244 } 245 #endif 246 247 #endif /* _CSSMCLI_H_ */