1 /* -*- Mode: rust; rust-indent-offset: 4 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3  * License, v. 2.0. If a copy of the MPL was not distributed with this
4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 
6 // This was originally generated by rust-bindgen at build time. Later in
7 // development it became clear that using bindgen for this library as part of
8 // mozilla-central would be difficult (if not impossible). So, this was
9 // converted to a static file and unused declarations were removed. Also,
10 // intermediate types added by rust-bindgen were removed for clarity.
11 
12 pub type OSStatus = i32;
13 pub const errSecSuccess: OSStatus = 0;
14 
15 pub type SecKeyAlgorithm = CFStringRef;
16 
17 extern "C" {
18     // Available starting macOS 10.3
SecCertificateGetTypeID() -> CFTypeID19     pub fn SecCertificateGetTypeID() -> CFTypeID;
SecTrustCreateWithCertificates( certificates: SecCertificateRef, policies: SecPolicyRef, trust: *mut SecTrustRef, ) -> OSStatus20     pub fn SecTrustCreateWithCertificates(
21         certificates: SecCertificateRef,
22         policies: SecPolicyRef,
23         trust: *mut SecTrustRef,
24     ) -> OSStatus;
SecIdentityGetTypeID() -> CFTypeID25     pub fn SecIdentityGetTypeID() -> CFTypeID;
SecIdentityCopyCertificate( identityRef: SecIdentityRef, certificateRef: *mut SecCertificateRef, ) -> OSStatus26     pub fn SecIdentityCopyCertificate(
27         identityRef: SecIdentityRef,
28         certificateRef: *mut SecCertificateRef,
29     ) -> OSStatus;
SecIdentityCopyPrivateKey( identityRef: SecIdentityRef, privateKeyRef: *mut SecKeyRef, ) -> OSStatus30     pub fn SecIdentityCopyPrivateKey(
31         identityRef: SecIdentityRef,
32         privateKeyRef: *mut SecKeyRef,
33     ) -> OSStatus;
SecKeyGetTypeID() -> CFTypeID34     pub fn SecKeyGetTypeID() -> CFTypeID;
SecPolicyGetTypeID() -> CFTypeID35     pub fn SecPolicyGetTypeID() -> CFTypeID;
SecTrustGetTypeID() -> CFTypeID36     pub fn SecTrustGetTypeID() -> CFTypeID;
37 
38     // Available starting macOS 10.6
SecCertificateCopyData(certificate: SecCertificateRef) -> CFDataRef39     pub fn SecCertificateCopyData(certificate: SecCertificateRef) -> CFDataRef;
SecCertificateCopySubjectSummary(certificate: SecCertificateRef) -> CFStringRef40     pub fn SecCertificateCopySubjectSummary(certificate: SecCertificateRef) -> CFStringRef;
SecItemCopyMatching(query: CFDictionaryRef, result: *mut CFTypeRef) -> OSStatus41     pub fn SecItemCopyMatching(query: CFDictionaryRef, result: *mut CFTypeRef) -> OSStatus;
SecPolicyCreateSSL(server: bool, hostname: CFStringRef) -> SecPolicyRef42     pub fn SecPolicyCreateSSL(server: bool, hostname: CFStringRef) -> SecPolicyRef;
43     pub static kSecClass: CFStringRef;
44     pub static kSecAttrKeyType: CFStringRef;
45     pub static kSecAttrKeySizeInBits: CFStringRef;
46     pub static kSecMatchLimit: CFStringRef;
47     pub static kSecMatchLimitAll: CFStringRef;
48     pub static kSecReturnRef: CFStringRef;
49 
50     // Available starting macOS 10.7
SecTrustGetCertificateAtIndex(trust: SecTrustRef, ix: CFIndex) -> SecCertificateRef51     pub fn SecTrustGetCertificateAtIndex(trust: SecTrustRef, ix: CFIndex) -> SecCertificateRef;
SecTrustGetCertificateCount(trust: SecTrustRef) -> CFIndex52     pub fn SecTrustGetCertificateCount(trust: SecTrustRef) -> CFIndex;
53     pub static kSecClassIdentity: CFStringRef;
54     pub static kSecAttrKeyTypeRSA: CFStringRef;
55 
56     // Available starting macOS 10.9
SecTrustSetNetworkFetchAllowed(trust: SecTrustRef, allowFetch: Boolean) -> OSStatus57     pub fn SecTrustSetNetworkFetchAllowed(trust: SecTrustRef, allowFetch: Boolean) -> OSStatus;
58 }
59