]> git.saurik.com Git - apple/security.git/blob - trust/SecTrustPriv.h
441b02202226306cd3ac2949000a41f443ab0da9
[apple/security.git] / trust / SecTrustPriv.h
1 /*
2 * Copyright (c) 2003-2016 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
24 /*!
25 @header SecTrustPriv
26 The functions and data types in SecTrustPriv implement trust computation
27 and allow the user to apply trust decisions to the trust configuration.
28 */
29
30 #ifndef _SECURITY_SECTRUSTPRIV_H_
31 #define _SECURITY_SECTRUSTPRIV_H_
32
33 #include <Security/SecTrust.h>
34 #include <CoreFoundation/CFString.h>
35 #include <CoreFoundation/CFData.h>
36 #include <CoreFoundation/CFDictionary.h>
37
38 __BEGIN_DECLS
39
40 CF_ASSUME_NONNULL_BEGIN
41 CF_IMPLICIT_BRIDGING_ENABLED
42
43 /* Constants used as keys in property lists. See
44 SecTrustCopySummaryPropertiesAtIndex for more information. */
45 extern const CFStringRef kSecPropertyKeyType;
46 extern const CFStringRef kSecPropertyKeyLabel;
47 extern const CFStringRef kSecPropertyKeyLocalizedLabel;
48 extern const CFStringRef kSecPropertyKeyValue;
49
50 extern const CFStringRef kSecPropertyTypeWarning;
51 extern const CFStringRef kSecPropertyTypeSuccess;
52 extern const CFStringRef kSecPropertyTypeSection;
53 extern const CFStringRef kSecPropertyTypeData;
54 extern const CFStringRef kSecPropertyTypeString;
55 extern const CFStringRef kSecPropertyTypeURL;
56 extern const CFStringRef kSecPropertyTypeDate;
57
58 /* Constants used as keys in the dictionary returned by SecTrustCopyInfo. */
59 extern const CFStringRef kSecTrustInfoExtendedValidationKey;
60 extern const CFStringRef kSecTrustInfoCompanyNameKey;
61 extern const CFStringRef kSecTrustInfoRevocationKey;
62 extern const CFStringRef kSecTrustInfoRevocationValidUntilKey;
63 extern const CFStringRef kSecTrustInfoCertificateTransparencyKey;
64 extern const CFStringRef kSecTrustInfoCertificateTransparencyWhiteListKey;
65
66 /*!
67 @enum Trust Result Constants
68 @discussion Predefined key constants used to obtain values in a
69 dictionary of trust evaluation results for a certificate chain,
70 as retrieved from a call to SecTrustCopyResult.
71
72 @constant kSecTrustResultDetails
73 This key will be present if a trust evaluation has been performed.
74 Its value is a CFArrayRef of CFDictionaryRef representing detailed
75 status info for each certificate in the completed chain.
76 @constant kSecTrustRevocationReason
77 This key will be present iff this chain had its revocation checked,
78 and a "revoked" response was received. The value of this key will
79 be a CFNumberRef indicating the reason for revocation. The possible
80 reason code values are described in RFC 5280, section 5.3.1.
81 */
82 extern const CFStringRef kSecTrustResultDetails;
83 /*__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_9_0);*/
84 extern const CFStringRef kSecTrustRevocationReason;
85 /*__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0);*/
86
87 /*!
88 @function SecTrustCopySummaryPropertiesAtIndex
89 @abstract Return a property array for the certificate.
90 @param trust A reference to the trust object to evaluate.
91 @param ix The index of the requested certificate. Indices run from 0
92 (leaf) to the anchor (or last certificate found if no anchor was found).
93 @result A property array. It is the caller's responsibility to CFRelease
94 the returned array when it is no longer needed. This function returns a
95 short summary description of the certificate in question. The property
96 at index 0 of the array might also include general information about the
97 entire chain's validity in the context of this trust evaluation.
98
99 @discussion Returns a property array for this trust certificate. A property
100 array is an array of CFDictionaryRefs. Each dictionary (we call it a
101 property for short) has the following keys:
102
103 kSecPropertyKeyType This key's value determines how this property
104 should be displayed. Its associated value is one of the
105 following:
106 kSecPropertyTypeWarning
107 The kSecPropertyKeyLocalizedLabel and kSecPropertyKeyLabel keys are not
108 set. The kSecPropertyKeyValue is a CFStringRef which should
109 be displayed in yellow with a warning triangle.
110 kSecPropertyTypeError
111 The kSecPropertyKeyLocalizedLabel and kSecPropertyKeyLabel keys are not
112 set. The kSecPropertyKeyValue is a CFStringRef which should
113 be displayed in red with an error X.
114 kSecPropertyTypeSuccess
115 The kSecPropertyKeyLocalizedLabel and kSecPropertyKeyLabel keys are not
116 set. The kSecPropertyKeyValue is a CFStringRef which should
117 be displayed in green with a checkmark in front of it.
118 kSecPropertyTypeTitle
119 The kSecPropertyKeyLocalizedLabel and kSecPropertyKeyLabel keys are not
120 set. The kSecPropertyKeyValue is a CFStringRef which should
121 be displayed in a larger bold font.
122 kSecPropertyTypeSection
123 The optional kSecPropertyKeyLocalizedLabel is a CFStringRef with the name
124 of the next section to display. The value of the
125 kSecPropertyKeyValue key is a CFArrayRef which is a property
126 array as defined here.
127 kSecPropertyTypeData
128 The optional kSecPropertyKeyLocalizedLabel is a CFStringRef containing
129 the localized label for the value for the kSecPropertyKeyValue.
130 The type of this value is a CFDataRef. Its contents should be
131 displayed as: "bytes length_of_data : hexdump_of_data". Ideally
132 the UI will only show one line of hex dump data and have a
133 disclosure arrow to see the remainder.
134 kSecPropertyTypeString
135 The optional kSecPropertyKeyLocalizedLabel is a CFStringRef containing
136 the localized label for the value for the kSecPropertyKeyValue.
137 The type of this value is a CFStringRef. It's contents should be
138 displayed in the normal font.
139 kSecPropertyTypeURL
140 The optional kSecPropertyKeyLocalizedLabel is a CFStringRef containing
141 the localized label for the value for the kSecPropertyKeyValue.
142 The type of this value is a CFURLRef. It's contents should be
143 displayed as a hyperlink.
144 kSecPropertyTypeDate
145 The optional kSecPropertyKeyLocalizedLabel is a CFStringRef containing
146 the localized label for the value for the kSecPropertyKeyValue.
147 The type of this value is a CFDateRef. It's contents should be
148 displayed in human readable form (probably in the current
149 timezone).
150 kSecPropertyKeyLocalizedLabel
151 Human readable localized label for a given property.
152 kSecPropertyKeyValue
153 See description of kSecPropertyKeyType to determine what the value
154 for this key is.
155 kSecPropertyKeyLabel
156 Non localized key (label) for this value. This is only
157 present for properties with fixed label names.
158 @result A property array. It is the caller's responsability to CFRelease
159 the returned array when it is no longer needed.
160 */
161 __nullable CF_RETURNS_RETAINED
162 CFArrayRef SecTrustCopySummaryPropertiesAtIndex(SecTrustRef trust, CFIndex ix);
163
164 /*!
165 @function SecTrustCopyDetailedPropertiesAtIndex
166 @abstract Return a property array for the certificate.
167 @param trust A reference to the trust object to evaluate.
168 @param ix The index of the requested certificate. Indices run from 0
169 (leaf) to the anchor (or last certificate found if no anchor was found).
170 @result A property array. It is the caller's responsibility to CFRelease
171 the returned array when it is no longer needed.
172 See SecTrustCopySummaryPropertiesAtIndex on how to intepret this array.
173 Unlike that function call this function returns a detailed description
174 of the certificate in question.
175 */
176 __nullable CF_RETURNS_RETAINED
177 CFArrayRef SecTrustCopyDetailedPropertiesAtIndex(SecTrustRef trust, CFIndex ix);
178
179 /*!
180 @function SecTrustCopyInfo
181 @abstract Return a dictionary with additional information about the
182 evaluated certificate chain for use by clients.
183 @param trust A reference to an evaluated trust object.
184 @discussion Returns a dictionary for this trust evaluation. This
185 dictionary may have the following keys:
186
187 kSecTrustInfoExtendedValidationKey this key will be present and have
188 a value of kCFBooleanTrue if this chain was validated for EV.
189 kSecTrustInfoCompanyNameKey Company name field of subject of leaf
190 certificate, this field is meant to be displayed to the user
191 if the kSecTrustInfoExtendedValidationKey is present.
192 kSecTrustInfoRevocationKey this key will be present iff this chain
193 had its revocation checked. The value will be a kCFBooleanTrue
194 if revocation checking was successful and none of the
195 certificates in the chain were revoked.
196 The value will be kCFBooleanFalse if no current revocation status
197 could be obtained for one or more certificates in the chain due
198 to connection problems or timeouts etc. This is a hint to a
199 client to retry revocation checking at a later time.
200 kSecTrustInfoRevocationValidUntilKey this key will be present iff
201 kSecTrustInfoRevocationKey has a value of kCFBooleanTrue.
202 The value will be a CFDateRef representing the earliest date at
203 which the revocation info for one of the certificates in this chain
204 might change.
205
206 @result A dictionary with various fields that can be displayed to the user,
207 or NULL if no additional info is available or the trust has not yet been
208 validated. The caller is responsible for calling CFRelease on the value
209 returned when it is no longer needed.
210 */
211 __nullable CF_RETURNS_RETAINED
212 CFDictionaryRef SecTrustCopyInfo(SecTrustRef trust);
213
214 /* For debugging purposes. */
215 __nullable
216 CFArrayRef SecTrustGetDetails(SecTrustRef trust);
217
218 __nullable CF_RETURNS_RETAINED
219 CFArrayRef SecTrustCopyFilteredDetails(SecTrustRef trust);
220
221 /* For debugging purposes. */
222 __nullable CF_RETURNS_RETAINED
223 CFStringRef SecTrustCopyFailureDescription(SecTrustRef trust);
224
225 OSStatus SecTrustGetOTAPKIAssetVersionNumber(int* versionNumber);
226
227 OSStatus SecTrustOTAPKIGetUpdatedAsset(int* didUpdateAsset);
228
229 /*!
230 @function SecTrustSignedCertificateTimestampList
231 @abstract Attach SignedCertificateTimestampList data to a trust object.
232 @param trust A reference to a trust object.
233 @param sctArray is a CFArray of CFData objects each containing a SCT (per RFC 6962).
234 @result A result code. See "Security Error Codes" (SecBase.h).
235 @discussion Allows the caller to provide SCT data (which may be
236 obtained during a TLS/SSL handshake, per RFC 6962) as input to a trust
237 evaluation.
238 */
239 OSStatus SecTrustSetSignedCertificateTimestamps(SecTrustRef trust, CFArrayRef sctArray);
240
241 /*!
242 @function SecTrustSetTrustedLogs
243 @abstract Sets the trusted CT logs for a given trust.
244 @param trust A reference to a trust object.
245 @param trustedLogs An array of trusted logs.
246 @result A result code. See "Security Error Codes" (SecBase.h).
247 @discussion trustedLog is a CFArray of CFData containing the DER-encode SubjectPublicKeyInfo
248 of the trusted CT logs.
249 */
250 OSStatus SecTrustSetTrustedLogs(SecTrustRef trust, CFArrayRef trustedLogs);
251
252 /* Keychain searches are allowed by default. Use this to turn off seaching of
253 -keychain search list (i.e. login.keychain, system.keychain)
254 -Local Items/iCloud Keychain
255 -user- and admin-trusted roots
256 -network-fetched issuers
257 User must provide all necessary certificates in the input certificates and/or anchors. */
258 OSStatus SecTrustSetKeychainsAllowed(SecTrustRef trust, Boolean allowed)
259 __OSX_AVAILABLE(__MAC_10_12) __IOS_AVAILABLE(__IPHONE_10_0) __TVOS_AVAILABLE(__TVOS_10_0) __WATCHOS_AVAILABLE(__WATCHOS_3_0);
260
261 /* Get the keychain search policy for the trust object. */
262 OSStatus SecTrustGetKeychainsAllowed(SecTrustRef trust, Boolean * __nonnull allowed)
263 __OSX_AVAILABLE(__MAC_10_12) __IOS_AVAILABLE(__IPHONE_10_0) __TVOS_AVAILABLE(__TVOS_10_0) __WATCHOS_AVAILABLE(__WATCHOS_3_0);
264
265 /*!
266 @function SecTrustEvaluateLeafOnly
267 @abstract Evaluates the leaf of the trust reference synchronously.
268 @param trust A reference to the trust object to evaluate.
269 @param result A pointer to a result type.
270 @result A result code. See "Security Error Codes" (SecBase.h).
271 @discussion This function will only evaluate the trust of the leaf certificate.
272 No chain will be built and only those aspects of the SecPolicyRef that address
273 the expected contents of the leaf will be checked. This function does not honor
274 any set exceptions or usage constraints.
275 */
276 OSStatus SecTrustEvaluateLeafOnly(SecTrustRef trust, SecTrustResultType * __nonnull result)
277 __OSX_AVAILABLE(__MAC_10_12) __IOS_AVAILABLE(__IPHONE_10_0) __TVOS_AVAILABLE(__TVOS_10_0) __WATCHOS_AVAILABLE(__WATCHOS_3_0);
278
279 /*!
280 @function SecTrustSerialize
281 @abstract Creates a serialized version of the trust object
282 @param trust A reference to the trust object to serialize.
283 @param error A pointer to an error.
284 @result The serialized trust object.
285 @discussion This function is intended to be used to share SecTrustRefs between
286 processes. Saving the results to disk or sending them over network channels
287 may cause unexpected behavior.
288 */
289 __nullable CF_RETURNS_RETAINED
290 CFDataRef SecTrustSerialize(SecTrustRef trust, CFErrorRef *error)
291 __OSX_AVAILABLE(__MAC_10_12) __IOS_AVAILABLE(__IPHONE_10_0) __TVOS_AVAILABLE(__TVOS_10_0) __WATCHOS_AVAILABLE(__WATCHOS_3_0);
292
293 /*!
294 @function SecTrustDeserialize
295 @abstract Creates a trust object from the serialized data
296 @param serializedTrust A reference to the serialized trust object
297 @param error A pointer to an error.
298 @result A trust object
299 @discussion This function is intended to be used to share SecTrustRefs between
300 processes. Saving the results to disk or sending them over network channels
301 may cause unexpected behavior.
302 */
303 __nullable CF_RETURNS_RETAINED
304 SecTrustRef SecTrustDeserialize(CFDataRef serializedTrust, CFErrorRef *error)
305 __OSX_AVAILABLE(__MAC_10_12) __IOS_AVAILABLE(__IPHONE_10_0) __TVOS_AVAILABLE(__TVOS_10_0) __WATCHOS_AVAILABLE(__WATCHOS_3_0);
306
307 /*!
308 @function SecTrustGetTrustExceptionsArray
309 @abstract Return the exceptions array currently set in the trust object
310 @param trust A reference to the trust object
311 @result The array of exceptions.
312 @discussion This function returns an array of exceptions that was previously set
313 using SecTrustSetExceptions, unlike SecTrustCopyExceptions which returns the
314 exceptions which could be set using SecTrustSetExceptions.
315 */
316 __nullable CFArrayRef SecTrustGetTrustExceptionsArray(SecTrustRef trust)
317 __OSX_AVAILABLE(__MAC_10_12) __IOS_AVAILABLE(__IPHONE_10_0) __TVOS_AVAILABLE(__TVOS_10_0) __WATCHOS_AVAILABLE(__WATCHOS_3_0);
318
319 /*!
320 @function SecTrustCopyInputCertificates
321 @abstract Return the array of certificates currently set in the trust object
322 @param trust A reference to the trust object
323 @param certificates On return, an array of the certificates used by this trust.
324 Call the CFRelease function to release this reference.
325 @result A result code. See "Security Error Codes" (SecBase.h)
326 */
327 OSStatus SecTrustCopyInputCertificates(SecTrustRef trust, CFArrayRef * _Nonnull CF_RETURNS_RETAINED certificates)
328 __OSX_AVAILABLE(10.12.4) __IOS_AVAILABLE(10.3) __TVOS_AVAILABLE(10.2) __WATCHOS_AVAILABLE(3.2);
329
330 /*!
331 @function SecTrustAddToInputCertificates
332 @abstract Add certificate(s) to the currently set certificates in the trust object
333 @param trust A reference to the trust object
334 @param certificates The group of certificates to add. This can either be a CFArrayRef
335 of SecCertificateRef objects or a single SecCertificateRef.
336 @result A result code. See "Security Error Codes" (SecBase.h)
337 */
338 OSStatus SecTrustAddToInputCertificates(SecTrustRef trust, CFTypeRef _Nonnull certificates)
339 __OSX_AVAILABLE(10.12.4) __IOS_AVAILABLE(10.3) __TVOS_AVAILABLE(10.2) __WATCHOS_AVAILABLE(3.2);
340
341 CF_IMPLICIT_BRIDGING_DISABLED
342 CF_ASSUME_NONNULL_END
343
344 /*
345 * Legacy functions (OS X only)
346 */
347 #if TARGET_OS_MAC && !TARGET_OS_IPHONE
348
349 CF_ASSUME_NONNULL_BEGIN
350 CF_IMPLICIT_BRIDGING_ENABLED
351
352 #if SEC_OS_IPHONE
353 #pragma clang diagnostic push
354 #pragma clang diagnostic ignored "-Wfour-char-constants"
355 #endif /* SEC_OS_IPHONE */
356 /*
357 unique keychain item attributes for user trust records.
358 */
359 enum {
360 kSecTrustCertAttr = 'tcrt',
361 kSecTrustPolicyAttr = 'tpol',
362 /* Leopard and later */
363 kSecTrustPubKeyAttr = 'tpbk',
364 kSecTrustSignatureAttr = 'tsig'
365 };
366
367 #if SEC_OS_IPHONE
368 #pragma clang diagnostic pop
369 #endif /* SEC_OS_IPHONE */
370
371 /*!
372 @function SecTrustGetUserTrust
373 @abstract Gets the user-specified trust settings of a certificate and policy.
374 @param certificate A reference to a certificate.
375 @param policy A reference to a policy.
376 @param trustSetting On return, a pointer to the user specified trust settings.
377 @result A result code. See "Security Error Codes" (SecBase.h).
378 @availability Mac OS X version 10.4. Deprecated in Mac OS X version 10.5.
379 */
380 OSStatus SecTrustGetUserTrust(SecCertificateRef __nullable certificate, SecPolicyRef __nullable policy, SecTrustUserSetting * __nullable trustSetting)
381 __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_5, __IPHONE_NA, __IPHONE_NA);
382
383 /*!
384 @function SecTrustSetUserTrust
385 @abstract Sets the user-specified trust settings of a certificate and policy.
386 @param certificate A reference to a certificate.
387 @param policy A reference to a policy.
388 @param trustSetting The user-specified trust settings.
389 @result A result code. See "Security Error Codes" (SecBase.h).
390 @availability Mac OS X version 10.4. Deprecated in Mac OS X version 10.5.
391 @discussion as of Mac OS version 10.5, this will result in a call to
392 SecTrustSettingsSetTrustSettings().
393 */
394 OSStatus SecTrustSetUserTrust(SecCertificateRef __nullable certificate, SecPolicyRef __nullable policy, SecTrustUserSetting trustSetting)
395 __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_5, __IPHONE_NA, __IPHONE_NA);
396
397 /*!
398 @function SecTrustSetUserTrustLegacy
399 @abstract Sets the user-specified trust settings of a certificate and policy.
400 @param certificate A reference to a certificate.
401 @param policy A reference to a policy.
402 @param trustSetting The user-specified trust settings.
403 @result A result code. See "Security Error Codes" (SecBase.h).
404
405 @This is the private version of what used to be SecTrustSetUserTrust(); it operates
406 on UserTrust entries as that function used to. The current SecTrustSetUserTrust()
407 function operated on Trust Settings.
408 */
409 OSStatus SecTrustSetUserTrustLegacy(SecCertificateRef __nullable certificate, SecPolicyRef __nullable policy, SecTrustUserSetting trustSetting)
410 __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_12, __IPHONE_NA, __IPHONE_NA);
411
412 /*!
413 @function SecTrustGetCSSMAnchorCertificates
414 @abstract Retrieves the CSSM anchor certificates.
415 @param cssmAnchors A pointer to an array of anchor certificates.
416 @param cssmAnchorCount A pointer to the number of certificates in anchors.
417 @result A result code. See "Security Error Codes" (SecBase.h).
418 @availability Mac OS X version 10.4. Deprecated in Mac OS X version 10.5.
419 */
420 OSStatus SecTrustGetCSSMAnchorCertificates(const CSSM_DATA * __nullable * __nullable cssmAnchors, uint32 *cssmAnchorCount)
421 __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_5, __IPHONE_NA, __IPHONE_NA);
422
423 /*!
424 @function SecTrustCopyExtendedResult
425 @abstract Gets the extended trust result after an evaluation has been performed.
426 @param trust A trust reference.
427 @param result On return, result points to a CFDictionaryRef containing extended trust results (if no error occurred).
428 The caller is responsible for releasing this dictionary with CFRelease when finished with it.
429 @result A result code. See "Security Error Codes" (SecBase.h).
430 @discussion This function may only be used after SecTrustEvaluate has been called for the trust reference, otherwise
431 errSecTrustNotAvailable is returned. If the certificate is not an extended validation certificate, there is
432 no extended result data and errSecDataNotAvailable is returned. Currently, only one dictionary key is defined
433 (kSecEVOrganizationName).
434
435 Note: this function will be deprecated in a future release of OS X. Your
436 code should use SecTrustCopyResult to obtain the trust results dictionary.
437 */
438 OSStatus SecTrustCopyExtendedResult(SecTrustRef trust, CFDictionaryRef * __nonnull CF_RETURNS_RETAINED result)
439 __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_12, __IPHONE_NA, __IPHONE_NA);
440
441 /*
442 * Preference-related strings for Revocation policies.
443 */
444
445 /*
446 * Preference domain, i.e., the name of a plist in ~/Library/Preferences or in
447 * /Library/Preferences
448 */
449 #define kSecRevocationDomain "com.apple.security.revocation"
450
451 /* OCSP and CRL style keys, followed by values used for both of them */
452 #define kSecRevocationOcspStyle CFSTR("OCSPStyle")
453 #define kSecRevocationCrlStyle CFSTR("CRLStyle")
454 #define kSecRevocationOff CFSTR("None")
455 #define kSecRevocationBestAttempt CFSTR("BestAttempt")
456 #define kSecRevocationRequireIfPresent CFSTR("RequireIfPresent")
457 #define kSecRevocationRequireForAll CFSTR("RequireForAll")
458
459 /* Which first if both enabled? */
460 #define kSecRevocationWhichFirst CFSTR("RevocationFirst")
461 #define kSecRevocationOcspFirst CFSTR("OCSP")
462 #define kSecRevocationCrlFirst CFSTR("CRL")
463
464 /* boolean: A "this policy is sufficient per cert" for each */
465 #define kSecRevocationOCSPSufficientPerCert CFSTR("OCSPSufficientPerCert")
466 #define kSecRevocationCRLSufficientPerCert CFSTR("CRLSufficientPerCert")
467
468 /* local OCSP responder URI, value arbitrary string value */
469 #define kSecOCSPLocalResponder CFSTR("OCSPLocalResponder")
470
471 /* Extended trust result keys (now in public API) */
472 #define kSecEVOrganizationName kSecTrustOrganizationName
473 #define kSecTrustExpirationDate kSecTrustRevocationValidUntilDate
474
475 CF_IMPLICIT_BRIDGING_DISABLED
476 CF_ASSUME_NONNULL_END
477
478 #endif /* TARGET_OS_MAC && !TARGET_OS_IPHONE */
479
480 __END_DECLS
481
482 #endif /* !_SECURITY_SECTRUSTPRIV_H_ */