2 * Copyright (c) 2006-2008,2010-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 CFTypeRef 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 (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");
110 /* Search Constants */
111 SEC_CONST_DECL (kSecMatchPolicy
, "m_Policy");
112 SEC_CONST_DECL (kSecMatchItemList
, "m_ItemList");
113 SEC_CONST_DECL (kSecMatchSearchList
, "m_SearchList");
114 SEC_CONST_DECL (kSecMatchIssuers
, "m_Issuers");
115 SEC_CONST_DECL (kSecMatchEmailAddressIfPresent
, "m_EmailAddressIfPresent");
116 SEC_CONST_DECL (kSecMatchSubjectContains
, "m_SubjectContains");
117 SEC_CONST_DECL (kSecMatchCaseInsensitive
, "m_CaseInsensitive");
118 SEC_CONST_DECL (kSecMatchTrustedOnly
, "m_TrustedOnly");
119 SEC_CONST_DECL (kSecMatchValidOnDate
, "m_ValidOnDate");
120 SEC_CONST_DECL (kSecMatchLimit
, "m_Limit");
121 /* Could just use kCFBooleanTrue and kCFBooleanFalse for these 2. */
122 SEC_CONST_DECL (kSecMatchLimitOne
, "m_LimitOne");
123 SEC_CONST_DECL (kSecMatchLimitAll
, "m_LimitAll");
125 /* Return Type Key Constants */
126 SEC_CONST_DECL (kSecReturnData
, "r_Data");
127 SEC_CONST_DECL (kSecReturnAttributes
, "r_Attributes");
128 SEC_CONST_DECL (kSecReturnRef
, "r_Ref");
129 SEC_CONST_DECL (kSecReturnPersistentRef
, "r_PersistentRef");
131 /* Value Type Key Constants */
132 SEC_CONST_DECL (kSecValueData
, "v_Data");
133 SEC_CONST_DECL (kSecValueRef
, "v_Ref");
134 SEC_CONST_DECL (kSecValuePersistentRef
, "v_PersistentRef");
136 /* Other Constants */
137 SEC_CONST_DECL (kSecUseItemList
, "u_ItemList");
138 SEC_CONST_DECL (kSecUseTombstones
, "u_Tomb");
139 SEC_CONST_DECL (kSecUseCredentialReference
, "u_CredRef");
140 SEC_CONST_DECL (kSecUseOperationPrompt
, "u_OpPrompt");
141 SEC_CONST_DECL (kSecUseNoAuthenticationUI
, "u_NoAuthUI");
142 SEC_CONST_DECL (kSecUseAuthenticationUI
, "u_AuthUI");
143 #if defined(MULTIPLE_KEYCHAINS)
144 /* Other Constants (Private) */
145 SEC_CONST_DECL (kSecUseKeychain
, "u_Keychain");
146 SEC_CONST_DECL (kSecUseKeychainList
, "u_KeychainList");
147 #endif /* !defined(MULTIPLE_KEYCHAINS) */
149 /* kSecAttrAccessible Value Constants. */
150 SEC_CONST_DECL (kSecAttrAccessibleWhenUnlocked
, "ak");
151 SEC_CONST_DECL (kSecAttrAccessibleAfterFirstUnlock
, "ck");
152 SEC_CONST_DECL (kSecAttrAccessibleAlways
, "dk");
153 SEC_CONST_DECL (kSecAttrAccessibleWhenUnlockedThisDeviceOnly
, "aku");
154 SEC_CONST_DECL (kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly
, "cku");
155 SEC_CONST_DECL (kSecAttrAccessibleAlwaysThisDeviceOnly
, "dku");
156 SEC_CONST_DECL (kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly
, "akpu");
158 /* kSecAttrProtocol Value Constants. */
159 SEC_CONST_DECL (kSecAttrProtocolFTP
, "ftp ");
160 SEC_CONST_DECL (kSecAttrProtocolFTPAccount
, "ftpa");
161 SEC_CONST_DECL (kSecAttrProtocolHTTP
, "http");
162 SEC_CONST_DECL (kSecAttrProtocolIRC
, "irc ");
163 SEC_CONST_DECL (kSecAttrProtocolNNTP
, "nntp");
164 SEC_CONST_DECL (kSecAttrProtocolPOP3
, "pop3");
165 SEC_CONST_DECL (kSecAttrProtocolSMTP
, "smtp");
166 SEC_CONST_DECL (kSecAttrProtocolSOCKS
, "sox ");
167 SEC_CONST_DECL (kSecAttrProtocolIMAP
, "imap");
168 SEC_CONST_DECL (kSecAttrProtocolLDAP
, "ldap");
169 SEC_CONST_DECL (kSecAttrProtocolAppleTalk
, "atlk");
170 SEC_CONST_DECL (kSecAttrProtocolAFP
, "afp ");
171 SEC_CONST_DECL (kSecAttrProtocolTelnet
, "teln");
172 SEC_CONST_DECL (kSecAttrProtocolSSH
, "ssh ");
173 SEC_CONST_DECL (kSecAttrProtocolFTPS
, "ftps");
174 SEC_CONST_DECL (kSecAttrProtocolHTTPS
, "htps");
175 SEC_CONST_DECL (kSecAttrProtocolHTTPProxy
, "htpx");
176 SEC_CONST_DECL (kSecAttrProtocolHTTPSProxy
, "htsx");
177 SEC_CONST_DECL (kSecAttrProtocolFTPProxy
, "ftpx");
178 SEC_CONST_DECL (kSecAttrProtocolSMB
, "smb ");
179 SEC_CONST_DECL (kSecAttrProtocolRTSP
, "rtsp");
180 SEC_CONST_DECL (kSecAttrProtocolRTSPProxy
, "rtsx");
181 SEC_CONST_DECL (kSecAttrProtocolDAAP
, "daap");
182 SEC_CONST_DECL (kSecAttrProtocolEPPC
, "eppc");
183 SEC_CONST_DECL (kSecAttrProtocolIPP
, "ipp ");
184 SEC_CONST_DECL (kSecAttrProtocolNNTPS
, "ntps");
185 SEC_CONST_DECL (kSecAttrProtocolLDAPS
, "ldps");
186 SEC_CONST_DECL (kSecAttrProtocolTelnetS
, "tels");
187 SEC_CONST_DECL (kSecAttrProtocolIMAPS
, "imps");
188 SEC_CONST_DECL (kSecAttrProtocolIRCS
, "ircs");
189 SEC_CONST_DECL (kSecAttrProtocolPOP3S
, "pops");
191 /* kSecAttrAuthenticationType Value Constants. */
192 SEC_CONST_DECL (kSecAttrAuthenticationTypeNTLM
, "ntlm");
193 SEC_CONST_DECL (kSecAttrAuthenticationTypeMSN
, "msna");
194 SEC_CONST_DECL (kSecAttrAuthenticationTypeDPA
, "dpaa");
195 SEC_CONST_DECL (kSecAttrAuthenticationTypeRPA
, "rpaa");
196 SEC_CONST_DECL (kSecAttrAuthenticationTypeHTTPBasic
, "http");
197 SEC_CONST_DECL (kSecAttrAuthenticationTypeHTTPDigest
, "httd");
198 SEC_CONST_DECL (kSecAttrAuthenticationTypeHTMLForm
, "form");
199 SEC_CONST_DECL (kSecAttrAuthenticationTypeDefault
, "dflt");
201 /* kSecAttrKeyClass Value Constants. Based on <Security/cssmtype.h>
202 CSSM_KEYCLASS_PUBLIC_KEY = 0,
203 CSSM_KEYCLASS_PRIVATE_KEY = 1,
204 CSSM_KEYCLASS_SESSION_KEY = 2,
206 SEC_CONST_DECL (kSecAttrKeyClassPublic
, "0");
207 SEC_CONST_DECL (kSecAttrKeyClassPrivate
, "1");
208 SEC_CONST_DECL (kSecAttrKeyClassSymmetric
, "2");
210 /* kSecAttrKeyType Value Constants. Based on CSSM_ALGORITHMS. */
211 SEC_CONST_DECL (kSecAttrKeyTypeRSA
, "42");
212 SEC_CONST_DECL (kSecAttrKeyTypeEC
, "73"); /* rdar://10755886 */
214 /* kSecAttrSynchronizable Value Constants. */
215 SEC_CONST_DECL (kSecAttrSynchronizableAny
, "syna");
217 /* Constants used by SecKeyGeneratePair() - in SecKey.h. Never used in
218 any SecItem apis directly. */
219 SEC_CONST_DECL (kSecPrivateKeyAttrs
, "private");
220 SEC_CONST_DECL (kSecPublicKeyAttrs
, "public");
222 /* Constants used by SecPassword - in SecPasswordStrength */
223 SEC_CONST_DECL (kSecPasswordMaxLength
, "PasswordMaxLength");
224 SEC_CONST_DECL (kSecPasswordMinLength
, "PasswordMaxLength");
225 SEC_CONST_DECL (kSecPasswordAllowedCharacters
, "PasswordAllowedCharacters");
226 SEC_CONST_DECL (kSecPasswordRequiredCharacters
, "PasswordRequiredCharacters");
228 /* Constants used by SecSharedCredential - in <Security/SecSharedCredential.h> */
229 SEC_CONST_DECL (kSecSharedPassword
, "spwd");
231 SEC_CONST_DECL (kSecUseAuthenticationUIAllow
, "u_AuthUIA");
232 SEC_CONST_DECL (kSecUseAuthenticationUIFail
, "u_AuthUIF");
233 SEC_CONST_DECL (kSecUseAuthenticationUISkip
, "u_AuthUIS");
234 SEC_CONST_DECL (kSecUseAuthenticationContext
, "u_AuthCtx");
236 /* kSecAttrTokenID Value Constants. */
237 SEC_CONST_DECL (kSecAttrTokenIDSecureEnclave
, "com.apple.setoken");
239 /* View Hint Constants */
241 SEC_CONST_DECL (kSecAttrViewHintPCSMasterKey
, "PCS-MasterKey");
242 SEC_CONST_DECL (kSecAttrViewHintPCSiCloudDrive
, "PCS-iCloudDrive");
243 SEC_CONST_DECL (kSecAttrViewHintPCSPhotos
, "PCS-Photos");
244 SEC_CONST_DECL (kSecAttrViewHintPCSCloudKit
, "PCS-CloudKit");
245 SEC_CONST_DECL (kSecAttrViewHintPCSEscrow
, "PCS-Escrow");
246 SEC_CONST_DECL (kSecAttrViewHintPCSFDE
, "PCS-FDE");
247 SEC_CONST_DECL (kSecAttrViewHintPCSMailDrop
, "PCS-Maildrop");
248 SEC_CONST_DECL (kSecAttrViewHintPCSiCloudBackup
, "PCS-Backup");
249 SEC_CONST_DECL (kSecAttrViewHintPCSNotes
, "PCS-Notes");
250 SEC_CONST_DECL (kSecAttrViewHintPCSiMessage
, "PCS-iMessage");
251 SEC_CONST_DECL (kSecAttrViewHintPCSFeldspar
, "PCS-Feldspar");
253 SEC_CONST_DECL (kSecAttrViewHintAppleTV
, "AppleTV");
254 SEC_CONST_DECL (kSecAttrViewHintHomeKit
, "HomeKit");
255 SEC_CONST_DECL (kSecAttrViewHintThumper
, "Thumper");