2 * Copyright (c) 2006-2014 Apple Inc. All Rights Reserved.
4 * @APPLE_LICENSE_HEADER_START@
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
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.
21 * @APPLE_LICENSE_HEADER_END@
24 #define __CONSTANT_CFSTRINGS__ 1
25 #include <CoreFoundation/CFString.h>
27 /* String constant declarations */
29 #define SEC_CONST_DECL(k,v) const CFStringRef k = CFSTR(v);
31 /* Class Key Constant */
32 SEC_CONST_DECL (kSecClass
, "class");
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");
42 /* Attribute Key Constants */
43 SEC_CONST_DECL (kSecAttrAccessible
, "pdmn");
44 SEC_CONST_DECL (kSecAttrAccessGroup
, "agrp");
45 SEC_CONST_DECL (kSecAttrAccess
, "acls");
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 (kSecAttrIsModifiable
, "modi");
79 SEC_CONST_DECL (kSecAttrIsPrivate
, "priv");
80 SEC_CONST_DECL (kSecAttrApplicationTag
, "atag");
81 SEC_CONST_DECL (kSecAttrKeyCreator
, "crtr");
82 SEC_CONST_DECL (kSecAttrKeyType
, "type");
83 SEC_CONST_DECL (kSecAttrPRF
, "prf");
84 SEC_CONST_DECL (kSecAttrSalt
, "salt");
85 SEC_CONST_DECL (kSecAttrRounds
, "rounds");
86 SEC_CONST_DECL (kSecAttrKeySizeInBits
, "bsiz");
87 SEC_CONST_DECL (kSecAttrEffectiveKeySize
, "esiz");
88 SEC_CONST_DECL (kSecAttrStartDate
, "sdat");
89 SEC_CONST_DECL (kSecAttrEndDate
, "edat");
90 SEC_CONST_DECL (kSecAttrIsSensitive
, "sens");
91 SEC_CONST_DECL (kSecAttrWasAlwaysSensitive
, "asen");
92 SEC_CONST_DECL (kSecAttrIsExtractable
, "extr");
93 SEC_CONST_DECL (kSecAttrWasNeverExtractable
, "next");
94 SEC_CONST_DECL (kSecAttrCanEncrypt
, "encr");
95 SEC_CONST_DECL (kSecAttrCanDecrypt
, "decr");
96 SEC_CONST_DECL (kSecAttrCanDerive
, "drve");
97 SEC_CONST_DECL (kSecAttrCanSign
, "sign");
98 SEC_CONST_DECL (kSecAttrCanVerify
, "vrfy");
99 SEC_CONST_DECL (kSecAttrCanSignRecover
, "snrc");
100 SEC_CONST_DECL (kSecAttrCanVerifyRecover
, "vyrc");
101 SEC_CONST_DECL (kSecAttrCanWrap
, "wrap");
102 SEC_CONST_DECL (kSecAttrCanUnwrap
, "unwp");
103 SEC_CONST_DECL (kSecAttrSyncViewHint
, "vwht");
104 SEC_CONST_DECL (kSecAttrTokenID
, "tkid");
105 /* Attribute Constants (Private) */
106 SEC_CONST_DECL (kSecAttrScriptCode
, "scrp");
107 SEC_CONST_DECL (kSecAttrHasCustomIcon
, "cusi");
108 SEC_CONST_DECL (kSecAttrCRLType
, "crlt");
109 SEC_CONST_DECL (kSecAttrCRLEncoding
, "crle");
110 SEC_CONST_DECL (kSecAttrSynchronizable
, "sync");
111 SEC_CONST_DECL (kSecAttrSynchronizableAny
, "syna");
112 SEC_CONST_DECL (kSecAttrTombstone
, "tomb");
113 SEC_CONST_DECL (kSecAttrNoLegacy
, "nleg");
114 SEC_CONST_DECL (kSecAttrMultiUser
, "musr");
116 /* Search Constants */
117 SEC_CONST_DECL (kSecMatchPolicy
, "m_Policy");
118 SEC_CONST_DECL (kSecMatchItemList
, "m_ItemList");
119 SEC_CONST_DECL (kSecMatchSearchList
, "m_SearchList");
120 SEC_CONST_DECL (kSecMatchIssuers
, "m_Issuers");
121 SEC_CONST_DECL (kSecMatchEmailAddressIfPresent
, "m_EmailAddressIfPresent");
122 SEC_CONST_DECL (kSecMatchSubjectContains
, "m_SubjectContains");
123 SEC_CONST_DECL (kSecMatchSubjectStartsWith
, "m_SubjectStartsWith");
124 SEC_CONST_DECL (kSecMatchSubjectEndsWith
, "m_SubjectEndsWith");
125 SEC_CONST_DECL (kSecMatchSubjectWholeString
, "m_SubjectWholeString");
126 SEC_CONST_DECL (kSecMatchCaseInsensitive
, "m_CaseInsensitive");
127 SEC_CONST_DECL (kSecMatchDiacriticInsensitive
, "m_DiacriticInsensitive");
128 SEC_CONST_DECL (kSecMatchWidthInsensitive
, "m_WidthInsensitive");
129 SEC_CONST_DECL (kSecMatchTrustedOnly
, "m_TrustedOnly");
130 SEC_CONST_DECL (kSecMatchValidOnDate
, "m_ValidOnDate");
131 SEC_CONST_DECL (kSecMatchLimit
, "m_Limit");
132 /* Could just use kCFBooleanTrue and kCFBooleanFalse for these 2. */
133 SEC_CONST_DECL (kSecMatchLimitOne
, "m_LimitOne");
134 SEC_CONST_DECL (kSecMatchLimitAll
, "m_LimitAll");
136 /* Return Type Key Constants */
137 SEC_CONST_DECL (kSecReturnData
, "r_Data");
138 SEC_CONST_DECL (kSecReturnAttributes
, "r_Attributes");
139 SEC_CONST_DECL (kSecReturnRef
, "r_Ref");
140 SEC_CONST_DECL (kSecReturnPersistentRef
, "r_PersistentRef");
142 /* Value Type Key Constants */
143 SEC_CONST_DECL (kSecValueData
, "v_Data");
144 SEC_CONST_DECL (kSecValueRef
, "v_Ref");
145 SEC_CONST_DECL (kSecValuePersistentRef
, "v_PersistentRef");
147 /* Other Constants */
148 SEC_CONST_DECL (kSecUseItemList
, "u_ItemList");
149 SEC_CONST_DECL (kSecUseKeychain
, "u_Keychain");
150 SEC_CONST_DECL (kSecUseSystemKeychain
, "u_SystemKeychain");
151 SEC_CONST_DECL (kSecUseSyncBubbleKeychain
, "u_SyncBubbleKeychain");
153 /* kSecAttrAccessible Value Constants. */
154 SEC_CONST_DECL (kSecAttrAccessibleWhenUnlocked
, "ak");
155 SEC_CONST_DECL (kSecAttrAccessibleAfterFirstUnlock
, "ck");
156 SEC_CONST_DECL (kSecAttrAccessibleAlways
, "dk");
157 SEC_CONST_DECL (kSecAttrAccessibleWhenUnlockedThisDeviceOnly
, "aku");
158 SEC_CONST_DECL (kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly
, "cku");
159 SEC_CONST_DECL (kSecAttrAccessibleAlwaysThisDeviceOnly
, "dku");
160 SEC_CONST_DECL (kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly
, "akpu");
162 /* kSecAttrProtocol Value Constants. */
163 SEC_CONST_DECL (kSecAttrProtocolFTP
, "ftp ");
164 SEC_CONST_DECL (kSecAttrProtocolFTPAccount
, "ftpa");
165 SEC_CONST_DECL (kSecAttrProtocolHTTP
, "http");
166 SEC_CONST_DECL (kSecAttrProtocolIRC
, "irc ");
167 SEC_CONST_DECL (kSecAttrProtocolNNTP
, "nntp");
168 SEC_CONST_DECL (kSecAttrProtocolPOP3
, "pop3");
169 SEC_CONST_DECL (kSecAttrProtocolSMTP
, "smtp");
170 SEC_CONST_DECL (kSecAttrProtocolSOCKS
, "sox ");
171 SEC_CONST_DECL (kSecAttrProtocolIMAP
, "imap");
172 SEC_CONST_DECL (kSecAttrProtocolLDAP
, "ldap");
173 SEC_CONST_DECL (kSecAttrProtocolAppleTalk
, "atlk");
174 SEC_CONST_DECL (kSecAttrProtocolAFP
, "afp ");
175 SEC_CONST_DECL (kSecAttrProtocolTelnet
, "teln");
176 SEC_CONST_DECL (kSecAttrProtocolSSH
, "ssh ");
177 SEC_CONST_DECL (kSecAttrProtocolFTPS
, "ftps");
178 SEC_CONST_DECL (kSecAttrProtocolHTTPS
, "htps");
179 SEC_CONST_DECL (kSecAttrProtocolHTTPProxy
, "htpx");
180 SEC_CONST_DECL (kSecAttrProtocolHTTPSProxy
, "htsx");
181 SEC_CONST_DECL (kSecAttrProtocolFTPProxy
, "ftpx");
182 SEC_CONST_DECL (kSecAttrProtocolSMB
, "smb ");
183 SEC_CONST_DECL (kSecAttrProtocolRTSP
, "rtsp");
184 SEC_CONST_DECL (kSecAttrProtocolRTSPProxy
, "rtsx");
185 SEC_CONST_DECL (kSecAttrProtocolDAAP
, "daap");
186 SEC_CONST_DECL (kSecAttrProtocolEPPC
, "eppc");
187 SEC_CONST_DECL (kSecAttrProtocolIPP
, "ipp ");
188 SEC_CONST_DECL (kSecAttrProtocolNNTPS
, "ntps");
189 SEC_CONST_DECL (kSecAttrProtocolLDAPS
, "ldps");
190 SEC_CONST_DECL (kSecAttrProtocolTelnetS
, "tels");
191 SEC_CONST_DECL (kSecAttrProtocolIMAPS
, "imps");
192 SEC_CONST_DECL (kSecAttrProtocolIRCS
, "ircs");
193 SEC_CONST_DECL (kSecAttrProtocolPOP3S
, "pops");
195 /* kSecAttrAuthenticationType Value Constants. */
196 SEC_CONST_DECL (kSecAttrAuthenticationTypeNTLM
, "ntlm");
197 SEC_CONST_DECL (kSecAttrAuthenticationTypeMSN
, "msna");
198 SEC_CONST_DECL (kSecAttrAuthenticationTypeDPA
, "dpaa");
199 SEC_CONST_DECL (kSecAttrAuthenticationTypeRPA
, "rpaa");
200 SEC_CONST_DECL (kSecAttrAuthenticationTypeHTTPBasic
, "http");
201 SEC_CONST_DECL (kSecAttrAuthenticationTypeHTTPDigest
, "httd");
202 SEC_CONST_DECL (kSecAttrAuthenticationTypeHTMLForm
, "form");
203 SEC_CONST_DECL (kSecAttrAuthenticationTypeDefault
, "dflt");
205 /* kSecAttrKeyClass Value Constants. Based on <Security/cssmtype.h>
206 CSSM_KEYCLASS_PUBLIC_KEY = 0,
207 CSSM_KEYCLASS_PRIVATE_KEY = 1,
208 CSSM_KEYCLASS_SESSION_KEY = 2,
210 SEC_CONST_DECL (kSecAttrKeyClassPublic
, "0");
211 SEC_CONST_DECL (kSecAttrKeyClassPrivate
, "1");
212 SEC_CONST_DECL (kSecAttrKeyClassSymmetric
, "2");
214 /* kSecAttrKeyType Value Constants. Based on CSSM_ALGORITHMS. */
215 SEC_CONST_DECL (kSecAttrKeyTypeDES
, "14");
216 SEC_CONST_DECL (kSecAttrKeyType3DES
, "17");
217 SEC_CONST_DECL (kSecAttrKeyTypeRC2
, "23");
218 SEC_CONST_DECL (kSecAttrKeyTypeRC4
, "25");
219 SEC_CONST_DECL (kSecAttrKeyTypeRSA
, "42");
220 SEC_CONST_DECL (kSecAttrKeyTypeDSA
, "43");
221 SEC_CONST_DECL (kSecAttrKeyTypeCAST
, "56");
222 SEC_CONST_DECL (kSecAttrKeyTypeECDSA
, "73");
223 SEC_CONST_DECL (kSecAttrKeyTypeEC
, "73"); /* rdar://13326326 */
224 SEC_CONST_DECL (kSecAttrKeyTypeAES
, "2147483649"); /* <Security/cssmapple.h> */
226 SEC_CONST_DECL (kSecAttrPRFHmacAlgSHA1
, "hsha1");
227 SEC_CONST_DECL (kSecAttrPRFHmacAlgSHA224
, "hsha224");
228 SEC_CONST_DECL (kSecAttrPRFHmacAlgSHA256
, "hsha256");
229 SEC_CONST_DECL (kSecAttrPRFHmacAlgSHA384
, "hsha384");
230 SEC_CONST_DECL (kSecAttrPRFHmacAlgSHA512
, "hsha512");
233 /* Constants used by SecKeyGeneratePair() - in SecKey.h. Never used in
234 any SecItem apis directly. */
235 SEC_CONST_DECL (kSecPrivateKeyAttrs
, "private");
236 SEC_CONST_DECL (kSecPublicKeyAttrs
, "public");
237 /* Used for SecKeyGenerateSymmetric */
238 SEC_CONST_DECL (kSecSymmetricKeyAttrs
, "symmetric");