2 * Copyright (c) 2002 Apple Computer, 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.
18 #include <Security/SecCertificate.h>
20 #include "SecBridge.h"
24 SecCertificateGetTypeID(void)
28 return gTypes().certificate
.typeId
;
30 END_SECAPI1(_kCFRuntimeNotATypeID
)
35 SecCertificateCreateFromData(const CSSM_DATA
*data
, CSSM_CERT_TYPE type
, CSSM_CERT_ENCODING encoding
, SecCertificateRef
*certificate
)
39 RefPointer
<Certificate
> certificatePtr(new Certificate(Required(data
), type
, encoding
));
40 Required(certificate
) = gTypes().certificate
.handle(*certificatePtr
);
47 SecCertificateAddToKeychain(SecCertificateRef certificate
, SecKeychainRef keychain
)
51 Item
item(gTypes().certificate
.required(certificate
));
52 Keychain::optional(keychain
)->add(item
);
58 SecCertificateGetData(SecCertificateRef certificate
, CSSM_DATA_PTR data
)
62 Required(data
) = gTypes().certificate
.required(certificate
)->data();
69 SecCertificateGetType(SecCertificateRef certificate
, CSSM_CERT_TYPE
*certificateType
)
73 Required(certificateType
) = gTypes().certificate
.required(certificate
)->type();
80 SecCertificateGetSubject(SecCertificateRef certificate
, CSSM_X509_NAME
* subject
)
84 gTypes().certificate
.required(certificate
)->getSubject(Required(subject
));
91 SecCertificateGetIssuer(SecCertificateRef certificate
, CSSM_X509_NAME
* issuer
)
95 gTypes().certificate
.required(certificate
)->getIssuer(Required(issuer
));
102 SecCertificateGetCLHandle(SecCertificateRef certificate
, CSSM_CL_HANDLE
*clHandle
)
106 Required(clHandle
) = gTypes().certificate
.required(certificate
)->clHandle();