]> git.saurik.com Git - apple/security.git/blob - Keychain/SecPolicySearch.h
Security-176.tar.gz
[apple/security.git] / Keychain / SecPolicySearch.h
1 /*
2 * Copyright (c) 2002 Apple Computer, Inc. All Rights Reserved.
3 *
4 * The contents of this file constitute Original Code as defined in and are
5 * subject to the Apple Public Source License Version 1.2 (the 'License').
6 * You may not use this file except in compliance with the License. Please obtain
7 * a copy of the License at http://www.apple.com/publicsource and read it before
8 * using this file.
9 *
10 * This Original Code and all software distributed under the License are
11 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS
12 * OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
13 * LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 * PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. Please see the License for the
15 * specific language governing rights and limitations under the License.
16 */
17
18 /*!
19 @header SecPolicySearch
20 The functions provided in SecPolicySearch implement a query for SecPolicy objects.
21 */
22
23 #ifndef _SECURITY_SECPOLICYSEARCH_H_
24 #define _SECURITY_SECPOLICYSEARCH_H_
25
26 #include <Security/SecBase.h>
27 #include <Security/cssmtype.h>
28
29
30 #if defined(__cplusplus)
31 extern "C" {
32 #endif
33
34 /*!
35 @typedef SecPolicySearchRef
36 @abstract A reference to an opaque policy search structure.
37 */
38 typedef struct OpaquePolicySearchRef *SecPolicySearchRef;
39
40 /*!
41 @function SecPolicySearchGetTypeID
42 @abstract Returns the type identifier of SecPolicySearch instances.
43 @result The CFTypeID of SecPolicySearch instances.
44 */
45 CFTypeID SecPolicySearchGetTypeID(void);
46
47 /*!
48 @function SecPolicySearchCreate
49 @abstract Creates a search reference for finding a policy by specifying its object identifier.
50 @param certType The type of certificates a policy uses.
51 @param policyOID A pointer to a BER-encoded policy object identifier that uniquely specifies the policy.
52 @param value A pointer to an optional policy-defined value. The contents of this value depend on the policy object identifier defined.
53 @param searchRef On return, a pointer to a policy search reference. The policy search reference is used for subsequent calls to the SecCopyNextPolicy function to obtain the remaining trust policies. You are responsible for releasing the search reference by calling the CFRelease function when finished with it.
54 @result A result code. See "Security Error Codes" (SecBase.h).
55 */
56 OSStatus SecPolicySearchCreate(CSSM_CERT_TYPE certType, const CSSM_OID *policyOID, const CSSM_DATA *value, SecPolicySearchRef *searchRef);
57
58 /*!
59 @function SecPolicySearchCopyNext
60 @abstract Finds the next policy matching the given search criteria
61 @param searchRef A reference to the current policy search criteria. You create the policy search reference by a calling the SecPolicySearchCreate function. You are responsible for releasing the policy by calling the CFRelease function when finished with it.
62 @param policyRef On return, a pointer to a policy reference.
63 @result A result code. When there are no more policies that match the parameters specified to SecPolicySearchCreate, errSecPolicyNotFound is returned. See "Security Error Codes" (SecBase.h).
64 */
65 OSStatus SecPolicySearchCopyNext(SecPolicySearchRef searchRef, SecPolicyRef *policyRef);
66
67 #if defined(__cplusplus)
68 }
69 #endif
70
71 #endif /* !_SECURITY_SECPOLICY_H_ */