// // Copyright (c) 2002-2011 Apple Inc. All Rights Reserved. // // @APPLE_LICENSE_HEADER_START@ // // This file contains Original Code and/or Modifications of Original Code // as defined in and that are subject to the Apple Public Source License // Version 2.0 (the 'License'). You may not use this file except in // compliance with the License. Please obtain a copy of the License at // http://www.opensource.apple.com/apsl/ and read it before using this // file. // // The Original Code and all software distributed under the License are // distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER // EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, // INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. // Please see the License for the specific language governing rights and // limitations under the License. // // @APPLE_LICENSE_HEADER_END@ // // ocspd.defs: MIG definition of OCSP daemon RPCs // #include #include subsystem ocspd 33003; serverprefix ocsp_server_; userprefix ocsp_client_; import ; import ; type Data = array [] of char; type OSStatus = int32_t; // *** IMPORTANT *** // Always add new routines to the end of the file, // to avoid renumbering of existing routines! // // Normal OCSP request. Depending on contents of encoded SecAsn1OCSPDRequests, // this optionally performs cache lookup, local responder OCSP, and normal // OCSP, in that order. If OCSP response is fetched from the net the netFetch // outParam is true on return. // routine ocspdFetch( requestport serverport : mach_port_t; serveraudittoken sourceAudit: audit_token_t; in ocsp_req : Data; out ocsp_rep : Data); // // Flush all responses associated with specified CertID from cache. // routine ocspdCacheFlush( requestport serverport : mach_port_t; in certID : Data); // // Flush stale OCSP entries from cache. // routine ocspdCacheFlushStale( requestport serverport : mach_port_t); // // Fetch a cert from net. // routine certFetch( requestport serverport : mach_port_t; serveraudittoken sourceAudit: audit_token_t; in cert_url : Data; out cert_data : Data); // // Fetch a CRL from net with optional cache lookup and store. // verify_time only used for cache lookup. // // crl_issuer is optional; it's the normalized issuer of the // CRL to be fetched, used for cache lookup. It is only specified // when client knows that the issuer of the CRL is the same as // the issuer of the cert being verified (i.e., there is no // crlIssuer field in the crlDistributionPoints extension). // routine crlFetch( requestport serverport : mach_port_t; serveraudittoken sourceAudit: audit_token_t; in crl_url : Data; in crl_issuer : Data; in cache_read : boolean_t; in cache_write : boolean_t; in verify_time : Data; out crl_data : Data); // // Refresh CRL cache. // routine crlRefresh( requestport serverport : mach_port_t; in stale_days : uint32_t; in expire_overlap_seconds : uint32_t; in purge_all : boolean_t; in full_crypto_verify : boolean_t); // // Flush CRLs associated with specified URL from cache. // routine crlFlush( requestport serverport : mach_port_t; in cert_url : Data); // // Obtain TrustSettings. The domain argument is a SecTrustSettingsDomain. // routine trustSettingsRead( requestport serverport : mach_port_t; serveraudittoken sourceAudit: audit_token_t; in domain: uint32_t; out trustSettings : Data; out rcode : OSStatus); // // Write TrustSettings to disk. Results in authentication dialog. // routine trustSettingsWrite( requestport serverport : mach_port_t; serveraudittoken sourceAudit: audit_token_t; in clientport: mach_port_t; in domain: uint32_t; in authBlob: Data; in trustSettings : Data; out rcode: OSStatus); // // Get CRL status for given serial number and PEM-encoded issuers, // along with issuer name or distribution point URL. // routine crlStatus( requestport serverport : mach_port_t; in serial_number: Data; in cert_issuers : Data; in crl_issuer : Data; in crl_url : Data);