Source code

Revision control

Copy as Markdown

Other Tools

/* -*- Mode: rust; rust-indent-offset: 4 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// This was originally generated by rust-bindgen at build time. Later in
// development it became clear that using bindgen for this library as part of
// mozilla-central would be difficult (if not impossible). So, this was
// converted to a static file and unused declarations were removed. Also,
// intermediate types added by rust-bindgen were removed for clarity.
pub type OSStatus = i32;
pub const errSecSuccess: OSStatus = 0;
pub const errSecItemNotFound: OSStatus = -25300;
pub type SecKeyAlgorithm = CFStringRef;
extern "C" {
// Available starting macOS 10.3
pub fn SecCertificateGetTypeID() -> CFTypeID;
pub fn SecTrustCreateWithCertificates(
certificates: SecCertificateRef,
policies: SecPolicyRef,
trust: *mut SecTrustRef,
) -> OSStatus;
pub fn SecIdentityGetTypeID() -> CFTypeID;
pub fn SecIdentityCopyCertificate(
identityRef: SecIdentityRef,
certificateRef: *mut SecCertificateRef,
) -> OSStatus;
pub fn SecIdentityCopyPrivateKey(
identityRef: SecIdentityRef,
privateKeyRef: *mut SecKeyRef,
) -> OSStatus;
pub fn SecKeyGetTypeID() -> CFTypeID;
pub fn SecPolicyGetTypeID() -> CFTypeID;
pub fn SecTrustGetTypeID() -> CFTypeID;
// Available starting macOS 10.6
pub fn SecCertificateCopyData(certificate: SecCertificateRef) -> CFDataRef;
pub fn SecCertificateCopySubjectSummary(certificate: SecCertificateRef) -> CFStringRef;
pub fn SecItemCopyMatching(query: CFDictionaryRef, result: *mut CFTypeRef) -> OSStatus;
pub fn SecPolicyCreateSSL(server: bool, hostname: CFStringRef) -> SecPolicyRef;
pub static kSecClass: CFStringRef;
pub static kSecAttrKeyType: CFStringRef;
pub static kSecAttrKeySizeInBits: CFStringRef;
pub static kSecMatchLimit: CFStringRef;
pub static kSecMatchLimitAll: CFStringRef;
pub static kSecReturnRef: CFStringRef;
// Available starting macOS 10.7
pub fn SecTrustGetCertificateAtIndex(trust: SecTrustRef, ix: CFIndex) -> SecCertificateRef;
pub fn SecTrustGetCertificateCount(trust: SecTrustRef) -> CFIndex;
pub static kSecClassIdentity: CFStringRef;
pub static kSecAttrKeyTypeRSA: CFStringRef;
// Available starting macOS 10.9
pub fn SecTrustSetNetworkFetchAllowed(trust: SecTrustRef, allowFetch: Boolean) -> OSStatus;
// Available starting macOS 10.12
pub fn SecKeyCreateSignature(
key: SecKeyRef,
algorithm: SecKeyAlgorithm,
data: CFDataRef,
err: *mut CFErrorRef,
) -> CFDataRef;
pub fn SecKeyCopyAttributes(key: SecKeyRef) -> CFDictionaryRef;
pub fn SecKeyCopyExternalRepresentation(key: SecKeyRef, err: *mut CFErrorRef) -> CFDataRef;
pub static kSecKeyAlgorithmECDSASignatureDigestX962SHA1: CFStringRef;
pub static kSecKeyAlgorithmECDSASignatureDigestX962SHA256: CFStringRef;
pub static kSecKeyAlgorithmECDSASignatureDigestX962SHA384: CFStringRef;
pub static kSecKeyAlgorithmECDSASignatureDigestX962SHA512: CFStringRef;
pub static kSecKeyAlgorithmRSASignatureDigestPKCS1v15Raw: CFStringRef;
pub static kSecKeyAlgorithmRSASignatureDigestPKCS1v15SHA256: CFStringRef;
pub static kSecKeyAlgorithmRSASignatureDigestPKCS1v15SHA384: CFStringRef;
pub static kSecKeyAlgorithmRSASignatureDigestPKCS1v15SHA512: CFStringRef;
pub static kSecKeyAlgorithmRSASignatureDigestPKCS1v15SHA1: CFStringRef;
pub static kSecAttrKeyTypeECSECPrimeRandom: CFStringRef;
}