]> git.saurik.com Git - apple/security.git/blob - keychain/SecureObjectSync/Tool/keychain_log.m
Security-59306.41.2.tar.gz
[apple/security.git] / keychain / SecureObjectSync / Tool / keychain_log.m
1 //
2 // keychain_log.c
3 // sec
4 //
5 // Created by Richard Murphy on 1/26/16.
6 //
7 //
8
9 #include "keychain_log.h"
10
11 /*
12 * Copyright (c) 2003-2007,2009-2010,2013-2014 Apple Inc. All Rights Reserved.
13 *
14 * @APPLE_LICENSE_HEADER_START@
15 *
16 * This file contains Original Code and/or Modifications of Original Code
17 * as defined in and that are subject to the Apple Public Source License
18 * Version 2.0 (the 'License'). You may not use this file except in
19 * compliance with the License. Please obtain a copy of the License at
20 * http://www.opensource.apple.com/apsl/ and read it before using this
21 * file.
22 *
23 * The Original Code and all software distributed under the License are
24 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
25 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
26 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
27 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
28 * Please see the License for the specific language governing rights and
29 * limitations under the License.
30 *
31 * @APPLE_LICENSE_HEADER_END@
32 *
33 * keychain_add.c
34 */
35
36
37 #include <stdio.h>
38 #include <stdlib.h>
39 #include <string.h>
40 #include <unistd.h>
41 #include <sys/utsname.h>
42 #include <sys/stat.h>
43 #include <time.h>
44
45 #include <Security/SecItem.h>
46
47 #include <CoreFoundation/CoreFoundation.h>
48 #include <CoreFoundation/CFPriv.h>
49
50 #include <Security/SecureObjectSync/SOSCloudCircle.h>
51 #include <Security/SecureObjectSync/SOSCloudCircleInternal.h>
52 #include <Security/SecureObjectSync/SOSPeerInfo.h>
53 #include "keychain/SecureObjectSync/SOSPeerInfoPriv.h"
54 #include "keychain/SecureObjectSync/SOSPeerInfoV2.h"
55 #include "keychain/SecureObjectSync/SOSUserKeygen.h"
56 #include "keychain/SecureObjectSync/SOSKVSKeys.h"
57 #include "keychain/securityd/SOSCloudCircleServer.h"
58 #include <Security/SecOTRSession.h>
59 #include "keychain/SecureObjectSync/CKBridge/SOSCloudKeychainClient.h"
60
61 #include <utilities/SecCFWrappers.h>
62 #include <utilities/debugging.h>
63
64 #include "SecurityTool/sharedTool/readline.h"
65 #include <notify.h>
66
67 #include "keychain_log.h"
68 #include "secToolFileIO.h"
69 #include "secViewDisplay.h"
70 #include "accountCirclesViewsPrint.h"
71 #include <utilities/debugging.h>
72
73
74 #include <Security/SecPasswordGenerate.h>
75
76 #define MAXKVSKEYTYPE kUnknownKey
77 #define DATE_LENGTH 18
78
79 static bool logmark(const char *optarg) {
80 if(!optarg) return false;
81 secnotice("mark", "%s", optarg);
82 return true;
83 }
84
85
86 // enable, disable, accept, reject, status, Reset, Clear
87 int
88 keychain_log(int argc, char * const *argv)
89 {
90 /*
91 "Keychain Logging"
92 " -i info (current status)"
93 " -D [itemName] dump contents of KVS"
94 " -L list all known view and their status"
95 " -M string place a mark in the syslog - category \"mark\""
96
97 */
98 SOSLogSetOutputTo(NULL, NULL);
99
100 int ch, result = 0;
101 CFErrorRef error = NULL;
102 bool hadError = false;
103
104 while ((ch = getopt(argc, argv, "DiLM:")) != -1)
105 switch (ch) {
106
107 case 'i':
108 SOSCCDumpCircleInformation();
109 SOSCCDumpEngineInformation();
110 break;
111
112
113 case 'D':
114 (void)SOSCCDumpCircleKVSInformation(optarg);
115 break;
116
117 case 'L':
118 hadError = !listviewcmd(&error);
119 break;
120
121 case 'M':
122 hadError = !logmark(optarg);
123 break;
124
125 case '?':
126 default:
127 return SHOW_USAGE_MESSAGE;
128 }
129
130 if (hadError)
131 printerr(CFSTR("Error: %@\n"), error);
132
133 return result;
134 }