]> git.saurik.com Git - apple/security.git/blob - OSX/sec/Security/SecItemConstants.c
Security-57337.40.85.tar.gz
[apple/security.git] / OSX / sec / Security / SecItemConstants.c
1 /*
2 * Copyright (c) 2006-2008,2010-2014 Apple Inc. All Rights Reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
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.
12 *
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.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24 #define __CONSTANT_CFSTRINGS__ 1
25 #include <CoreFoundation/CFString.h>
26
27 /* String constant declarations */
28
29 #define SEC_CONST_DECL(k,v) const CFTypeRef k = CFSTR(v);
30
31 /* Class Key Constant */
32 SEC_CONST_DECL (kSecClass, "class");
33
34 /* Class Value Constants */
35 SEC_CONST_DECL (kSecClassGenericPassword, "genp");
36 SEC_CONST_DECL (kSecClassInternetPassword, "inet");
37 SEC_CONST_DECL (kSecClassAppleSharePassword, "apls");
38 SEC_CONST_DECL (kSecClassCertificate, "cert");
39 SEC_CONST_DECL (kSecClassKey, "keys");
40 SEC_CONST_DECL (kSecClassIdentity, "idnt");
41
42 /* Attribute Key Constants */
43 SEC_CONST_DECL (kSecAttrAccessible, "pdmn");
44 SEC_CONST_DECL (kSecAttrAccessControl, "accc");
45 SEC_CONST_DECL (kSecAttrAccessGroup, "agrp");
46 SEC_CONST_DECL (kSecAttrCreationDate, "cdat");
47 SEC_CONST_DECL (kSecAttrModificationDate, "mdat");
48 SEC_CONST_DECL (kSecAttrDescription, "desc");
49 SEC_CONST_DECL (kSecAttrComment, "icmt");
50 SEC_CONST_DECL (kSecAttrCreator, "crtr");
51 SEC_CONST_DECL (kSecAttrType, "type");
52 SEC_CONST_DECL (kSecAttrLabel, "labl");
53 SEC_CONST_DECL (kSecAttrIsInvisible, "invi");
54 SEC_CONST_DECL (kSecAttrIsNegative, "nega");
55 SEC_CONST_DECL (kSecAttrAccount, "acct");
56 SEC_CONST_DECL (kSecAttrService, "svce");
57 SEC_CONST_DECL (kSecAttrGeneric, "gena");
58 SEC_CONST_DECL (kSecAttrSecurityDomain, "sdmn");
59 SEC_CONST_DECL (kSecAttrServer, "srvr");
60 SEC_CONST_DECL (kSecAttrProtocol, "ptcl");
61 SEC_CONST_DECL (kSecAttrAuthenticationType, "atyp");
62 SEC_CONST_DECL (kSecAttrPort, "port");
63 SEC_CONST_DECL (kSecAttrPath, "path");
64 SEC_CONST_DECL (kSecAttrVolume, "volm");
65 SEC_CONST_DECL (kSecAttrAddress, "addr");
66 SEC_CONST_DECL (kSecAttrAFPServerSignature, "afps");
67 SEC_CONST_DECL (kSecAttrAlias, "alis");
68 SEC_CONST_DECL (kSecAttrSubject, "subj");
69 SEC_CONST_DECL (kSecAttrIssuer, "issr");
70 SEC_CONST_DECL (kSecAttrSerialNumber, "slnr");
71 SEC_CONST_DECL (kSecAttrSubjectKeyID, "skid");
72 SEC_CONST_DECL (kSecAttrPublicKeyHash, "pkhh");
73 SEC_CONST_DECL (kSecAttrCertificateType, "ctyp");
74 SEC_CONST_DECL (kSecAttrCertificateEncoding, "cenc");
75 SEC_CONST_DECL (kSecAttrKeyClass, "kcls");
76 SEC_CONST_DECL (kSecAttrApplicationLabel, "klbl");
77 SEC_CONST_DECL (kSecAttrIsPermanent, "perm");
78 SEC_CONST_DECL (kSecAttrIsPrivate, "priv");
79 SEC_CONST_DECL (kSecAttrIsModifiable, "modi");
80 SEC_CONST_DECL (kSecAttrApplicationTag, "atag");
81 SEC_CONST_DECL (kSecAttrKeyCreator, "crtr");
82 SEC_CONST_DECL (kSecAttrKeyType, "type");
83 SEC_CONST_DECL (kSecAttrKeySizeInBits, "bsiz");
84 SEC_CONST_DECL (kSecAttrEffectiveKeySize, "esiz");
85 SEC_CONST_DECL (kSecAttrStartDate, "sdat");
86 SEC_CONST_DECL (kSecAttrEndDate, "edat");
87 SEC_CONST_DECL (kSecAttrIsSensitive, "sens");
88 SEC_CONST_DECL (kSecAttrWasAlwaysSensitive, "asen");
89 SEC_CONST_DECL (kSecAttrIsExtractable, "extr");
90 SEC_CONST_DECL (kSecAttrWasNeverExtractable, "next");
91 SEC_CONST_DECL (kSecAttrCanEncrypt, "encr");
92 SEC_CONST_DECL (kSecAttrCanDecrypt, "decr");
93 SEC_CONST_DECL (kSecAttrCanDerive, "drve");
94 SEC_CONST_DECL (kSecAttrCanSign, "sign");
95 SEC_CONST_DECL (kSecAttrCanVerify, "vrfy");
96 SEC_CONST_DECL (kSecAttrCanSignRecover, "snrc");
97 SEC_CONST_DECL (kSecAttrCanVerifyRecover, "vyrc");
98 SEC_CONST_DECL (kSecAttrCanWrap, "wrap");
99 SEC_CONST_DECL (kSecAttrCanUnwrap, "unwp");
100 SEC_CONST_DECL (kSecAttrSyncViewHint, "vwht");
101 SEC_CONST_DECL (kSecAttrTokenID, "tkid");
102 /* Attribute Constants (Private) */
103 SEC_CONST_DECL (kSecAttrScriptCode, "scrp");
104 SEC_CONST_DECL (kSecAttrHasCustomIcon, "cusi");
105 SEC_CONST_DECL (kSecAttrCRLType, "crlt");
106 SEC_CONST_DECL (kSecAttrCRLEncoding, "crle");
107 SEC_CONST_DECL (kSecAttrSynchronizable, "sync");
108 SEC_CONST_DECL (kSecAttrTombstone, "tomb");
109 SEC_CONST_DECL (kSecAttrMultiUser, "musr");
110 SEC_CONST_DECL (kSecAttrNoLegacy, "nleg");
111
112 /* Search Constants */
113 SEC_CONST_DECL (kSecMatchPolicy, "m_Policy");
114 SEC_CONST_DECL (kSecMatchItemList, "m_ItemList");
115 SEC_CONST_DECL (kSecMatchSearchList, "m_SearchList");
116 SEC_CONST_DECL (kSecMatchIssuers, "m_Issuers");
117 SEC_CONST_DECL (kSecMatchEmailAddressIfPresent, "m_EmailAddressIfPresent");
118 SEC_CONST_DECL (kSecMatchSubjectContains, "m_SubjectContains");
119 SEC_CONST_DECL (kSecMatchCaseInsensitive, "m_CaseInsensitive");
120 SEC_CONST_DECL (kSecMatchTrustedOnly, "m_TrustedOnly");
121 SEC_CONST_DECL (kSecMatchValidOnDate, "m_ValidOnDate");
122 SEC_CONST_DECL (kSecMatchLimit, "m_Limit");
123 /* Could just use kCFBooleanTrue and kCFBooleanFalse for these 2. */
124 SEC_CONST_DECL (kSecMatchLimitOne, "m_LimitOne");
125 SEC_CONST_DECL (kSecMatchLimitAll, "m_LimitAll");
126
127 /* Return Type Key Constants */
128 SEC_CONST_DECL (kSecReturnData, "r_Data");
129 SEC_CONST_DECL (kSecReturnAttributes, "r_Attributes");
130 SEC_CONST_DECL (kSecReturnRef, "r_Ref");
131 SEC_CONST_DECL (kSecReturnPersistentRef, "r_PersistentRef");
132
133 /* Value Type Key Constants */
134 SEC_CONST_DECL (kSecValueData, "v_Data");
135 SEC_CONST_DECL (kSecValueRef, "v_Ref");
136 SEC_CONST_DECL (kSecValuePersistentRef, "v_PersistentRef");
137
138 /* kSecUse Constants */
139 SEC_CONST_DECL (kSecUseItemList, "u_ItemList");
140 SEC_CONST_DECL (kSecUseTombstones, "u_Tomb");
141 SEC_CONST_DECL (kSecUseCredentialReference, "u_CredRef");
142 SEC_CONST_DECL (kSecUseOperationPrompt, "u_OpPrompt");
143 SEC_CONST_DECL (kSecUseNoAuthenticationUI, "u_NoAuthUI");
144 SEC_CONST_DECL (kSecUseAuthenticationUI, "u_AuthUI");
145 SEC_CONST_DECL (kSecUseSystemKeychain, "u_SystemKeychain");
146 SEC_CONST_DECL (kSecUseSyncBubbleKeychain, "u_SyncBubbleKeychain");
147
148 /* kSecAttrAccessible Value Constants. */
149 SEC_CONST_DECL (kSecAttrAccessibleWhenUnlocked, "ak");
150 SEC_CONST_DECL (kSecAttrAccessibleAfterFirstUnlock, "ck");
151 SEC_CONST_DECL (kSecAttrAccessibleAlways, "dk");
152 SEC_CONST_DECL (kSecAttrAccessibleWhenUnlockedThisDeviceOnly, "aku");
153 SEC_CONST_DECL (kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly, "cku");
154 SEC_CONST_DECL (kSecAttrAccessibleAlwaysThisDeviceOnly, "dku");
155 SEC_CONST_DECL (kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, "akpu");
156
157 /* kSecAttrProtocol Value Constants. */
158 SEC_CONST_DECL (kSecAttrProtocolFTP, "ftp ");
159 SEC_CONST_DECL (kSecAttrProtocolFTPAccount, "ftpa");
160 SEC_CONST_DECL (kSecAttrProtocolHTTP, "http");
161 SEC_CONST_DECL (kSecAttrProtocolIRC, "irc ");
162 SEC_CONST_DECL (kSecAttrProtocolNNTP, "nntp");
163 SEC_CONST_DECL (kSecAttrProtocolPOP3, "pop3");
164 SEC_CONST_DECL (kSecAttrProtocolSMTP, "smtp");
165 SEC_CONST_DECL (kSecAttrProtocolSOCKS, "sox ");
166 SEC_CONST_DECL (kSecAttrProtocolIMAP, "imap");
167 SEC_CONST_DECL (kSecAttrProtocolLDAP, "ldap");
168 SEC_CONST_DECL (kSecAttrProtocolAppleTalk, "atlk");
169 SEC_CONST_DECL (kSecAttrProtocolAFP, "afp ");
170 SEC_CONST_DECL (kSecAttrProtocolTelnet, "teln");
171 SEC_CONST_DECL (kSecAttrProtocolSSH, "ssh ");
172 SEC_CONST_DECL (kSecAttrProtocolFTPS, "ftps");
173 SEC_CONST_DECL (kSecAttrProtocolHTTPS, "htps");
174 SEC_CONST_DECL (kSecAttrProtocolHTTPProxy, "htpx");
175 SEC_CONST_DECL (kSecAttrProtocolHTTPSProxy, "htsx");
176 SEC_CONST_DECL (kSecAttrProtocolFTPProxy, "ftpx");
177 SEC_CONST_DECL (kSecAttrProtocolSMB, "smb ");
178 SEC_CONST_DECL (kSecAttrProtocolRTSP, "rtsp");
179 SEC_CONST_DECL (kSecAttrProtocolRTSPProxy, "rtsx");
180 SEC_CONST_DECL (kSecAttrProtocolDAAP, "daap");
181 SEC_CONST_DECL (kSecAttrProtocolEPPC, "eppc");
182 SEC_CONST_DECL (kSecAttrProtocolIPP, "ipp ");
183 SEC_CONST_DECL (kSecAttrProtocolNNTPS, "ntps");
184 SEC_CONST_DECL (kSecAttrProtocolLDAPS, "ldps");
185 SEC_CONST_DECL (kSecAttrProtocolTelnetS, "tels");
186 SEC_CONST_DECL (kSecAttrProtocolIMAPS, "imps");
187 SEC_CONST_DECL (kSecAttrProtocolIRCS, "ircs");
188 SEC_CONST_DECL (kSecAttrProtocolPOP3S, "pops");
189
190 /* kSecAttrAuthenticationType Value Constants. */
191 SEC_CONST_DECL (kSecAttrAuthenticationTypeNTLM, "ntlm");
192 SEC_CONST_DECL (kSecAttrAuthenticationTypeMSN, "msna");
193 SEC_CONST_DECL (kSecAttrAuthenticationTypeDPA, "dpaa");
194 SEC_CONST_DECL (kSecAttrAuthenticationTypeRPA, "rpaa");
195 SEC_CONST_DECL (kSecAttrAuthenticationTypeHTTPBasic, "http");
196 SEC_CONST_DECL (kSecAttrAuthenticationTypeHTTPDigest, "httd");
197 SEC_CONST_DECL (kSecAttrAuthenticationTypeHTMLForm, "form");
198 SEC_CONST_DECL (kSecAttrAuthenticationTypeDefault, "dflt");
199
200 /* kSecAttrKeyClass Value Constants. Based on <Security/cssmtype.h>
201 CSSM_KEYCLASS_PUBLIC_KEY = 0,
202 CSSM_KEYCLASS_PRIVATE_KEY = 1,
203 CSSM_KEYCLASS_SESSION_KEY = 2,
204 */
205 SEC_CONST_DECL (kSecAttrKeyClassPublic, "0");
206 SEC_CONST_DECL (kSecAttrKeyClassPrivate, "1");
207 SEC_CONST_DECL (kSecAttrKeyClassSymmetric, "2");
208
209 /* kSecAttrKeyType Value Constants. Based on CSSM_ALGORITHMS. */
210 SEC_CONST_DECL (kSecAttrKeyTypeRSA, "42");
211 SEC_CONST_DECL (kSecAttrKeyTypeEC, "73"); /* rdar://10755886 */
212
213 /* kSecAttrSynchronizable Value Constants. */
214 SEC_CONST_DECL (kSecAttrSynchronizableAny, "syna");
215
216 /* Constants used by SecKeyGeneratePair() - in SecKey.h. Never used in
217 any SecItem apis directly. */
218 SEC_CONST_DECL (kSecPrivateKeyAttrs, "private");
219 SEC_CONST_DECL (kSecPublicKeyAttrs, "public");
220
221 /* Constants used by SecPassword - in SecPasswordStrength */
222 SEC_CONST_DECL (kSecPasswordMaxLength, "PasswordMaxLength");
223 SEC_CONST_DECL (kSecPasswordMinLength, "PasswordMaxLength");
224 SEC_CONST_DECL (kSecPasswordAllowedCharacters, "PasswordAllowedCharacters");
225 SEC_CONST_DECL (kSecPasswordRequiredCharacters, "PasswordRequiredCharacters");
226
227 /* Constants used by SecSharedCredential - in <Security/SecSharedCredential.h> */
228 SEC_CONST_DECL (kSecSharedPassword, "spwd");
229
230 SEC_CONST_DECL (kSecUseAuthenticationUIAllow, "u_AuthUIA");
231 SEC_CONST_DECL (kSecUseAuthenticationUIFail, "u_AuthUIF");
232 SEC_CONST_DECL (kSecUseAuthenticationUISkip, "u_AuthUIS");
233 SEC_CONST_DECL (kSecUseAuthenticationContext, "u_AuthCtx");
234
235 /* kSecAttrTokenID Value Constants. */
236 SEC_CONST_DECL (kSecAttrTokenIDSecureEnclave, "com.apple.setoken");
237
238 /* View Hint Constants */
239
240 SEC_CONST_DECL (kSecAttrViewHintPCSMasterKey, "PCS-MasterKey");
241 SEC_CONST_DECL (kSecAttrViewHintPCSiCloudDrive, "PCS-iCloudDrive");
242 SEC_CONST_DECL (kSecAttrViewHintPCSPhotos, "PCS-Photos");
243 SEC_CONST_DECL (kSecAttrViewHintPCSCloudKit, "PCS-CloudKit");
244 SEC_CONST_DECL (kSecAttrViewHintPCSEscrow, "PCS-Escrow");
245 SEC_CONST_DECL (kSecAttrViewHintPCSFDE, "PCS-FDE");
246 SEC_CONST_DECL (kSecAttrViewHintPCSMailDrop, "PCS-Maildrop");
247 SEC_CONST_DECL (kSecAttrViewHintPCSiCloudBackup, "PCS-Backup");
248 SEC_CONST_DECL (kSecAttrViewHintPCSNotes, "PCS-Notes");
249 SEC_CONST_DECL (kSecAttrViewHintPCSiMessage, "PCS-iMessage");
250 SEC_CONST_DECL (kSecAttrViewHintPCSFeldspar, "PCS-Feldspar");
251
252 SEC_CONST_DECL (kSecAttrViewHintAppleTV, "AppleTV");
253 SEC_CONST_DECL (kSecAttrViewHintHomeKit, "HomeKit");
254 SEC_CONST_DECL (kSecAttrViewHintThumper, "Thumper");