]>
Commit | Line | Data |
---|---|---|
60c433a9 A |
1 | /* |
2 | * Copyright (c) 2015 Apple Inc. All Rights Reserved. | |
5c19dc3a | 3 | * |
60c433a9 | 4 | * @APPLE_LICENSE_HEADER_START@ |
5c19dc3a | 5 | * |
60c433a9 A |
6 | * This file contains Original Code and/or Modifications of Original Code |
7 | * as defined in and that are subject to the Apple Public Source License | |
8 | * Version 2.0 (the 'License'). You may not use this file except in | |
9 | * compliance with the License. Please obtain a copy of the License at | |
10 | * http://www.opensource.apple.com/apsl/ and read it before using this | |
11 | * file. | |
5c19dc3a | 12 | * |
60c433a9 A |
13 | * The Original Code and all software distributed under the License are |
14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | |
15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | |
16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | |
17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | |
18 | * Please see the License for the specific language governing rights and | |
19 | * limitations under the License. | |
5c19dc3a | 20 | * |
60c433a9 A |
21 | * @APPLE_LICENSE_HEADER_END@ |
22 | */ | |
23 | ||
e3d460c9 A |
24 | /* |
25 | * This is to fool os services to not provide the Keychain manager | |
866f8763 | 26 | * interface that doesn't work since we don't have unified headers |
e3d460c9 | 27 | * between iOS and OS X. rdar://23405418/ |
5c19dc3a | 28 | */ |
e3d460c9 A |
29 | #define __KEYCHAINCORE__ 1 |
30 | ||
31 | #import <Foundation/Foundation.h> | |
32 | #import <Security/Security.h> | |
33 | #import <Security/SecItemPriv.h> | |
34 | ||
35 | #include "builtin_commands.h" | |
36 | ||
37 | ||
38 | int | |
39 | command_whoami(__unused int argc, __unused char * const * argv) | |
40 | { | |
41 | @autoreleasepool { | |
42 | CFErrorRef error = NULL; | |
43 | NSDictionary *dict = NULL; | |
fa7225c8 A |
44 | |
45 | dict = CFBridgingRelease(_SecSecuritydCopyWhoAmI(&error)); | |
e3d460c9 A |
46 | if (dict) { |
47 | puts([[NSString stringWithFormat:@"the server thinks we are:\n%@\n", dict] UTF8String]); | |
48 | } else { | |
49 | puts([[NSString stringWithFormat:@"no reply from server: %@", error] UTF8String]); | |
50 | } | |
51 | if (error) | |
52 | CFRelease(error); | |
53 | } | |
54 | ||
55 | return 0; | |
56 | } |