]>
git.saurik.com Git - apple/security.git/blob - OSX/libsecurity_cdsa_client/lib/tpclient.cpp
2 * Copyright (c) 2000-2002,2011,2014 Apple Inc. All Rights Reserved.
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
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.
20 // tpclient - client interface to CSSM TPs and their operations
22 #include <security_cdsa_client/tpclient.h>
25 namespace CssmClient
{
29 // Manage TP attachments
31 TPImpl::TPImpl(const Guid
&guid
)
32 : AttachmentImpl(guid
, CSSM_SERVICE_TP
), mUseCL(NULL
), mUseCSP(NULL
),
33 mOwnCL(false), mOwnCSP(false)
37 TPImpl::TPImpl(const Module
&module)
38 : AttachmentImpl(module, CSSM_SERVICE_TP
), mUseCL(NULL
), mUseCSP(NULL
),
39 mOwnCL(false), mOwnCSP(false)
55 void TPImpl::certGroupVerify(const CertGroup
&certGroup
,
56 const TPVerifyContext
&context
,
57 TPVerifyResult
*result
)
61 check(CSSM_TP_CertGroupVerify(handle(), (*mUseCL
)->handle(), (*mUseCSP
)->handle(),
62 &certGroup
, &context
, result
));
67 // Initialize auxiliary modules for operation
69 void TPImpl::setupCL()
72 secinfo("tpclient", "TP is auto-attaching supporting CL");
73 mUseCL
= new CL(gGuidAppleX509CL
);
78 void TPImpl::setupCSP()
80 if (mUseCSP
== NULL
) {
81 secinfo("tpclient", "TP is auto-attaching supporting CSP");
82 mUseCSP
= new CSP(gGuidAppleCSP
);
87 void TPImpl::use(CL
&cl
)
95 void TPImpl::use(CSP
&csp
)
109 CSP
&TPImpl::usedCSP()
117 // A TPBuildVerifyContext
119 TPBuildVerifyContext::TPBuildVerifyContext(CSSM_TP_ACTION action
, Allocator
&alloc
)
122 // clear out the PODs
124 mCallerAuth
.clearPod();
125 mDlDbList
.clearPod();
127 // set initial elements
129 callerAuthPtr(&mCallerAuth
);
130 mCallerAuth
.dlDbList() = &mDlDbList
;
134 } // end namespace CssmClient
135 } // end namespace Security