objc2_security/generated/SecItem.rs
1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ptr::NonNull;
4use objc2_core_foundation::*;
5
6use crate::*;
7
8extern "C" {
9 /// Predefined key constant used to get or set item class values in
10 /// a dictionary. Its value is one of the constants defined in the Value
11 /// Constants for kSecClass.
12 ///
13 /// class code. You use this key to get or set a value of type CFTypeRef
14 /// that contains the item class code.
15 ///
16 /// See also [Apple's documentation](https://developer.apple.com/documentation/security/ksecclass?language=objc)
17 pub static kSecClass: &'static CFString;
18}
19
20extern "C" {
21 /// Predefined item class constants used to get or set values in
22 /// a dictionary. The kSecClass constant is the key and its value is one
23 /// of the constants defined here. Note: on Mac OS X 10.6, only items
24 /// of class kSecClassInternetPassword are supported.
25 ///
26 /// See also [Apple's documentation](https://developer.apple.com/documentation/security/ksecclassinternetpassword?language=objc)
27 pub static kSecClassInternetPassword: &'static CFString;
28}
29
30extern "C" {
31 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecclassgenericpassword?language=objc)
32 pub static kSecClassGenericPassword: &'static CFString;
33}
34
35extern "C" {
36 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecclasscertificate?language=objc)
37 pub static kSecClassCertificate: &'static CFString;
38}
39
40extern "C" {
41 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecclasskey?language=objc)
42 pub static kSecClassKey: &'static CFString;
43}
44
45extern "C" {
46 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecclassidentity?language=objc)
47 pub static kSecClassIdentity: &'static CFString;
48}
49
50extern "C" {
51 /// Predefined item attribute keys used to get or set values in a
52 /// dictionary. Not all attributes apply to each item class. The table
53 /// below lists the currently defined attributes for each item class:
54 ///
55 /// kSecClassGenericPassword item attributes:
56 /// kSecAttrAccess (macOS only)
57 /// kSecAttrAccessControl
58 /// kSecAttrAccessGroup (iOS; also macOS if kSecAttrSynchronizable and/or kSecUseDataProtectionKeychain set)
59 /// kSecAttrAccessible (iOS; also macOS if kSecAttrSynchronizable and/or kSecUseDataProtectionKeychain set)
60 /// kSecAttrCreationDate
61 /// kSecAttrModificationDate
62 /// kSecAttrDescription
63 /// kSecAttrComment
64 /// kSecAttrCreator
65 /// kSecAttrType
66 /// kSecAttrLabel
67 /// kSecAttrIsInvisible
68 /// kSecAttrIsNegative
69 /// kSecAttrAccount
70 /// kSecAttrService
71 /// kSecAttrGeneric
72 /// kSecAttrSynchronizable
73 ///
74 /// kSecClassInternetPassword item attributes:
75 /// kSecAttrAccess (macOS only)
76 /// kSecAttrAccessControl
77 /// kSecAttrAccessGroup (iOS; also macOS if kSecAttrSynchronizable and/or kSecUseDataProtectionKeychain set)
78 /// kSecAttrAccessible (iOS; also macOS if kSecAttrSynchronizable and/or kSecUseDataProtectionKeychain set)
79 /// kSecAttrCreationDate
80 /// kSecAttrModificationDate
81 /// kSecAttrDescription
82 /// kSecAttrComment
83 /// kSecAttrCreator
84 /// kSecAttrType
85 /// kSecAttrLabel
86 /// kSecAttrIsInvisible
87 /// kSecAttrIsNegative
88 /// kSecAttrAccount
89 /// kSecAttrSecurityDomain
90 /// kSecAttrServer
91 /// kSecAttrProtocol
92 /// kSecAttrAuthenticationType
93 /// kSecAttrPort
94 /// kSecAttrPath
95 /// kSecAttrSynchronizable
96 ///
97 /// kSecClassCertificate item attributes:
98 /// kSecAttrAccessible (iOS only)
99 /// kSecAttrAccessControl (iOS only)
100 /// kSecAttrAccessGroup (iOS only)
101 /// kSecAttrCertificateType
102 /// kSecAttrCertificateEncoding
103 /// kSecAttrLabel
104 /// kSecAttrSubject
105 /// kSecAttrIssuer
106 /// kSecAttrSerialNumber
107 /// kSecAttrSubjectKeyID
108 /// kSecAttrPublicKeyHash
109 /// kSecAttrSynchronizable
110 ///
111 /// kSecClassKey item attributes:
112 /// kSecAttrAccess (macOS only)
113 /// kSecAttrAccessControl
114 /// kSecAttrAccessGroup (iOS; also macOS if kSecAttrSynchronizable and/or kSecUseDataProtectionKeychain set)
115 /// kSecAttrAccessible (iOS; also macOS if kSecAttrSynchronizable and/or kSecUseDataProtectionKeychain set)
116 /// kSecAttrKeyClass
117 /// kSecAttrLabel
118 /// kSecAttrApplicationLabel
119 /// kSecAttrIsPermanent
120 /// kSecAttrApplicationTag
121 /// kSecAttrKeyType
122 /// kSecAttrPRF (macOS only)
123 /// kSecAttrSalt (macOS only)
124 /// kSecAttrRounds (macOS only)
125 /// kSecAttrKeySizeInBits
126 /// kSecAttrEffectiveKeySize
127 /// kSecAttrCanEncrypt
128 /// kSecAttrCanDecrypt
129 /// kSecAttrCanDerive
130 /// kSecAttrCanSign
131 /// kSecAttrCanVerify
132 /// kSecAttrCanWrap
133 /// kSecAttrCanUnwrap
134 /// kSecAttrSynchronizable
135 ///
136 /// Note that the attributes kSecAttrCan* describe attributes of the
137 /// key itself at relatively high level. Some of these attributes are
138 /// mathematical -- for example, a DSA key cannot encrypt. Others are
139 /// key-level policy issues -- for example, it is good cryptographic
140 /// hygiene to use an RSA key either for encryption or signing but not
141 /// both. Compare these to the certificate-level policy values in
142 /// SecPolicy.h.
143 ///
144 /// kSecClassIdentity item attributes:
145 /// Since an identity is the combination of a private key and a
146 /// certificate, this class shares attributes of both kSecClassKey and
147 /// kSecClassCertificate.
148 ///
149 ///
150 /// indicates when your application needs access to an item's data. You
151 /// should choose the most restrictive option that meets your application's
152 /// needs to allow the system to protect that item in the best way possible.
153 /// See the "kSecAttrAccessible Value Constants" section for a list of
154 /// values which can be specified.
155 /// IMPORTANT: This attribute is currently not supported for macOS keychain
156 /// items, unless the kSecAttrSynchronizable attribute is also present. If
157 /// both attributes are specified on either macOS or iOS, the value for the
158 /// kSecAttrAccessible key may only be one whose name does not end with
159 /// "ThisDeviceOnly", as those cannot sync to another device.
160 ///
161 ///
162 /// is SecAccessControl instance which contains access control conditions
163 /// for item.
164 /// IMPORTANT: This attribute is mutually exclusive with kSecAttrAccess
165 /// attribute.
166 ///
167 ///
168 /// is a SecAccessRef describing the access control settings for this item.
169 /// This key is available on macOS only.
170 ///
171 ///
172 /// a CFStringRef indicating which access group a item is in. The access
173 /// groups that a particular application has membership in are determined by
174 /// two entitlements for that application. The application-identifier
175 /// entitlement contains the application's single access group, unless
176 /// there is a keychain-access-groups entitlement present. The latter
177 /// has as its value a list of access groups; the first item in this list
178 /// is the default access group. Unless a specific access group is provided
179 /// as the value of kSecAttrAccessGroup when SecItemAdd is called, new items
180 /// are created in the application's default access group. Specifying this
181 /// attribute in SecItemCopyMatching, SecItemUpdate, or SecItemDelete calls
182 /// limits the search to the specified access group (of which the calling
183 /// application must be a member to obtain matching results.) To share
184 /// keychain items between multiple applications, each application must have
185 /// a common group listed in its keychain-access-groups entitlement, and each
186 /// must specify this shared access group name as the value for the
187 /// kSecAttrAccessGroup key in the dictionary passed to SecItem functions.
188 ///
189 ///
190 /// a CFBooleanRef indicating whether the item in question can be synchronized.
191 /// To add a new item which can be synced to other devices, or to obtain
192 /// synchronizable results from a query, supply this key with a value of
193 /// kCFBooleanTrue. If the key is not supplied, or has a value of
194 /// kCFBooleanFalse, then no synchronizable items will be added or returned.
195 /// A predefined value, kSecAttrSynchronizableAny, may be provided instead of
196 /// kCFBooleanTrue if both synchronizable and non-synchronizable results are
197 /// desired.
198 ///
199 /// IMPORTANT: Specifying the kSecAttrSynchronizable key has several caveats:
200 ///
201 /// - Updating or deleting items using the kSecAttrSynchronizable key will
202 /// affect all copies of the item, not just the one on your local device.
203 /// Be sure that it makes sense to use the same password on all devices
204 /// before deciding to make a password synchronizable.
205 /// - Starting in iOS 14, macOS 11, and watchOS 7, the keychain
206 /// synchronizes passwords, certificates, and cryptographic keys.
207 /// Earlier OS versions synchronize only passwords.
208 /// - Items stored or obtained using the kSecAttrSynchronizable key cannot
209 /// specify SecAccessRef-based access control with kSecAttrAccess. If a
210 /// password is intended to be shared between multiple applications, the
211 /// kSecAttrAccessGroup key must be specified, and each application
212 /// using this password must have a 'keychain-access-groups' entitlement
213 /// with the specified access group value.
214 /// - Items stored or obtained using the kSecAttrSynchronizable key may
215 /// not also specify a kSecAttrAccessible value which is incompatible
216 /// with syncing (namely, those whose names end with "ThisDeviceOnly".)
217 /// - On macOS, when kSecAttrSynchronizable is set to true, returning
218 /// references is supported only for Certificate, Key or Identity items.
219 /// - Persistent references to synchronizable items should be avoided;
220 /// while they may work locally, they cannot be moved between devices,
221 /// and may not resolve if the item is modified on some other device.
222 /// - When specifying a query that uses the kSecAttrSynchronizable key,
223 /// search keys are limited to the item's class and attributes.
224 /// The only search constant which may be used is kSecMatchLimit; other
225 /// constants using the kSecMatch prefix are not supported at this time.
226 ///
227 ///
228 /// non-synchronizable results should be returned from this query. This may be
229 /// used as a value for the kSecAttrSynchronizable dictionary key in a call to
230 /// SecItemCopyMatching, SecItemUpdate, or SecItemDelete.
231 ///
232 ///
233 /// value is the item's creation date. You use this key to get a value
234 /// of type CFDateRef that represents the date the item was created.
235 ///
236 /// whose value is the item's modification date. You use this key to get
237 /// a value of type CFDateRef that represents the last time the item was
238 /// updated.
239 ///
240 /// the item's description attribute. You use this key to set or get a
241 /// value of type CFStringRef that represents a user-visible string
242 /// describing this particular kind of item (e.g., "disk image password").
243 ///
244 /// item's comment attribute. You use this key to set or get a value of
245 /// type CFStringRef containing the user-editable comment for this item.
246 ///
247 /// item's creator attribute. You use this key to set or get a value of
248 /// type CFNumberRef that represents the item's creator. This number is
249 /// the unsigned integer representation of a four-character code (e.g.,
250 /// 'aCrt').
251 ///
252 /// type attribute. You use this key to set or get a value of type
253 /// CFNumberRef that represents the item's type. This number is the
254 /// unsigned integer representation of a four-character code (e.g.,
255 /// 'aTyp').
256 ///
257 /// item's label attribute. You use this key to set or get a value of
258 /// type CFStringRef containing the user-visible label for this item.
259 ///
260 /// item's invisible attribute. You use this key to set or get a value
261 /// of type CFBooleanRef that indicates whether the item is invisible
262 /// (i.e., should not be displayed.)
263 ///
264 /// item's negative attribute. You use this key to set or get a value of
265 /// type CFBooleanRef that indicates whether there is a valid password
266 /// associated with this keychain item. This is useful if your application
267 /// doesn't want a password for some particular service to be stored in
268 /// the keychain, but prefers that it always be entered by the user.
269 ///
270 /// item's account attribute. You use this key to set or get a CFStringRef
271 /// that contains an account name. (Items of class
272 /// kSecClassGenericPassword, kSecClassInternetPassword have this
273 /// attribute.)
274 ///
275 /// item's service attribute. You use this key to set or get a CFStringRef
276 /// that represents the service associated with this item. (Items of class
277 /// kSecClassGenericPassword have this attribute.)
278 ///
279 /// item's generic attribute. You use this key to set or get a value of
280 /// CFDataRef that contains a user-defined attribute. (Items of class
281 /// kSecClassGenericPassword have this attribute.)
282 ///
283 /// is the item's security domain attribute. You use this key to set or
284 /// get a CFStringRef value that represents the Internet security domain.
285 /// (Items of class kSecClassInternetPassword have this attribute.)
286 ///
287 /// item's server attribute. You use this key to set or get a value of
288 /// type CFStringRef that contains the server's domain name or IP address.
289 /// (Items of class kSecClassInternetPassword have this attribute.)
290 ///
291 /// item's protocol attribute. You use this key to set or get a value of
292 /// type CFNumberRef that denotes the protocol for this item (see the
293 /// SecProtocolType enum in SecKeychainItem.h). (Items of class
294 /// kSecClassInternetPassword have this attribute.)
295 ///
296 /// is the item's authentication type attribute. You use this key to set
297 /// or get a value of type CFNumberRef that denotes the authentication
298 /// scheme for this item (see the kSecAttrAuthenticationType value
299 /// constants below).
300 ///
301 /// port attribute. You use this key to set or get a CFNumberRef value
302 /// that represents an Internet port number. (Items of class
303 /// kSecClassInternetPassword have this attribute.)
304 ///
305 /// path attribute, typically this is the path component of the URL. You use
306 /// this key to set or get a CFStringRef value that represents a path. (Items
307 /// of class kSecClassInternetPassword have this attribute.)
308 ///
309 /// value is the item's subject. You use this key to get a value of type
310 /// CFDataRef that contains the X.500 subject name of a certificate.
311 /// (Items of class kSecClassCertificate have this attribute.)
312 ///
313 /// is the item's issuer. You use this key to get a value of type
314 /// CFDataRef that contains the X.500 issuer name of a certificate. (Items
315 /// of class kSecClassCertificate have this attribute.)
316 ///
317 /// value is the item's serial number. You use this key to get a value
318 /// of type CFDataRef that contains the serial number data of a
319 /// certificate. (Items of class kSecClassCertificate have this
320 /// attribute.)
321 ///
322 /// value is the item's subject key ID. You use this key to get a value
323 /// of type CFDataRef that contains the subject key ID of a certificate.
324 /// (Items of class kSecClassCertificate have this attribute.)
325 ///
326 /// whose value is the item's public key hash. You use this key to get a
327 /// value of type CFDataRef that contains the hash of a certificate's
328 /// public key. (Items of class kSecClassCertificate have this attribute.)
329 ///
330 /// whose value is the item's certificate type. You use this key to get
331 /// a value of type CFNumberRef that denotes the certificate type
332 /// (On iOS, currently the value of this attribute must be equal to the
333 /// version of the X509 certificate. So, 1 for v1, 2 for v2, and 3 for v3
334 /// certificates). (On macOS, see the CSSM_CERT_TYPE enum in cssmtype.h).
335 /// Only items of class kSecClassCertificate have this attribute.
336 ///
337 /// key whose value is the item's certificate encoding. You use this key
338 /// to get a value of type CFNumberRef that denotes the certificate
339 /// encoding (On iOS, currently only the value 3 meaning
340 /// kSecAttrCertificateEncodingDER is supported). On macOS, see the
341 /// CSSM_CERT_ENCODING enum in cssmtype.h. Only items of class
342 /// kSecClassCertificate have this attribute.
343 ///
344 /// value is one of kSecAttrKeyClassPublic, kSecAttrKeyClassPrivate or
345 /// kSecAttrKeyClassSymmetric.
346 ///
347 /// is the key's application label attribute. This is different from the
348 /// kSecAttrLabel (which is intended to be human-readable). This attribute
349 /// is used to look up a key programmatically; in particular, for keys of
350 /// class kSecAttrKeyClassPublic and kSecAttrKeyClassPrivate, the value of
351 /// this attribute is the hash of the public key. This item is a type of CFDataRef.
352 /// Legacy keys may contain a UUID in this field as a CFStringRef.
353 ///
354 /// CFBooleanRef indicating whether the key in question will be stored
355 /// permanently.
356 ///
357 /// CFBooleanRef indicating that the key in question can only be exported
358 /// in a wrapped (encrypted) format. macOS only.
359 ///
360 /// CFBooleanRef indicating whether the key in question can be exported from
361 /// its keychain container. macOS only.
362 ///
363 /// CFDataRef containing private tag data.
364 ///
365 /// CFNumberRef indicating the algorithm associated with this key
366 /// (On iOS, currently only the value 42 is supported, alternatively you can use
367 /// kSecAttrKeyTypeRSA). (On macOS, see the CSSM_ALGORITHMS enum in cssmtype.h).
368 ///
369 ///
370 /// (pseudo-random function) for this key (see "kSecAttrPRF Value Constants".)
371 /// macOS only.
372 ///
373 /// CFData containing the salt to use for this key. macOS only.
374 ///
375 /// number of rounds for the pseudo-random function specified by kSecAttrPRF.
376 /// macOS only.
377 ///
378 /// is a CFNumberRef indicating the number of bits in this key.
379 ///
380 /// is a CFNumberRef indicating the effective number of bits in this key.
381 /// For example, a DES key has a kSecAttrKeySizeInBits of 64, but a
382 /// kSecAttrEffectiveKeySize of 56 bits.
383 ///
384 /// CFBooleanRef indicating whether the key in question can be used to
385 /// encrypt data.
386 ///
387 /// CFBooleanRef indicating whether the key in question can be used to
388 /// decrypt data.
389 ///
390 /// CFBooleanRef indicating whether the key in question can be used to
391 /// derive another key.
392 ///
393 /// CFBooleanRef indicating whether the key in question can be used to
394 /// create a digital signature.
395 ///
396 /// CFBooleanRef indicating whether the key in question can be used to
397 /// verify a digital signature.
398 ///
399 /// CFBooleanRef indicating whether the key in question can be used to
400 /// wrap another key.
401 ///
402 /// CFBooleanRef indicating whether the key in question can be used to
403 /// unwrap another key.
404 ///
405 /// a CFStringRef. This value is part of the primary key of each item, and
406 /// can be used to help distiguish Sync Views when defining their
407 /// queries. iOS and sychronizable items only.
408 ///
409 /// indicates that item is backed by external token. Value of this attribute
410 /// is CFStringRef uniquely identifying containing token. When this attribute
411 /// is not present, item is stored in internal keychain database.
412 /// Note that once item is created, this attribute cannot be changed - in other
413 /// words it is not possible to migrate existing items to, from or between tokens.
414 /// Currently the only available value for this attribute is
415 /// kSecAttrTokenIDSecureEnclave, which indicates that item (private key) is
416 /// backed by device's Secure Enclave.
417 ///
418 /// See also [Apple's documentation](https://developer.apple.com/documentation/security/ksecattraccessible?language=objc)
419 pub static kSecAttrAccessible: &'static CFString;
420}
421
422extern "C" {
423 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattraccess?language=objc)
424 pub static kSecAttrAccess: &'static CFString;
425}
426
427extern "C" {
428 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattraccesscontrol?language=objc)
429 pub static kSecAttrAccessControl: &'static CFString;
430}
431
432extern "C" {
433 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattraccessgroup?language=objc)
434 pub static kSecAttrAccessGroup: &'static CFString;
435}
436
437extern "C" {
438 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrsynchronizable?language=objc)
439 pub static kSecAttrSynchronizable: &'static CFString;
440}
441
442extern "C" {
443 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrsynchronizableany?language=objc)
444 pub static kSecAttrSynchronizableAny: &'static CFString;
445}
446
447extern "C" {
448 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrcreationdate?language=objc)
449 pub static kSecAttrCreationDate: &'static CFString;
450}
451
452extern "C" {
453 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrmodificationdate?language=objc)
454 pub static kSecAttrModificationDate: &'static CFString;
455}
456
457extern "C" {
458 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrdescription?language=objc)
459 pub static kSecAttrDescription: &'static CFString;
460}
461
462extern "C" {
463 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrcomment?language=objc)
464 pub static kSecAttrComment: &'static CFString;
465}
466
467extern "C" {
468 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrcreator?language=objc)
469 pub static kSecAttrCreator: &'static CFString;
470}
471
472extern "C" {
473 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrtype?language=objc)
474 pub static kSecAttrType: &'static CFString;
475}
476
477extern "C" {
478 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrlabel?language=objc)
479 pub static kSecAttrLabel: &'static CFString;
480}
481
482extern "C" {
483 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrisinvisible?language=objc)
484 pub static kSecAttrIsInvisible: &'static CFString;
485}
486
487extern "C" {
488 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrisnegative?language=objc)
489 pub static kSecAttrIsNegative: &'static CFString;
490}
491
492extern "C" {
493 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattraccount?language=objc)
494 pub static kSecAttrAccount: &'static CFString;
495}
496
497extern "C" {
498 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrservice?language=objc)
499 pub static kSecAttrService: &'static CFString;
500}
501
502extern "C" {
503 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrgeneric?language=objc)
504 pub static kSecAttrGeneric: &'static CFString;
505}
506
507extern "C" {
508 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrsecuritydomain?language=objc)
509 pub static kSecAttrSecurityDomain: &'static CFString;
510}
511
512extern "C" {
513 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrserver?language=objc)
514 pub static kSecAttrServer: &'static CFString;
515}
516
517extern "C" {
518 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocol?language=objc)
519 pub static kSecAttrProtocol: &'static CFString;
520}
521
522extern "C" {
523 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrauthenticationtype?language=objc)
524 pub static kSecAttrAuthenticationType: &'static CFString;
525}
526
527extern "C" {
528 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrport?language=objc)
529 pub static kSecAttrPort: &'static CFString;
530}
531
532extern "C" {
533 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrpath?language=objc)
534 pub static kSecAttrPath: &'static CFString;
535}
536
537extern "C" {
538 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrsubject?language=objc)
539 pub static kSecAttrSubject: &'static CFString;
540}
541
542extern "C" {
543 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrissuer?language=objc)
544 pub static kSecAttrIssuer: &'static CFString;
545}
546
547extern "C" {
548 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrserialnumber?language=objc)
549 pub static kSecAttrSerialNumber: &'static CFString;
550}
551
552extern "C" {
553 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrsubjectkeyid?language=objc)
554 pub static kSecAttrSubjectKeyID: &'static CFString;
555}
556
557extern "C" {
558 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrpublickeyhash?language=objc)
559 pub static kSecAttrPublicKeyHash: &'static CFString;
560}
561
562extern "C" {
563 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrcertificatetype?language=objc)
564 pub static kSecAttrCertificateType: &'static CFString;
565}
566
567extern "C" {
568 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrcertificateencoding?language=objc)
569 pub static kSecAttrCertificateEncoding: &'static CFString;
570}
571
572extern "C" {
573 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrkeyclass?language=objc)
574 pub static kSecAttrKeyClass: &'static CFString;
575}
576
577extern "C" {
578 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrapplicationlabel?language=objc)
579 pub static kSecAttrApplicationLabel: &'static CFString;
580}
581
582extern "C" {
583 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrispermanent?language=objc)
584 pub static kSecAttrIsPermanent: &'static CFString;
585}
586
587extern "C" {
588 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrissensitive?language=objc)
589 pub static kSecAttrIsSensitive: &'static CFString;
590}
591
592extern "C" {
593 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrisextractable?language=objc)
594 pub static kSecAttrIsExtractable: &'static CFString;
595}
596
597extern "C" {
598 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrapplicationtag?language=objc)
599 pub static kSecAttrApplicationTag: &'static CFString;
600}
601
602extern "C" {
603 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrkeytype?language=objc)
604 pub static kSecAttrKeyType: &'static CFString;
605}
606
607extern "C" {
608 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprf?language=objc)
609 pub static kSecAttrPRF: &'static CFString;
610}
611
612extern "C" {
613 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrsalt?language=objc)
614 pub static kSecAttrSalt: &'static CFString;
615}
616
617extern "C" {
618 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrrounds?language=objc)
619 pub static kSecAttrRounds: &'static CFString;
620}
621
622extern "C" {
623 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrkeysizeinbits?language=objc)
624 pub static kSecAttrKeySizeInBits: &'static CFString;
625}
626
627extern "C" {
628 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattreffectivekeysize?language=objc)
629 pub static kSecAttrEffectiveKeySize: &'static CFString;
630}
631
632extern "C" {
633 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrcanencrypt?language=objc)
634 pub static kSecAttrCanEncrypt: &'static CFString;
635}
636
637extern "C" {
638 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrcandecrypt?language=objc)
639 pub static kSecAttrCanDecrypt: &'static CFString;
640}
641
642extern "C" {
643 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrcanderive?language=objc)
644 pub static kSecAttrCanDerive: &'static CFString;
645}
646
647extern "C" {
648 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrcansign?language=objc)
649 pub static kSecAttrCanSign: &'static CFString;
650}
651
652extern "C" {
653 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrcanverify?language=objc)
654 pub static kSecAttrCanVerify: &'static CFString;
655}
656
657extern "C" {
658 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrcanwrap?language=objc)
659 pub static kSecAttrCanWrap: &'static CFString;
660}
661
662extern "C" {
663 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrcanunwrap?language=objc)
664 pub static kSecAttrCanUnwrap: &'static CFString;
665}
666
667extern "C" {
668 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrsyncviewhint?language=objc)
669 pub static kSecAttrSyncViewHint: &'static CFString;
670}
671
672extern "C" {
673 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrtokenid?language=objc)
674 pub static kSecAttrTokenID: &'static CFString;
675}
676
677extern "C" {
678 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrpersistantreference?language=objc)
679 pub static kSecAttrPersistantReference: &'static CFString;
680}
681
682extern "C" {
683 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrpersistentreference?language=objc)
684 pub static kSecAttrPersistentReference: &'static CFString;
685}
686
687extern "C" {
688 /// Predefined item attribute constants used to get or set values
689 /// in a dictionary. The kSecAttrAccessible constant is the key and its
690 /// value is one of the constants defined here.
691 /// When asking SecItemCopyMatching to return the item's data, the error
692 /// errSecInteractionNotAllowed will be returned if the item's data is not
693 /// available until a device unlock occurs.
694 ///
695 /// while the device is unlocked. This is recommended for items that only
696 /// need be accesible while the application is in the foreground. Items
697 /// with this attribute will migrate to a new device when using encrypted
698 /// backups.
699 ///
700 /// accessed once the device has been unlocked after a restart. This is
701 /// recommended for items that need to be accesible by background
702 /// applications. Items with this attribute will migrate to a new device
703 /// when using encrypted backups.
704 ///
705 /// regardless of the lock state of the device. This is not recommended
706 /// for anything except system use. Items with this attribute will migrate
707 /// to a new device when using encrypted backups.
708 ///
709 /// only be accessed while the device is unlocked. This is recommended for
710 /// items that only need to be accessible while the application is in the
711 /// foreground and requires a passcode to be set on the device. Items with
712 /// this attribute will never migrate to a new device, so after a backup
713 /// is restored to a new device, these items will be missing. This
714 /// attribute will not be available on devices without a passcode. Disabling
715 /// the device passcode will cause all previously protected items to
716 /// be deleted.
717 ///
718 /// be accessed while the device is unlocked. This is recommended for items
719 /// that only need be accesible while the application is in the foreground.
720 /// Items with this attribute will never migrate to a new device, so after
721 /// a backup is restored to a new device, these items will be missing.
722 ///
723 /// only be accessed once the device has been unlocked after a restart.
724 /// This is recommended for items that need to be accessible by background
725 /// applications. Items with this attribute will never migrate to a new
726 /// device, so after a backup is restored to a new device these items will
727 /// be missing.
728 ///
729 /// be accessed regardless of the lock state of the device. This option
730 /// is not recommended for anything except system use. Items with this
731 /// attribute will never migrate to a new device, so after a backup is
732 /// restored to a new device, these items will be missing.
733 ///
734 /// See also [Apple's documentation](https://developer.apple.com/documentation/security/ksecattraccessiblewhenunlocked?language=objc)
735 pub static kSecAttrAccessibleWhenUnlocked: &'static CFString;
736}
737
738extern "C" {
739 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattraccessibleafterfirstunlock?language=objc)
740 pub static kSecAttrAccessibleAfterFirstUnlock: &'static CFString;
741}
742
743extern "C" {
744 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattraccessiblealways?language=objc)
745 pub static kSecAttrAccessibleAlways: &'static CFString;
746}
747
748extern "C" {
749 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattraccessiblewhenpasscodesetthisdeviceonly?language=objc)
750 pub static kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly: &'static CFString;
751}
752
753extern "C" {
754 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattraccessiblewhenunlockedthisdeviceonly?language=objc)
755 pub static kSecAttrAccessibleWhenUnlockedThisDeviceOnly: &'static CFString;
756}
757
758extern "C" {
759 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattraccessibleafterfirstunlockthisdeviceonly?language=objc)
760 pub static kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly: &'static CFString;
761}
762
763extern "C" {
764 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattraccessiblealwaysthisdeviceonly?language=objc)
765 pub static kSecAttrAccessibleAlwaysThisDeviceOnly: &'static CFString;
766}
767
768extern "C" {
769 /// Predefined item attribute constants used to get or set values
770 /// in a dictionary. The kSecAttrProtocol constant is the key and its
771 /// value is one of the constants defined here.
772 ///
773 /// See also [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolftp?language=objc)
774 pub static kSecAttrProtocolFTP: &'static CFString;
775}
776
777extern "C" {
778 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolftpaccount?language=objc)
779 pub static kSecAttrProtocolFTPAccount: &'static CFString;
780}
781
782extern "C" {
783 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolhttp?language=objc)
784 pub static kSecAttrProtocolHTTP: &'static CFString;
785}
786
787extern "C" {
788 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolirc?language=objc)
789 pub static kSecAttrProtocolIRC: &'static CFString;
790}
791
792extern "C" {
793 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolnntp?language=objc)
794 pub static kSecAttrProtocolNNTP: &'static CFString;
795}
796
797extern "C" {
798 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolpop3?language=objc)
799 pub static kSecAttrProtocolPOP3: &'static CFString;
800}
801
802extern "C" {
803 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolsmtp?language=objc)
804 pub static kSecAttrProtocolSMTP: &'static CFString;
805}
806
807extern "C" {
808 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolsocks?language=objc)
809 pub static kSecAttrProtocolSOCKS: &'static CFString;
810}
811
812extern "C" {
813 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolimap?language=objc)
814 pub static kSecAttrProtocolIMAP: &'static CFString;
815}
816
817extern "C" {
818 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolldap?language=objc)
819 pub static kSecAttrProtocolLDAP: &'static CFString;
820}
821
822extern "C" {
823 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolappletalk?language=objc)
824 pub static kSecAttrProtocolAppleTalk: &'static CFString;
825}
826
827extern "C" {
828 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolafp?language=objc)
829 pub static kSecAttrProtocolAFP: &'static CFString;
830}
831
832extern "C" {
833 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocoltelnet?language=objc)
834 pub static kSecAttrProtocolTelnet: &'static CFString;
835}
836
837extern "C" {
838 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolssh?language=objc)
839 pub static kSecAttrProtocolSSH: &'static CFString;
840}
841
842extern "C" {
843 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolftps?language=objc)
844 pub static kSecAttrProtocolFTPS: &'static CFString;
845}
846
847extern "C" {
848 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolhttps?language=objc)
849 pub static kSecAttrProtocolHTTPS: &'static CFString;
850}
851
852extern "C" {
853 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolhttpproxy?language=objc)
854 pub static kSecAttrProtocolHTTPProxy: &'static CFString;
855}
856
857extern "C" {
858 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolhttpsproxy?language=objc)
859 pub static kSecAttrProtocolHTTPSProxy: &'static CFString;
860}
861
862extern "C" {
863 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolftpproxy?language=objc)
864 pub static kSecAttrProtocolFTPProxy: &'static CFString;
865}
866
867extern "C" {
868 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolsmb?language=objc)
869 pub static kSecAttrProtocolSMB: &'static CFString;
870}
871
872extern "C" {
873 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolrtsp?language=objc)
874 pub static kSecAttrProtocolRTSP: &'static CFString;
875}
876
877extern "C" {
878 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolrtspproxy?language=objc)
879 pub static kSecAttrProtocolRTSPProxy: &'static CFString;
880}
881
882extern "C" {
883 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocoldaap?language=objc)
884 pub static kSecAttrProtocolDAAP: &'static CFString;
885}
886
887extern "C" {
888 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocoleppc?language=objc)
889 pub static kSecAttrProtocolEPPC: &'static CFString;
890}
891
892extern "C" {
893 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolipp?language=objc)
894 pub static kSecAttrProtocolIPP: &'static CFString;
895}
896
897extern "C" {
898 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolnntps?language=objc)
899 pub static kSecAttrProtocolNNTPS: &'static CFString;
900}
901
902extern "C" {
903 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolldaps?language=objc)
904 pub static kSecAttrProtocolLDAPS: &'static CFString;
905}
906
907extern "C" {
908 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocoltelnets?language=objc)
909 pub static kSecAttrProtocolTelnetS: &'static CFString;
910}
911
912extern "C" {
913 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolimaps?language=objc)
914 pub static kSecAttrProtocolIMAPS: &'static CFString;
915}
916
917extern "C" {
918 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolircs?language=objc)
919 pub static kSecAttrProtocolIRCS: &'static CFString;
920}
921
922extern "C" {
923 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprotocolpop3s?language=objc)
924 pub static kSecAttrProtocolPOP3S: &'static CFString;
925}
926
927extern "C" {
928 /// Predefined item attribute constants used to get or set values
929 /// in a dictionary. The kSecAttrAuthenticationType constant is the key
930 /// and its value is one of the constants defined here.
931 ///
932 /// See also [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrauthenticationtypentlm?language=objc)
933 pub static kSecAttrAuthenticationTypeNTLM: &'static CFString;
934}
935
936extern "C" {
937 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrauthenticationtypemsn?language=objc)
938 pub static kSecAttrAuthenticationTypeMSN: &'static CFString;
939}
940
941extern "C" {
942 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrauthenticationtypedpa?language=objc)
943 pub static kSecAttrAuthenticationTypeDPA: &'static CFString;
944}
945
946extern "C" {
947 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrauthenticationtyperpa?language=objc)
948 pub static kSecAttrAuthenticationTypeRPA: &'static CFString;
949}
950
951extern "C" {
952 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrauthenticationtypehttpbasic?language=objc)
953 pub static kSecAttrAuthenticationTypeHTTPBasic: &'static CFString;
954}
955
956extern "C" {
957 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrauthenticationtypehttpdigest?language=objc)
958 pub static kSecAttrAuthenticationTypeHTTPDigest: &'static CFString;
959}
960
961extern "C" {
962 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrauthenticationtypehtmlform?language=objc)
963 pub static kSecAttrAuthenticationTypeHTMLForm: &'static CFString;
964}
965
966extern "C" {
967 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrauthenticationtypedefault?language=objc)
968 pub static kSecAttrAuthenticationTypeDefault: &'static CFString;
969}
970
971extern "C" {
972 /// Predefined item attribute constants used to get or set values
973 /// in a dictionary. The kSecAttrKeyClass constant is the key
974 /// and its value is one of the constants defined here.
975 ///
976 /// See also [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrkeyclasspublic?language=objc)
977 pub static kSecAttrKeyClassPublic: &'static CFString;
978}
979
980extern "C" {
981 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrkeyclassprivate?language=objc)
982 pub static kSecAttrKeyClassPrivate: &'static CFString;
983}
984
985extern "C" {
986 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrkeyclasssymmetric?language=objc)
987 pub static kSecAttrKeyClassSymmetric: &'static CFString;
988}
989
990extern "C" {
991 /// Predefined item attribute constants used to get or set values
992 /// in a dictionary. The kSecAttrKeyType constant is the key
993 /// and its value is one of the constants defined here.
994 ///
995 /// The size is specified by kSecAttrKeySizeInBits attribute. Curves are defined in FIPS PUB 186-4 standard.
996 ///
997 /// See also [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrkeytypersa?language=objc)
998 pub static kSecAttrKeyTypeRSA: &'static CFString;
999}
1000
1001extern "C" {
1002 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrkeytypedsa?language=objc)
1003 pub static kSecAttrKeyTypeDSA: &'static CFString;
1004}
1005
1006extern "C" {
1007 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrkeytypeaes?language=objc)
1008 pub static kSecAttrKeyTypeAES: &'static CFString;
1009}
1010
1011extern "C" {
1012 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrkeytypedes?language=objc)
1013 pub static kSecAttrKeyTypeDES: &'static CFString;
1014}
1015
1016extern "C" {
1017 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrkeytype3des?language=objc)
1018 pub static kSecAttrKeyType3DES: &'static CFString;
1019}
1020
1021extern "C" {
1022 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrkeytyperc4?language=objc)
1023 pub static kSecAttrKeyTypeRC4: &'static CFString;
1024}
1025
1026extern "C" {
1027 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrkeytyperc2?language=objc)
1028 pub static kSecAttrKeyTypeRC2: &'static CFString;
1029}
1030
1031extern "C" {
1032 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrkeytypecast?language=objc)
1033 pub static kSecAttrKeyTypeCAST: &'static CFString;
1034}
1035
1036extern "C" {
1037 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrkeytypeecdsa?language=objc)
1038 pub static kSecAttrKeyTypeECDSA: &'static CFString;
1039}
1040
1041extern "C" {
1042 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrkeytypeec?language=objc)
1043 pub static kSecAttrKeyTypeEC: &'static CFString;
1044}
1045
1046extern "C" {
1047 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrkeytypeecsecprimerandom?language=objc)
1048 pub static kSecAttrKeyTypeECSECPrimeRandom: &'static CFString;
1049}
1050
1051extern "C" {
1052 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprfhmacalgsha1?language=objc)
1053 pub static kSecAttrPRFHmacAlgSHA1: &'static CFString;
1054}
1055
1056extern "C" {
1057 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprfhmacalgsha224?language=objc)
1058 pub static kSecAttrPRFHmacAlgSHA224: &'static CFString;
1059}
1060
1061extern "C" {
1062 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprfhmacalgsha256?language=objc)
1063 pub static kSecAttrPRFHmacAlgSHA256: &'static CFString;
1064}
1065
1066extern "C" {
1067 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprfhmacalgsha384?language=objc)
1068 pub static kSecAttrPRFHmacAlgSHA384: &'static CFString;
1069}
1070
1071extern "C" {
1072 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrprfhmacalgsha512?language=objc)
1073 pub static kSecAttrPRFHmacAlgSHA512: &'static CFString;
1074}
1075
1076extern "C" {
1077 /// Predefined search constants used to set values in a query
1078 /// dictionary. You can specify a combination of search attributes and
1079 /// item attributes when looking for matching items with the
1080 /// SecItemCopyMatching function.
1081 ///
1082 /// SecPolicyRef. If provided, returned certificates or identities must
1083 /// verify with this policy.
1084 ///
1085 /// CFArray of SecKeychainItemRef items. If provided, returned items will be
1086 /// limited to the subset which are contained in this list.
1087 ///
1088 /// CFArray of SecKeychainRef items. If provided, the search will be limited
1089 /// to the keychains contained in this list.
1090 ///
1091 /// CFArray of X.500 names (of type CFDataRef). If provided, returned
1092 /// certificates or identities will be limited to those whose
1093 /// certificate chain contains one of the issuers provided in this list.
1094 ///
1095 /// value is a CFStringRef containing an RFC822 email address. If
1096 /// provided, returned certificates or identities will be limited to those
1097 /// that contain the address in their subject or subject alternative name.
1098 ///
1099 /// is a CFStringRef. If provided, returned certificates or identities
1100 /// will be limited to those containing this string in the subject.
1101 ///
1102 /// is a CFStringRef. If provided, returned internet passwords will be limited to those which
1103 /// have a server host that is equal to or a subdomain of this string. This filter only works on
1104 /// the Data Protection Keychain on macOS.
1105 ///
1106 /// is a CFStringRef. If provided, returned certificates or identities
1107 /// will be limited to those with subject names that start with this string.
1108 ///
1109 /// is a CFStringRef. If provided, returned certificates or identities
1110 /// will be limited to those with subject names that end with this string.
1111 ///
1112 /// value is a CFStringRef. If provided, returned certificates or identities
1113 /// will be limited to those matching this string exactly in the subject.
1114 ///
1115 /// is a CFBooleanRef. If this value is kCFBooleanFalse, or is not
1116 /// provided, then case-sensitive string matching is performed.
1117 ///
1118 /// value is a CFBooleanRef. If this value is kCFBooleanFalse, or is not
1119 /// provided, then diacritic-sensitive string matching is performed.
1120 ///
1121 /// value is a CFBooleanRef. If this value is kCFBooleanFalse, or is not
1122 /// provided, then string matching is width-sensitive (e.g. 'a' != 0xFF41).
1123 ///
1124 /// a CFBooleanRef. If provided with a value of kCFBooleanTrue, only
1125 /// certificates which can be verified back to a trusted anchor will be
1126 /// returned. If this value is kCFBooleanFalse, or is not provided, then
1127 /// both trusted and untrusted certificates may be returned.
1128 ///
1129 /// of type CFDateRef. If provided, returned keys, certificates or
1130 /// identities will be limited to those which are valid for the given date.
1131 /// Pass a value of kCFNull to indicate the current date.
1132 ///
1133 /// CFNumberRef. If provided, this value specifies the maximum number of
1134 /// results to return. If not provided, results are limited to the first
1135 /// item found. Predefined values are provided for a single item
1136 /// (kSecMatchLimitOne) and all matching items (kSecMatchLimitAll).
1137 ///
1138 /// item found; used as a value for the kSecMatchLimit dictionary key.
1139 ///
1140 /// may be returned; used as a value for the kSecMatchLimit dictionary
1141 /// key.
1142 ///
1143 /// See also [Apple's documentation](https://developer.apple.com/documentation/security/ksecmatchpolicy?language=objc)
1144 pub static kSecMatchPolicy: &'static CFString;
1145}
1146
1147extern "C" {
1148 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecmatchitemlist?language=objc)
1149 pub static kSecMatchItemList: &'static CFString;
1150}
1151
1152extern "C" {
1153 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecmatchsearchlist?language=objc)
1154 pub static kSecMatchSearchList: &'static CFString;
1155}
1156
1157extern "C" {
1158 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecmatchissuers?language=objc)
1159 pub static kSecMatchIssuers: &'static CFString;
1160}
1161
1162extern "C" {
1163 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecmatchemailaddressifpresent?language=objc)
1164 pub static kSecMatchEmailAddressIfPresent: &'static CFString;
1165}
1166
1167extern "C" {
1168 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecmatchsubjectcontains?language=objc)
1169 pub static kSecMatchSubjectContains: &'static CFString;
1170}
1171
1172extern "C" {
1173 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecmatchhostorsubdomainofhost?language=objc)
1174 pub static kSecMatchHostOrSubdomainOfHost: &'static CFString;
1175}
1176
1177extern "C" {
1178 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecmatchsubjectstartswith?language=objc)
1179 pub static kSecMatchSubjectStartsWith: &'static CFString;
1180}
1181
1182extern "C" {
1183 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecmatchsubjectendswith?language=objc)
1184 pub static kSecMatchSubjectEndsWith: &'static CFString;
1185}
1186
1187extern "C" {
1188 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecmatchsubjectwholestring?language=objc)
1189 pub static kSecMatchSubjectWholeString: &'static CFString;
1190}
1191
1192extern "C" {
1193 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecmatchcaseinsensitive?language=objc)
1194 pub static kSecMatchCaseInsensitive: &'static CFString;
1195}
1196
1197extern "C" {
1198 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecmatchdiacriticinsensitive?language=objc)
1199 pub static kSecMatchDiacriticInsensitive: &'static CFString;
1200}
1201
1202extern "C" {
1203 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecmatchwidthinsensitive?language=objc)
1204 pub static kSecMatchWidthInsensitive: &'static CFString;
1205}
1206
1207extern "C" {
1208 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecmatchtrustedonly?language=objc)
1209 pub static kSecMatchTrustedOnly: &'static CFString;
1210}
1211
1212extern "C" {
1213 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecmatchvalidondate?language=objc)
1214 pub static kSecMatchValidOnDate: &'static CFString;
1215}
1216
1217extern "C" {
1218 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecmatchlimit?language=objc)
1219 pub static kSecMatchLimit: &'static CFString;
1220}
1221
1222extern "C" {
1223 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecmatchlimitone?language=objc)
1224 pub static kSecMatchLimitOne: &'static CFString;
1225}
1226
1227extern "C" {
1228 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecmatchlimitall?language=objc)
1229 pub static kSecMatchLimitAll: &'static CFString;
1230}
1231
1232extern "C" {
1233 /// Predefined return type keys used to set values in a dictionary.
1234 /// You use these keys to specify the type of results which should be
1235 /// returned by the SecItemCopyMatching or SecItemAdd function. You can
1236 /// specify zero or more of these return types. If more than one of these
1237 /// result types is specified, the result is returned as a CFDictionaryRef
1238 /// whose keys are the result types and values are the requested data.
1239 ///
1240 /// CFBooleanRef. A value of kCFBooleanTrue indicates that the data of
1241 /// an item (CFDataRef) should be returned. For keys and password
1242 /// items, data is secret (encrypted) and may require the user to enter
1243 /// a password for access.
1244 ///
1245 /// of type CFBooleanRef. A value of kCFBooleanTrue indicates that the
1246 /// (non-encrypted) attributes of an item (CFDictionaryRef) should be
1247 /// returned.
1248 ///
1249 /// CFBooleanRef. A value of kCFBooleanTrue indicates that a reference
1250 /// should be returned. Depending on the item class requested, the
1251 /// returned reference(s) may be of type SecKeychainItemRef, SecKeyRef,
1252 /// SecCertificateRef, or SecIdentityRef. Note that returning references is
1253 /// supported only for Certificate, Key or Identity items on iOS, watchOS and
1254 /// tvOS. Similarly, returning references is supported only for Certificate, Key
1255 /// or Identity items on macOS when either kSecUseDataProtectionKeychain
1256 /// is set to true or kSecAttrSynchronizable is set to true.
1257 ///
1258 /// is of type CFBooleanRef. A value of kCFBooleanTrue indicates that a
1259 /// persistent reference to an item (CFDataRef) should be returned.
1260 ///
1261 /// See also [Apple's documentation](https://developer.apple.com/documentation/security/ksecreturndata?language=objc)
1262 pub static kSecReturnData: &'static CFString;
1263}
1264
1265extern "C" {
1266 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecreturnattributes?language=objc)
1267 pub static kSecReturnAttributes: &'static CFString;
1268}
1269
1270extern "C" {
1271 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecreturnref?language=objc)
1272 pub static kSecReturnRef: &'static CFString;
1273}
1274
1275extern "C" {
1276 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecreturnpersistentref?language=objc)
1277 pub static kSecReturnPersistentRef: &'static CFString;
1278}
1279
1280extern "C" {
1281 /// Predefined value type keys used to pass values in a dictionary.
1282 /// You can specify zero or more of these types depending on the function
1283 /// you are calling. For SecItemCopyMatching or SecItemAdd these are
1284 /// used as keys in the results dictionary.
1285 ///
1286 /// CFDataRef. For keys and password items, data is secret (encrypted)
1287 /// and may require the user to enter a password for access.
1288 ///
1289 /// on the item class requested, is of type SecKeychainItemRef, SecKeyRef,
1290 /// SecCertificateRef, or SecIdentityRef.
1291 ///
1292 /// is of type CFDataRef. The bytes in this CFDataRef can be stored by
1293 /// the caller and used on a subsequent invocation of the application (or
1294 /// even a different application) to retrieve the item referenced by it.
1295 ///
1296 /// See also [Apple's documentation](https://developer.apple.com/documentation/security/ksecvaluedata?language=objc)
1297 pub static kSecValueData: &'static CFString;
1298}
1299
1300extern "C" {
1301 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecvalueref?language=objc)
1302 pub static kSecValueRef: &'static CFString;
1303}
1304
1305extern "C" {
1306 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecvaluepersistentref?language=objc)
1307 pub static kSecValuePersistentRef: &'static CFString;
1308}
1309
1310extern "C" {
1311 /// Predefined constants used to set values in a dictionary.
1312 ///
1313 /// CFArray of items. If provided, this array is treated as the set of
1314 /// all possible items to search, or add if the API being called is
1315 /// SecItemAdd. The items in this array may be of type SecKeyRef,
1316 /// SecCertificateRef, SecIdentityRef, or CFDataRef (for a persistent
1317 /// item reference.) The items in the array must all be of the same
1318 /// type. When this attribute is provided, no keychains are searched.
1319 ///
1320 /// keychain reference. You use this key to specify a value of type
1321 /// SecKeychainRef to which SecItemAdd will add the provided item(s).
1322 ///
1323 /// is a CFStringRef that represents a user-visible string describing
1324 /// the operation for which the application is attempting to authenticate.
1325 /// The application is responsible for the text localization.
1326 ///
1327 /// is a CFBooleanRef. If provided with a value of kCFBooleanTrue, the error
1328 /// errSecInteractionNotAllowed will be returned if the item is attempting
1329 /// to authenticate with UI.
1330 ///
1331 /// is one of kSecUseAuthenticationUIAllow, kSecUseAuthenticationUIFail, kSecUseAuthenticationUISkip.
1332 ///
1333 /// is LAContext to be used for keychain item authentication.
1334 /// If the item requires authentication and this key is omitted, a new context
1335 /// will be created just for the purpose of the single call.
1336 /// If the specified context has been previously authenticated, the operation
1337 /// will succeed without asking user for authentication.
1338 /// If the specified context has not been previously authenticated, the new
1339 /// authentication will be started on this context, allowing caller to
1340 /// eventually reuse the successfully authenticated context in subsequent
1341 /// keychain operations.
1342 ///
1343 /// is a CFBooleanRef. Set to kCFBooleanTrue to use kSecAttrAccessGroup and/or
1344 /// kSecAttrAccessible on macOS without requiring the item to be marked synchronizable.
1345 /// Note that when kSecUseDataProtectionKeychain is set to true, returning references is
1346 /// supported only for Certificate, Key or Identity items.
1347 ///
1348 /// indicating whether the item is shared with other personas on the system.
1349 ///
1350 /// See also [Apple's documentation](https://developer.apple.com/documentation/security/ksecuseitemlist?language=objc)
1351 pub static kSecUseItemList: &'static CFString;
1352}
1353
1354extern "C" {
1355 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecusekeychain?language=objc)
1356 pub static kSecUseKeychain: &'static CFString;
1357}
1358
1359extern "C" {
1360 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecuseoperationprompt?language=objc)
1361 pub static kSecUseOperationPrompt: &'static CFString;
1362}
1363
1364extern "C" {
1365 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecusenoauthenticationui?language=objc)
1366 pub static kSecUseNoAuthenticationUI: &'static CFString;
1367}
1368
1369extern "C" {
1370 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecuseauthenticationui?language=objc)
1371 pub static kSecUseAuthenticationUI: &'static CFString;
1372}
1373
1374extern "C" {
1375 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecuseauthenticationcontext?language=objc)
1376 pub static kSecUseAuthenticationContext: &'static CFString;
1377}
1378
1379extern "C" {
1380 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecusedataprotectionkeychain?language=objc)
1381 pub static kSecUseDataProtectionKeychain: &'static CFString;
1382}
1383
1384extern "C" {
1385 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecuseuserindependentkeychain?language=objc)
1386 pub static kSecUseUserIndependentKeychain: &'static CFString;
1387}
1388
1389extern "C" {
1390 /// Predefined item attribute constants used to get or set values
1391 /// in a dictionary. The kSecUseAuthenticationUI constant is the key and its
1392 /// value is one of the constants defined here.
1393 /// If the key kSecUseAuthenticationUI not provided then kSecUseAuthenticationUIAllow
1394 /// is used as default.
1395 ///
1396 ///
1397 /// errSecInteractionNotAllowed will be returned if an item needs
1398 /// to authenticate with UI
1399 ///
1400 /// to authenticate with UI will be silently skipped. This value can be used
1401 /// only with SecItemCopyMatching.
1402 ///
1403 /// See also [Apple's documentation](https://developer.apple.com/documentation/security/ksecuseauthenticationuiallow?language=objc)
1404 pub static kSecUseAuthenticationUIAllow: &'static CFString;
1405}
1406
1407extern "C" {
1408 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecuseauthenticationuifail?language=objc)
1409 pub static kSecUseAuthenticationUIFail: &'static CFString;
1410}
1411
1412extern "C" {
1413 /// [Apple's documentation](https://developer.apple.com/documentation/security/ksecuseauthenticationuiskip?language=objc)
1414 pub static kSecUseAuthenticationUISkip: &'static CFString;
1415}
1416
1417extern "C" {
1418 /// Predefined item attribute constant used to get or set values
1419 /// in a dictionary. The kSecAttrTokenID constant is the key and its value
1420 /// can be kSecAttrTokenIDSecureEnclave.
1421 ///
1422 /// token implemented using device's Secure Enclave. The only keychain items
1423 /// supported by the Secure Enclave token are 256-bit elliptic curve keys
1424 /// (kSecAttrKeyTypeECSecPrimeRandom). Keys must be generated on the secure enclave using
1425 /// SecKeyGenerateKeyPair call with kSecAttrTokenID set to
1426 /// kSecAttrTokenIDSecureEnclave in the parameters dictionary, it is not
1427 /// possible to import pregenerated keys to kSecAttrTokenIDSecureEnclave token.
1428 ///
1429 /// See also [Apple's documentation](https://developer.apple.com/documentation/security/ksecattrtokenidsecureenclave?language=objc)
1430 pub static kSecAttrTokenIDSecureEnclave: &'static CFString;
1431}
1432
1433extern "C" {
1434 /// which contains items provided by external token (typically smart card).
1435 /// This may be used as a value for kSecAttrAccessGroup attribute. Every
1436 /// application has access to this access group so it is not needed to
1437 /// explicitly list it in keychain-access-groups entitlement, but application
1438 /// must explicitly state this access group in keychain queries in order to
1439 /// be able to access items from external tokens.
1440 ///
1441 /// See also [Apple's documentation](https://developer.apple.com/documentation/security/ksecattraccessgrouptoken?language=objc)
1442 pub static kSecAttrAccessGroupToken: &'static CFString;
1443}
1444
1445extern "C-unwind" {
1446 /// Returns one or more items which match a search query.
1447 ///
1448 /// Parameter `query`: A dictionary containing an item class specification and
1449 /// optional attributes for controlling the search. See the "Keychain
1450 /// Search Attributes" section for a description of currently defined
1451 /// search attributes.
1452 ///
1453 /// Parameter `result`: On return, a CFTypeRef reference to the found item(s). The
1454 /// exact type of the result is based on the search attributes supplied
1455 /// in the query, as discussed below.
1456 ///
1457 /// Returns: A result code. See "Security Error Codes" (SecBase.h).
1458 ///
1459 /// Attributes defining a search are specified by adding key/value
1460 /// pairs to the query dictionary.
1461 ///
1462 /// A typical query consists of:
1463 ///
1464 /// a kSecClass key, whose value is a constant from the Class
1465 /// Constants section that specifies the class of item(s) to be searched
1466 /// one or more keys from the "Attribute Key Constants" section, whose value
1467 /// is the attribute data to be matched
1468 /// one or more keys from the "Search Constants" section, whose value is
1469 /// used to further refine the search
1470 /// a key from the "Return Type Key Constants" section, specifying the type of
1471 /// results desired
1472 ///
1473 /// Result types are specified as follows:
1474 ///
1475 /// To obtain the data of a matching item (CFDataRef), specify
1476 /// kSecReturnData with a value of kCFBooleanTrue.
1477 /// To obtain the attributes of a matching item (CFDictionaryRef), specify
1478 /// kSecReturnAttributes with a value of kCFBooleanTrue.
1479 /// To obtain a reference to a matching item (SecKeychainItemRef,
1480 /// SecKeyRef, SecCertificateRef, or SecIdentityRef), specify kSecReturnRef
1481 /// with a value of kCFBooleanTrue. Note that returning references is
1482 /// supported only for Certificate, Key or Identity items on iOS, watchOS and
1483 /// tvOS. Similarly, returning references is supported only for Certificate, Key
1484 /// or Identity items on macOS when either kSecUseDataProtectionKeychain
1485 /// is set to true or kSecAttrSynchronizable is set to true.
1486 /// To obtain a persistent reference to a matching item (CFDataRef),
1487 /// specify kSecReturnPersistentRef with a value of kCFBooleanTrue. Note
1488 /// that unlike normal references, a persistent reference may be stored
1489 /// on disk or passed between processes.
1490 /// If more than one of these result types is specified, the result is
1491 /// returned as a CFDictionaryRef containing all the requested data.
1492 /// If a result type is not specified, no results are returned.
1493 ///
1494 /// By default, this function returns only the first match found. To obtain
1495 /// more than one matching item at a time, specify kSecMatchLimit with a value
1496 /// greater than 1. The result will be a CFArrayRef containing up to that
1497 /// number of matching items; the items' types are described above.
1498 ///
1499 /// To filter a provided list of items down to those matching the query,
1500 /// specify a kSecMatchItemList whose value is a CFArray of SecKeychainItemRef,
1501 /// SecKeyRef, SecCertificateRef, or SecIdentityRef items. The objects in the
1502 /// provided array must be of the same type.
1503 ///
1504 /// On iOS, to convert from a persistent item reference to a normal item reference,
1505 /// specify a kSecValuePersistentRef whose value a CFDataRef (the persistent
1506 /// reference), and a kSecReturnRef whose value is kCFBooleanTrue.
1507 ///
1508 /// On macOS, to convert from persistent item references to normal item references,
1509 /// specify a kSecMatchItemList whose value is a CFArray containing one or
1510 /// more CFDataRef elements (the persistent reference), and a kSecReturnRef
1511 /// whose value is kCFBooleanTrue. The objects in the provided array must be
1512 /// of the same type.
1513 pub fn SecItemCopyMatching(query: &CFDictionary, result: *mut *const CFType) -> OSStatus;
1514}
1515
1516extern "C-unwind" {
1517 /// Add one or more items to a keychain.
1518 ///
1519 /// Parameter `attributes`: A dictionary containing an item class specification and
1520 /// optional entries specifying the item's attribute values. See the
1521 /// "Attribute Key Constants" section for a description of currently defined
1522 /// attributes.
1523 ///
1524 /// Parameter `result`: On return, a CFTypeRef reference to the newly added item(s).
1525 /// The exact type of the result is based on the values supplied
1526 /// in attributes, as discussed below. Pass NULL if this result is not
1527 /// required.
1528 ///
1529 /// Returns: A result code. See "Security Error Codes" (SecBase.h).
1530 ///
1531 /// Attributes defining an item are specified by adding key/value
1532 /// pairs to the attributes dictionary. To add multiple items to a keychain
1533 /// at once use the kSecUseItemList key with an array of items as its value.
1534 /// This is currently only supported for non password items.
1535 ///
1536 /// On macOS, to add an item to a particular keychain, supply kSecUseKeychain
1537 /// with a SecKeychainRef as its value.
1538 ///
1539 /// On iOS, watchOS
1540 /// &
1541 /// tvOS, Certificate, Key, and Identity items may be
1542 /// added by reference, but neither Internet Passwords nor Generic Passwords
1543 /// may be. Similarly, on macOS with either kSecUseDataProtectionKeychain
1544 /// set to true or kSecAttrSynchronizable set to true, Certificate, Key, and Identity
1545 /// items may be added by reference, but neither Internet Passwords nor Generic
1546 /// Passwords may be.
1547 ///
1548 /// Result types are specified as follows:
1549 ///
1550 /// To obtain the data of the added item (CFDataRef), specify
1551 /// kSecReturnData with a value of kCFBooleanTrue.
1552 /// To obtain all the attributes of the added item (CFDictionaryRef),
1553 /// specify kSecReturnAttributes with a value of kCFBooleanTrue.
1554 /// To obtain a reference to the added item (SecKeychainItemRef, SecKeyRef,
1555 /// SecCertificateRef, or SecIdentityRef), specify kSecReturnRef with a
1556 /// value of kCFBooleanTrue. See also note about kSecReturnRef and
1557 /// macOS.
1558 /// To obtain a persistent reference to the added item (CFDataRef), specify
1559 /// kSecReturnPersistentRef with a value of kCFBooleanTrue. Note that
1560 /// unlike normal references, a persistent reference may be stored on disk
1561 /// or passed between processes.
1562 /// If more than one of these result types is specified, the result is
1563 /// returned as a CFDictionaryRef containing all the requested data.
1564 /// On iOS, if a result type is not specified, no results are returned.
1565 /// On macOS, the added item is returned.
1566 pub fn SecItemAdd(attributes: &CFDictionary, result: *mut *const CFType) -> OSStatus;
1567}
1568
1569extern "C-unwind" {
1570 /// Modify zero or more items which match a search query.
1571 ///
1572 /// Parameter `query`: A dictionary containing an item class specification and
1573 /// optional attributes for controlling the search. See the "Attribute
1574 /// Constants" and "Search Constants" sections for a description of
1575 /// currently defined search attributes.
1576 ///
1577 /// Parameter `attributesToUpdate`: A dictionary containing one or more attributes
1578 /// whose values should be set to the ones specified. Only real keychain
1579 /// attributes are permitted in this dictionary (no "meta" attributes are
1580 /// allowed.) See the "Attribute Key Constants" section for a description of
1581 /// currently defined value attributes.
1582 ///
1583 /// Returns: A result code. See "Security Error Codes" (SecBase.h).
1584 ///
1585 /// Attributes defining a search are specified by adding key/value
1586 /// pairs to the query dictionary.
1587 pub fn SecItemUpdate(query: &CFDictionary, attributes_to_update: &CFDictionary) -> OSStatus;
1588}
1589
1590extern "C-unwind" {
1591 /// Delete zero or more items which match a search query.
1592 ///
1593 /// Parameter `query`: A dictionary containing an item class specification and
1594 /// optional attributes for controlling the search. See the "Attribute
1595 /// Constants" and "Search Constants" sections for a description of
1596 /// currently defined search attributes.
1597 ///
1598 /// Returns: A result code. See "Security Error Codes" (SecBase.h).
1599 ///
1600 /// Attributes defining a search are specified by adding key/value
1601 /// pairs to the query dictionary.
1602 ///
1603 /// By default, this function deletes all items matching the specified query.
1604 /// You can change this behavior by specifying one of the follow keys:
1605 ///
1606 /// To delete an item identified by a transient reference, on iOS, specify
1607 /// kSecValueRef with a item reference. On macOS, give a kSecMatchItemList
1608 /// containing an item reference.
1609 /// To delete an item identified by a persistent reference, on iOS, specify
1610 /// kSecValuePersistentRef with a persistent reference returned by
1611 /// using the kSecReturnPersistentRef key to SecItemCopyMatching or
1612 /// SecItemAdd. On macOS, use kSecMatchItemList with a persistent reference
1613 /// returned by using the kSecReturnPersistentRef key with
1614 /// SecItemCopyMatching or SecItemAdd.
1615 /// To delete multiple items specify kSecMatchItemList with an array
1616 /// of references.
1617 /// If more than one of these result keys is specified, the behavior is
1618 /// undefined.
1619 pub fn SecItemDelete(query: &CFDictionary) -> OSStatus;
1620}