]> git.saurik.com Git - apple/security.git/blame - OSX/libsecurity_keychain/lib/SecItemConstants.c
Security-59754.80.3.tar.gz
[apple/security.git] / OSX / libsecurity_keychain / lib / SecItemConstants.c
CommitLineData
b1ab9ed8 1/*
d8f41ccd 2 * Copyright (c) 2006-2014 Apple Inc. All Rights Reserved.
b1ab9ed8
A
3 *
4 * @APPLE_LICENSE_HEADER_START@
d8f41ccd 5 *
b1ab9ed8
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.
d8f41ccd 12 *
b1ab9ed8
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.
d8f41ccd 20 *
b1ab9ed8
A
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24#define __CONSTANT_CFSTRINGS__ 1
25#include <CoreFoundation/CFString.h>
26
27/* String constant declarations */
28
5c19dc3a 29#define SEC_CONST_DECL(k,v) const CFStringRef k = CFSTR(v);
b1ab9ed8 30
79b9da22
A
31// See the other SecItemContants.c for actual definitions
32
b1ab9ed8 33/* Class Key Constant */
79b9da22 34//SEC_CONST_DECL (kSecClass, "class");
b1ab9ed8
A
35
36/* Class Value Constants */
79b9da22
A
37//SEC_CONST_DECL (kSecClassGenericPassword, "genp");
38//SEC_CONST_DECL (kSecClassInternetPassword, "inet");
39//SEC_CONST_DECL (kSecClassAppleSharePassword, "apls");
40//SEC_CONST_DECL (kSecClassCertificate, "cert");
41//SEC_CONST_DECL (kSecClassKey, "keys");
42//SEC_CONST_DECL (kSecClassIdentity, "idnt");
b1ab9ed8
A
43
44/* Attribute Key Constants */
79b9da22
A
45//SEC_CONST_DECL (kSecAttrAccessible, "pdmn");
46//SEC_CONST_DECL (kSecAttrAccessGroup, "agrp");
b1ab9ed8 47SEC_CONST_DECL (kSecAttrAccess, "acls");
79b9da22
A
48//SEC_CONST_DECL (kSecAttrCreationDate, "cdat");
49//SEC_CONST_DECL (kSecAttrModificationDate, "mdat");
50//SEC_CONST_DECL (kSecAttrDescription, "desc");
51//SEC_CONST_DECL (kSecAttrComment, "icmt");
52//SEC_CONST_DECL (kSecAttrCreator, "crtr");
53//SEC_CONST_DECL (kSecAttrType, "type");
54//SEC_CONST_DECL (kSecAttrLabel, "labl");
55//SEC_CONST_DECL (kSecAttrIsInvisible, "invi");
56//SEC_CONST_DECL (kSecAttrIsNegative, "nega");
57//SEC_CONST_DECL (kSecAttrAccount, "acct");
58//SEC_CONST_DECL (kSecAttrService, "svce");
59//SEC_CONST_DECL (kSecAttrGeneric, "gena");
60//SEC_CONST_DECL (kSecAttrSecurityDomain, "sdmn");
61//SEC_CONST_DECL (kSecAttrServer, "srvr");
62//SEC_CONST_DECL (kSecAttrProtocol, "ptcl");
63//SEC_CONST_DECL (kSecAttrAuthenticationType, "atyp");
64//SEC_CONST_DECL (kSecAttrPort, "port");
65//SEC_CONST_DECL (kSecAttrPath, "path");
66//SEC_CONST_DECL (kSecAttrVolume, "volm");
67//SEC_CONST_DECL (kSecAttrAddress, "addr");
68//SEC_CONST_DECL (kSecAttrAFPServerSignature, "afps");
69//SEC_CONST_DECL (kSecAttrAlias, "alis");
70//SEC_CONST_DECL (kSecAttrSubject, "subj");
71//SEC_CONST_DECL (kSecAttrIssuer, "issr");
72//SEC_CONST_DECL (kSecAttrSerialNumber, "slnr");
73//SEC_CONST_DECL (kSecAttrSubjectKeyID, "skid");
74//SEC_CONST_DECL (kSecAttrPublicKeyHash, "pkhh");
75//SEC_CONST_DECL (kSecAttrCertificateType, "ctyp");
76//SEC_CONST_DECL (kSecAttrCertificateEncoding, "cenc");
77//SEC_CONST_DECL (kSecAttrKeyClass, "kcls");
78//SEC_CONST_DECL (kSecAttrApplicationLabel, "klbl");
79//SEC_CONST_DECL (kSecAttrIsPermanent, "perm");
80//SEC_CONST_DECL (kSecAttrIsModifiable, "modi");
81//SEC_CONST_DECL (kSecAttrIsPrivate, "priv");
82//SEC_CONST_DECL (kSecAttrApplicationTag, "atag");
83//SEC_CONST_DECL (kSecAttrKeyCreator, "crtr");
84//SEC_CONST_DECL (kSecAttrKeyType, "type");
b1ab9ed8
A
85SEC_CONST_DECL (kSecAttrPRF, "prf");
86SEC_CONST_DECL (kSecAttrSalt, "salt");
87SEC_CONST_DECL (kSecAttrRounds, "rounds");
79b9da22
A
88//SEC_CONST_DECL (kSecAttrKeySizeInBits, "bsiz");
89//SEC_CONST_DECL (kSecAttrEffectiveKeySize, "esiz");
90//SEC_CONST_DECL (kSecAttrStartDate, "sdat");
91//SEC_CONST_DECL (kSecAttrEndDate, "edat");
92//SEC_CONST_DECL (kSecAttrIsSensitive, "sens");
93//SEC_CONST_DECL (kSecAttrWasAlwaysSensitive, "asen");
94//SEC_CONST_DECL (kSecAttrIsExtractable, "extr");
95//SEC_CONST_DECL (kSecAttrWasNeverExtractable, "next");
96//SEC_CONST_DECL (kSecAttrCanEncrypt, "encr");
97//SEC_CONST_DECL (kSecAttrCanDecrypt, "decr");
98//SEC_CONST_DECL (kSecAttrCanDerive, "drve");
99//SEC_CONST_DECL (kSecAttrCanSign, "sign");
100//SEC_CONST_DECL (kSecAttrCanVerify, "vrfy");
101//SEC_CONST_DECL (kSecAttrCanSignRecover, "snrc");
102//SEC_CONST_DECL (kSecAttrCanVerifyRecover, "vyrc");
103//SEC_CONST_DECL (kSecAttrCanWrap, "wrap");
104//SEC_CONST_DECL (kSecAttrCanUnwrap, "unwp");
105//SEC_CONST_DECL (kSecAttrSyncViewHint, "vwht");
106//SEC_CONST_DECL (kSecAttrTokenID, "tkid");
b1ab9ed8 107/* Attribute Constants (Private) */
79b9da22
A
108//SEC_CONST_DECL (kSecAttrScriptCode, "scrp");
109//SEC_CONST_DECL (kSecAttrHasCustomIcon, "cusi");
110//SEC_CONST_DECL (kSecAttrCRLType, "crlt");
111//SEC_CONST_DECL (kSecAttrCRLEncoding, "crle");
112//SEC_CONST_DECL (kSecAttrSynchronizable, "sync");
113//SEC_CONST_DECL (kSecAttrSynchronizableAny, "syna");
114//SEC_CONST_DECL (kSecAttrTombstone, "tomb");
115//SEC_CONST_DECL (kSecAttrNoLegacy, "nleg");
116//SEC_CONST_DECL (kSecAttrMultiUser, "musr");
117//SEC_CONST_DECL (kSecAttrTokenOID, "toid");
118//SEC_CONST_DECL (kSecAttrUUID, "UUID");
119//SEC_CONST_DECL (kSecAttrPersistantReference, "persistref");
120//SEC_CONST_DECL (kSecAttrPersistentReference, "persistref");
121//SEC_CONST_DECL (kSecAttrSysBound, "sysb");
122//SEC_CONST_DECL (kSecAttrSHA1, "sha1");
123//
124//SEC_CONST_DECL (kSecAttrDeriveSyncIDFromItemAttributes, "dspk");
125//SEC_CONST_DECL (kSecAttrPCSPlaintextServiceIdentifier, "pcss");
126//SEC_CONST_DECL (kSecAttrPCSPlaintextPublicKey, "pcsk");
127//SEC_CONST_DECL (kSecAttrPCSPlaintextPublicIdentity, "pcsi");
fa7225c8 128
d64be36e
A
129//SEC_CONST_DECL (kSecDataInetExtraNotes, "binn");
130//SEC_CONST_DECL (kSecDataInetExtraHistory, "bini");
131//SEC_CONST_DECL (kSecDataInetExtraClientDefined0, "bin0");
132//SEC_CONST_DECL (kSecDataInetExtraClientDefined1, "bin1");
133//SEC_CONST_DECL (kSecDataInetExtraClientDefined2, "bin2");
134//SEC_CONST_DECL (kSecDataInetExtraClientDefined3, "bin3");
135
fa7225c8 136/* Predefined access groups constants */
79b9da22 137//SEC_CONST_DECL (kSecAttrAccessGroupToken, "com.apple.token");
b1ab9ed8
A
138
139/* Search Constants */
79b9da22
A
140//SEC_CONST_DECL (kSecMatchPolicy, "m_Policy");
141//SEC_CONST_DECL (kSecMatchItemList, "m_ItemList");
142//SEC_CONST_DECL (kSecMatchSearchList, "m_SearchList");
143//SEC_CONST_DECL (kSecMatchIssuers, "m_Issuers");
144//SEC_CONST_DECL (kSecMatchEmailAddressIfPresent, "m_EmailAddressIfPresent");
145//SEC_CONST_DECL (kSecMatchSubjectContains, "m_SubjectContains");
b1ab9ed8
A
146SEC_CONST_DECL (kSecMatchSubjectStartsWith, "m_SubjectStartsWith");
147SEC_CONST_DECL (kSecMatchSubjectEndsWith, "m_SubjectEndsWith");
148SEC_CONST_DECL (kSecMatchSubjectWholeString, "m_SubjectWholeString");
79b9da22 149//SEC_CONST_DECL (kSecMatchCaseInsensitive, "m_CaseInsensitive");
b1ab9ed8
A
150SEC_CONST_DECL (kSecMatchDiacriticInsensitive, "m_DiacriticInsensitive");
151SEC_CONST_DECL (kSecMatchWidthInsensitive, "m_WidthInsensitive");
79b9da22
A
152//SEC_CONST_DECL (kSecMatchTrustedOnly, "m_TrustedOnly");
153//SEC_CONST_DECL (kSecMatchValidOnDate, "m_ValidOnDate");
154//SEC_CONST_DECL (kSecMatchLimit, "m_Limit");
b1ab9ed8 155/* Could just use kCFBooleanTrue and kCFBooleanFalse for these 2. */
79b9da22
A
156//SEC_CONST_DECL (kSecMatchLimitOne, "m_LimitOne");
157//SEC_CONST_DECL (kSecMatchLimitAll, "m_LimitAll");
b1ab9ed8
A
158
159/* Return Type Key Constants */
79b9da22
A
160//SEC_CONST_DECL (kSecReturnData, "r_Data");
161//SEC_CONST_DECL (kSecReturnAttributes, "r_Attributes");
162//SEC_CONST_DECL (kSecReturnRef, "r_Ref");
163//SEC_CONST_DECL (kSecReturnPersistentRef, "r_PersistentRef");
b1ab9ed8
A
164
165/* Value Type Key Constants */
79b9da22
A
166//SEC_CONST_DECL (kSecValueData, "v_Data");
167//SEC_CONST_DECL (kSecValueRef, "v_Ref");
168//SEC_CONST_DECL (kSecValuePersistentRef, "v_PersistentRef");
b1ab9ed8
A
169
170/* Other Constants */
79b9da22 171//SEC_CONST_DECL (kSecUseItemList, "u_ItemList");
b1ab9ed8 172SEC_CONST_DECL (kSecUseKeychain, "u_Keychain");
79b9da22
A
173//SEC_CONST_DECL (kSecUseSystemKeychain, "u_SystemKeychain");
174//SEC_CONST_DECL (kSecUseSyncBubbleKeychain, "u_SyncBubbleKeychain");
b1ab9ed8 175
427c49bc 176/* kSecAttrAccessible Value Constants. */
79b9da22
A
177//SEC_CONST_DECL (kSecAttrAccessibleWhenUnlocked, "ak");
178//SEC_CONST_DECL (kSecAttrAccessibleAfterFirstUnlock, "ck");
179//SEC_CONST_DECL (kSecAttrAccessibleAlways, "dk");
180//SEC_CONST_DECL (kSecAttrAccessibleWhenUnlockedThisDeviceOnly, "aku");
181//SEC_CONST_DECL (kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly, "cku");
182//SEC_CONST_DECL (kSecAttrAccessibleAlwaysThisDeviceOnly, "dku");
183//SEC_CONST_DECL (kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, "akpu");
fa7225c8 184/* kSecAttrAccessible Value Constants (Private). */
79b9da22
A
185//SEC_CONST_DECL (kSecAttrAccessibleAlwaysPrivate, "dk");
186//SEC_CONST_DECL (kSecAttrAccessibleAlwaysThisDeviceOnlyPrivate, "dku");
427c49bc 187
b1ab9ed8 188/* kSecAttrProtocol Value Constants. */
79b9da22
A
189//SEC_CONST_DECL (kSecAttrProtocolFTP, "ftp ");
190//SEC_CONST_DECL (kSecAttrProtocolFTPAccount, "ftpa");
191//SEC_CONST_DECL (kSecAttrProtocolHTTP, "http");
192//SEC_CONST_DECL (kSecAttrProtocolIRC, "irc ");
193//SEC_CONST_DECL (kSecAttrProtocolNNTP, "nntp");
194//SEC_CONST_DECL (kSecAttrProtocolPOP3, "pop3");
195//SEC_CONST_DECL (kSecAttrProtocolSMTP, "smtp");
196//SEC_CONST_DECL (kSecAttrProtocolSOCKS, "sox ");
197//SEC_CONST_DECL (kSecAttrProtocolIMAP, "imap");
198//SEC_CONST_DECL (kSecAttrProtocolLDAP, "ldap");
199//SEC_CONST_DECL (kSecAttrProtocolAppleTalk, "atlk");
200//SEC_CONST_DECL (kSecAttrProtocolAFP, "afp ");
201//SEC_CONST_DECL (kSecAttrProtocolTelnet, "teln");
202//SEC_CONST_DECL (kSecAttrProtocolSSH, "ssh ");
203//SEC_CONST_DECL (kSecAttrProtocolFTPS, "ftps");
204//SEC_CONST_DECL (kSecAttrProtocolHTTPS, "htps");
205//SEC_CONST_DECL (kSecAttrProtocolHTTPProxy, "htpx");
206//SEC_CONST_DECL (kSecAttrProtocolHTTPSProxy, "htsx");
207//SEC_CONST_DECL (kSecAttrProtocolFTPProxy, "ftpx");
208//SEC_CONST_DECL (kSecAttrProtocolSMB, "smb ");
209//SEC_CONST_DECL (kSecAttrProtocolRTSP, "rtsp");
210//SEC_CONST_DECL (kSecAttrProtocolRTSPProxy, "rtsx");
211//SEC_CONST_DECL (kSecAttrProtocolDAAP, "daap");
212//SEC_CONST_DECL (kSecAttrProtocolEPPC, "eppc");
213//SEC_CONST_DECL (kSecAttrProtocolIPP, "ipp ");
214//SEC_CONST_DECL (kSecAttrProtocolNNTPS, "ntps");
215//SEC_CONST_DECL (kSecAttrProtocolLDAPS, "ldps");
216//SEC_CONST_DECL (kSecAttrProtocolTelnetS, "tels");
217//SEC_CONST_DECL (kSecAttrProtocolIMAPS, "imps");
218//SEC_CONST_DECL (kSecAttrProtocolIRCS, "ircs");
219//SEC_CONST_DECL (kSecAttrProtocolPOP3S, "pops");
b1ab9ed8
A
220
221/* kSecAttrAuthenticationType Value Constants. */
79b9da22
A
222//SEC_CONST_DECL (kSecAttrAuthenticationTypeNTLM, "ntlm");
223//SEC_CONST_DECL (kSecAttrAuthenticationTypeMSN, "msna");
224//SEC_CONST_DECL (kSecAttrAuthenticationTypeDPA, "dpaa");
225//SEC_CONST_DECL (kSecAttrAuthenticationTypeRPA, "rpaa");
226//SEC_CONST_DECL (kSecAttrAuthenticationTypeHTTPBasic, "http");
227//SEC_CONST_DECL (kSecAttrAuthenticationTypeHTTPDigest, "httd");
228//SEC_CONST_DECL (kSecAttrAuthenticationTypeHTMLForm, "form");
229//SEC_CONST_DECL (kSecAttrAuthenticationTypeDefault, "dflt");
b1ab9ed8
A
230
231/* kSecAttrKeyClass Value Constants. Based on <Security/cssmtype.h>
232 CSSM_KEYCLASS_PUBLIC_KEY = 0,
233 CSSM_KEYCLASS_PRIVATE_KEY = 1,
234 CSSM_KEYCLASS_SESSION_KEY = 2,
235 */
79b9da22
A
236//SEC_CONST_DECL (kSecAttrKeyClassPublic, "0");
237//SEC_CONST_DECL (kSecAttrKeyClassPrivate, "1");
238//SEC_CONST_DECL (kSecAttrKeyClassSymmetric, "2");
b1ab9ed8
A
239
240/* kSecAttrKeyType Value Constants. Based on CSSM_ALGORITHMS. */
241SEC_CONST_DECL (kSecAttrKeyTypeDES, "14");
242SEC_CONST_DECL (kSecAttrKeyType3DES, "17");
243SEC_CONST_DECL (kSecAttrKeyTypeRC2, "23");
244SEC_CONST_DECL (kSecAttrKeyTypeRC4, "25");
79b9da22
A
245
246//SEC_CONST_DECL (kSecAttrKeyTypeRSA, "42");
b1ab9ed8
A
247SEC_CONST_DECL (kSecAttrKeyTypeDSA, "43");
248SEC_CONST_DECL (kSecAttrKeyTypeCAST, "56");
79b9da22
A
249SEC_CONST_DECL (kSecAttrKeyTypeECDSA, "73"); /**/
250//SEC_CONST_DECL (kSecAttrKeyTypeEC, "73"); /* rdar://13326326 */
251//SEC_CONST_DECL (kSecAttrKeyTypeECSECPrimeRandom, "73");
b1ab9ed8 252SEC_CONST_DECL (kSecAttrKeyTypeAES, "2147483649"); /* <Security/cssmapple.h> */
79b9da22
A
253//SEC_CONST_DECL (kSecAttrKeyTypeECSECPrimeRandomPKA, "2147483678"); /* <Security/cssmapple.h> CSSM_ALGID__FIRST_UNUSED */
254//SEC_CONST_DECL (kSecAttrKeyTypeSecureEnclaveAttestation, "2147483679"); /* <Security/cssmapple.h> CSSM_ALGID__FIRST_UNUSED + 1 */
b1ab9ed8
A
255
256SEC_CONST_DECL (kSecAttrPRFHmacAlgSHA1, "hsha1");
257SEC_CONST_DECL (kSecAttrPRFHmacAlgSHA224, "hsha224");
258SEC_CONST_DECL (kSecAttrPRFHmacAlgSHA256, "hsha256");
259SEC_CONST_DECL (kSecAttrPRFHmacAlgSHA384, "hsha384");
260SEC_CONST_DECL (kSecAttrPRFHmacAlgSHA512, "hsha512");
261
262
263/* Constants used by SecKeyGeneratePair() - in SecKey.h. Never used in
264 any SecItem apis directly. */
79b9da22
A
265//SEC_CONST_DECL (kSecPrivateKeyAttrs, "private");
266//SEC_CONST_DECL (kSecPublicKeyAttrs, "public");
b1ab9ed8
A
267/* Used for SecKeyGenerateSymmetric */
268SEC_CONST_DECL (kSecSymmetricKeyAttrs, "symmetric");