2 * Copyright (c) 2003 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.
22 * Created by john on Mon Jul 14 2003.
26 #include <Security/SecBase.h>
27 #include <CoreFoundation/CFURL.h>
37 OSStatus
mount(CFStringRef password
, CFURLRef certificate
, CFURLRef dmgin
,
38 CFURLRef mountpoint
,CFStringRef
*devicepath
);
39 OSStatus
mastermount(CFURLRef dmgin
, CFURLRef mountpoint
, CFStringRef
*devicepath
);
40 OSStatus
unmount(CFURLRef mountpoint
,CFStringRef devicepath
);
42 OSStatus
userChangePassword(CFStringRef password
, CFStringRef devicepath
);
43 OSStatus
makeMasterPassword(CFStringRef masterPasswordPassword
, SecKeychainRef
*keychain
);
44 OSStatus
create(CFStringRef password
, CFURLRef certificate
, CFURLRef dmgout
,
45 CFStringRef volumeName
, CFStringRef sizeSpec
);
46 Boolean
masterPasswordEnabled(SecKeychainRef
*keychainRef
);
47 OSStatus
changeMasterPasswordPassword(CFStringRef oldPassword
,CFStringRef newPassword
);
49 OSStatus
getCertificate(CFURLRef
*certificate
);
52 CFStringRef
extractDevicepath(const ExecCLITool
& rt
);
53 const char *getKeychainPath();
54 const char *getCertificateFileName();
55 OSStatus
writeCertificateFile(CFDataRef certData
);
56 int writeFile(const char *fileName
, const unsigned char *bytes
, unsigned int numBytes
);
58 static const char * const _defaultMasterKeychainPath
;
59 static const char * const _masterKeychainName
;