2 * Copyright (c) 2006-2008,2010-2013 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) CFTypeRef k = (CFTypeRef)(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 (kSecAttrCreationDate
, "cdat");
46 SEC_CONST_DECL (kSecAttrModificationDate
, "mdat");
47 SEC_CONST_DECL (kSecAttrDescription
, "desc");
48 SEC_CONST_DECL (kSecAttrComment
, "icmt");
49 SEC_CONST_DECL (kSecAttrCreator
, "crtr");
50 SEC_CONST_DECL (kSecAttrType
, "type");
51 SEC_CONST_DECL (kSecAttrLabel
, "labl");
52 SEC_CONST_DECL (kSecAttrIsInvisible
, "invi");
53 SEC_CONST_DECL (kSecAttrIsNegative
, "nega");
54 SEC_CONST_DECL (kSecAttrAccount
, "acct");
55 SEC_CONST_DECL (kSecAttrService
, "svce");
56 SEC_CONST_DECL (kSecAttrGeneric
, "gena");
57 SEC_CONST_DECL (kSecAttrSecurityDomain
, "sdmn");
58 SEC_CONST_DECL (kSecAttrServer
, "srvr");
59 SEC_CONST_DECL (kSecAttrProtocol
, "ptcl");
60 SEC_CONST_DECL (kSecAttrAuthenticationType
, "atyp");
61 SEC_CONST_DECL (kSecAttrPort
, "port");
62 SEC_CONST_DECL (kSecAttrPath
, "path");
63 SEC_CONST_DECL (kSecAttrVolume
, "volm");
64 SEC_CONST_DECL (kSecAttrAddress
, "addr");
65 SEC_CONST_DECL (kSecAttrAFPServerSignature
, "afps");
66 SEC_CONST_DECL (kSecAttrAlias
, "alis");
67 SEC_CONST_DECL (kSecAttrSubject
, "subj");
68 SEC_CONST_DECL (kSecAttrIssuer
, "issr");
69 SEC_CONST_DECL (kSecAttrSerialNumber
, "slnr");
70 SEC_CONST_DECL (kSecAttrSubjectKeyID
, "skid");
71 SEC_CONST_DECL (kSecAttrPublicKeyHash
, "pkhh");
72 SEC_CONST_DECL (kSecAttrCertificateType
, "ctyp");
73 SEC_CONST_DECL (kSecAttrCertificateEncoding
, "cenc");
74 SEC_CONST_DECL (kSecAttrKeyClass
, "kcls");
75 SEC_CONST_DECL (kSecAttrApplicationLabel
, "klbl");
76 SEC_CONST_DECL (kSecAttrIsPermanent
, "perm");
77 SEC_CONST_DECL (kSecAttrIsPrivate
, "priv");
78 SEC_CONST_DECL (kSecAttrIsModifiable
, "modi");
79 SEC_CONST_DECL (kSecAttrApplicationTag
, "atag");
80 SEC_CONST_DECL (kSecAttrKeyCreator
, "crtr");
81 SEC_CONST_DECL (kSecAttrKeyType
, "type");
82 SEC_CONST_DECL (kSecAttrKeySizeInBits
, "bsiz");
83 SEC_CONST_DECL (kSecAttrEffectiveKeySize
, "esiz");
84 SEC_CONST_DECL (kSecAttrStartDate
, "sdat");
85 SEC_CONST_DECL (kSecAttrEndDate
, "edat");
86 SEC_CONST_DECL (kSecAttrIsSensitive
, "sens");
87 SEC_CONST_DECL (kSecAttrWasAlwaysSensitive
, "asen");
88 SEC_CONST_DECL (kSecAttrIsExtractable
, "extr");
89 SEC_CONST_DECL (kSecAttrWasNeverExtractable
, "next");
90 SEC_CONST_DECL (kSecAttrCanEncrypt
, "encr");
91 SEC_CONST_DECL (kSecAttrCanDecrypt
, "decr");
92 SEC_CONST_DECL (kSecAttrCanDerive
, "drve");
93 SEC_CONST_DECL (kSecAttrCanSign
, "sign");
94 SEC_CONST_DECL (kSecAttrCanVerify
, "vrfy");
95 SEC_CONST_DECL (kSecAttrCanSignRecover
, "snrc");
96 SEC_CONST_DECL (kSecAttrCanVerifyRecover
, "vyrc");
97 SEC_CONST_DECL (kSecAttrCanWrap
, "wrap");
98 SEC_CONST_DECL (kSecAttrCanUnwrap
, "unwp");
99 /* Attribute Constants (Private) */
100 SEC_CONST_DECL (kSecAttrScriptCode
, "scrp");
101 SEC_CONST_DECL (kSecAttrHasCustomIcon
, "cusi");
102 SEC_CONST_DECL (kSecAttrCRLType
, "crlt");
103 SEC_CONST_DECL (kSecAttrCRLEncoding
, "crle");
104 SEC_CONST_DECL (kSecAttrSynchronizable
, "sync");
105 SEC_CONST_DECL (kSecAttrSynchronizableAny
, "syna");
106 SEC_CONST_DECL (kSecAttrTombstone
, "tomb");
108 /* Search Constants */
109 SEC_CONST_DECL (kSecMatchPolicy
, "m_Policy");
110 SEC_CONST_DECL (kSecMatchItemList
, "m_ItemList");
111 SEC_CONST_DECL (kSecMatchSearchList
, "m_SearchList");
112 SEC_CONST_DECL (kSecMatchIssuers
, "m_Issuers");
113 SEC_CONST_DECL (kSecMatchEmailAddressIfPresent
, "m_EmailAddressIfPresent");
114 SEC_CONST_DECL (kSecMatchSubjectContains
, "m_SubjectContains");
115 SEC_CONST_DECL (kSecMatchCaseInsensitive
, "m_CaseInsensitive");
116 SEC_CONST_DECL (kSecMatchTrustedOnly
, "m_TrustedOnly");
117 SEC_CONST_DECL (kSecMatchValidOnDate
, "m_ValidOnDate");
118 SEC_CONST_DECL (kSecMatchLimit
, "m_Limit");
119 /* Could just use kCFBooleanTrue and kCFBooleanFalse for these 2. */
120 SEC_CONST_DECL (kSecMatchLimitOne
, "m_LimitOne");
121 SEC_CONST_DECL (kSecMatchLimitAll
, "m_LimitAll");
123 /* Return Type Key Constants */
124 SEC_CONST_DECL (kSecReturnData
, "r_Data");
125 SEC_CONST_DECL (kSecReturnAttributes
, "r_Attributes");
126 SEC_CONST_DECL (kSecReturnRef
, "r_Ref");
127 SEC_CONST_DECL (kSecReturnPersistentRef
, "r_PersistentRef");
129 /* Value Type Key Constants */
130 SEC_CONST_DECL (kSecValueData
, "v_Data");
131 SEC_CONST_DECL (kSecValueRef
, "v_Ref");
132 SEC_CONST_DECL (kSecValuePersistentRef
, "v_PersistentRef");
134 /* Other Constants */
135 SEC_CONST_DECL (kSecUseItemList
, "u_ItemList");
136 SEC_CONST_DECL (kSecUseTombstones
, "u_Tomb");
137 #if defined(MULTIPLE_KEYCHAINS)
138 /* Other Constants (Private) */
139 SEC_CONST_DECL (kSecUseKeychain
, "u_Keychain");
140 SEC_CONST_DECL (kSecUseKeychainList
, "u_KeychainList");
141 #endif /* !defined(MULTIPLE_KEYCHAINS) */
143 /* kSecAttrAccessible Value Constants. */
144 SEC_CONST_DECL (kSecAttrAccessibleWhenUnlocked
, "ak");
145 SEC_CONST_DECL (kSecAttrAccessibleAfterFirstUnlock
, "ck");
146 SEC_CONST_DECL (kSecAttrAccessibleAlways
, "dk");
147 SEC_CONST_DECL (kSecAttrAccessibleWhenUnlockedThisDeviceOnly
, "aku");
148 SEC_CONST_DECL (kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly
, "cku");
149 SEC_CONST_DECL (kSecAttrAccessibleAlwaysThisDeviceOnly
, "dku");
151 /* kSecAttrProtocol Value Constants. */
152 SEC_CONST_DECL (kSecAttrProtocolFTP
, "ftp ");
153 SEC_CONST_DECL (kSecAttrProtocolFTPAccount
, "ftpa");
154 SEC_CONST_DECL (kSecAttrProtocolHTTP
, "http");
155 SEC_CONST_DECL (kSecAttrProtocolIRC
, "irc ");
156 SEC_CONST_DECL (kSecAttrProtocolNNTP
, "nntp");
157 SEC_CONST_DECL (kSecAttrProtocolPOP3
, "pop3");
158 SEC_CONST_DECL (kSecAttrProtocolSMTP
, "smtp");
159 SEC_CONST_DECL (kSecAttrProtocolSOCKS
, "sox ");
160 SEC_CONST_DECL (kSecAttrProtocolIMAP
, "imap");
161 SEC_CONST_DECL (kSecAttrProtocolLDAP
, "ldap");
162 SEC_CONST_DECL (kSecAttrProtocolAppleTalk
, "atlk");
163 SEC_CONST_DECL (kSecAttrProtocolAFP
, "afp ");
164 SEC_CONST_DECL (kSecAttrProtocolTelnet
, "teln");
165 SEC_CONST_DECL (kSecAttrProtocolSSH
, "ssh ");
166 SEC_CONST_DECL (kSecAttrProtocolFTPS
, "ftps");
167 SEC_CONST_DECL (kSecAttrProtocolHTTPS
, "htps");
168 SEC_CONST_DECL (kSecAttrProtocolHTTPProxy
, "htpx");
169 SEC_CONST_DECL (kSecAttrProtocolHTTPSProxy
, "htsx");
170 SEC_CONST_DECL (kSecAttrProtocolFTPProxy
, "ftpx");
171 SEC_CONST_DECL (kSecAttrProtocolSMB
, "smb ");
172 SEC_CONST_DECL (kSecAttrProtocolRTSP
, "rtsp");
173 SEC_CONST_DECL (kSecAttrProtocolRTSPProxy
, "rtsx");
174 SEC_CONST_DECL (kSecAttrProtocolDAAP
, "daap");
175 SEC_CONST_DECL (kSecAttrProtocolEPPC
, "eppc");
176 SEC_CONST_DECL (kSecAttrProtocolIPP
, "ipp ");
177 SEC_CONST_DECL (kSecAttrProtocolNNTPS
, "ntps");
178 SEC_CONST_DECL (kSecAttrProtocolLDAPS
, "ldps");
179 SEC_CONST_DECL (kSecAttrProtocolTelnetS
, "tels");
180 SEC_CONST_DECL (kSecAttrProtocolIMAPS
, "imps");
181 SEC_CONST_DECL (kSecAttrProtocolIRCS
, "ircs");
182 SEC_CONST_DECL (kSecAttrProtocolPOP3S
, "pops");
184 /* kSecAttrAuthenticationType Value Constants. */
185 SEC_CONST_DECL (kSecAttrAuthenticationTypeNTLM
, "ntlm");
186 SEC_CONST_DECL (kSecAttrAuthenticationTypeMSN
, "msna");
187 SEC_CONST_DECL (kSecAttrAuthenticationTypeDPA
, "dpaa");
188 SEC_CONST_DECL (kSecAttrAuthenticationTypeRPA
, "rpaa");
189 SEC_CONST_DECL (kSecAttrAuthenticationTypeHTTPBasic
, "http");
190 SEC_CONST_DECL (kSecAttrAuthenticationTypeHTTPDigest
, "httd");
191 SEC_CONST_DECL (kSecAttrAuthenticationTypeHTMLForm
, "form");
192 SEC_CONST_DECL (kSecAttrAuthenticationTypeDefault
, "dflt");
194 /* kSecAttrKeyClass Value Constants. Based on <Security/cssmtype.h>
195 CSSM_KEYCLASS_PUBLIC_KEY = 0,
196 CSSM_KEYCLASS_PRIVATE_KEY = 1,
197 CSSM_KEYCLASS_SESSION_KEY = 2,
199 SEC_CONST_DECL (kSecAttrKeyClassPublic
, "0");
200 SEC_CONST_DECL (kSecAttrKeyClassPrivate
, "1");
201 SEC_CONST_DECL (kSecAttrKeyClassSymmetric
, "2");
203 /* kSecAttrKeyType Value Constants. Based on CSSM_ALGORITHMS. */
204 SEC_CONST_DECL (kSecAttrKeyTypeRSA
, "42");
205 SEC_CONST_DECL (kSecAttrKeyTypeEC
, "73"); /* rdar://10755886 */
207 /* Constants used by SecKeyGeneratePair() - in SecKey.h. Never used in
208 any SecItem apis directly. */
209 SEC_CONST_DECL (kSecPrivateKeyAttrs
, "private");
210 SEC_CONST_DECL (kSecPublicKeyAttrs
, "public");
212 /* Constants used by SecPassword - in SecPasswordStrength */
213 SEC_CONST_DECL (kSecPasswordMaxLength
, "PasswordMaxLength");
214 SEC_CONST_DECL (kSecPasswordMinLength
, "PasswordMaxLength");
215 SEC_CONST_DECL (kSecPasswordAllowedCharacters
, "PasswordAllowedCharacters");
216 SEC_CONST_DECL (kSecPasswordRequiredCharacters
, "PasswordRequiredCharacters");