版權聲明[1]
pragma mark- 密鑰類型
//密鑰類型鍵
//CFTypeRef kSecClass
//
//值
//CFTypeRef kSecClassGenericPassword //一般密碼
//CFTypeRef kSecClassInternetPassword //網(wǎng)絡密碼
//CFTypeRef kSecClassCertificate //證書
//CFTypeRef kSecClassKey //密鑰
//CFTypeRef kSecClassIdentity //身份證書(帶私鑰的證書)
//
//不同類型的鑰匙串項對應的屬性不同
//
//一般密碼
//kSecClassGenericPassword
//
//對應屬性
//kSecAttrAccessible
//kSecAttrAccessGroup
//kSecAttrCreationDate
//kSecAttrModificationDate
//kSecAttrDescription
//kSecAttrComment
//kSecAttrCreator
//kSecAttrType
//kSecAttrLabel
//kSecAttrIsInvisible
//kSecAttrIsNegative
//kSecAttrAccount
//kSecAttrService
//kSecAttrGeneric
//網(wǎng)絡密碼
//kSecClassInternetPassword
//
//對應屬性
//kSecAttrAccessible
//kSecAttrAccessGroup
//kSecAttrCreationDate
//kSecAttrModificationDate
//kSecAttrDescription
//kSecAttrComment
//kSecAttrCreator
//kSecAttrType
//kSecAttrLabel
//kSecAttrIsInvisible
//kSecAttrIsNegative
//kSecAttrAccount
//kSecAttrSecurityDomain
//kSecAttrServer
//kSecAttrProtocol
//kSecAttrAuthenticationType
//kSecAttrPort
//kSecAttrPath
//證書
//kSecClassCertificate
//
//對應屬性
//kSecAttrAccessible
//kSecAttrAccessGroup
//kSecAttrCertificateType
//kSecAttrCertificateEncoding
//kSecAttrLabel
//kSecAttrSubject
//kSecAttrIssuer
//kSecAttrSerialNumber
//kSecAttrSubjectKeyID
//kSecAttrPublicKeyHash
//密鑰
//kSecClassKey
//
//對應屬性
//kSecAttrAccessible
//kSecAttrAccessGroup
//kSecAttrKeyClass
//kSecAttrLabel
//kSecAttrApplicationLabel
//kSecAttrIsPermanent
//kSecAttrApplicationTag
//kSecAttrKeyType
//kSecAttrKeySizeInBits
//kSecAttrEffectiveKeySize
//kSecAttrCanEncrypt
//kSecAttrCanDecrypt
//kSecAttrCanDerive
//kSecAttrCanSign
//kSecAttrCanVerify
//kSecAttrCanWrap
//kSecAttrCanUnwrap
//身份證書(帶私鑰的證書)
//kSecClassIdentity
//
//對應屬性
// 證書屬性
// 私鑰屬性
pragma mark- 屬性
//鍵
//CFTypeRef kSecAttrAccessible; //可訪問性 類型透明
//值
// CFTypeRef kSecAttrAccessibleWhenUnlocked; //解鎖可訪問,備份
// CFTypeRef kSecAttrAccessibleAfterFirstUnlock; //第一次解鎖后可訪問,備份
// CFTypeRef kSecAttrAccessibleAlways; //一直可訪問,備份
// CFTypeRef kSecAttrAccessibleWhenUnlockedThisDeviceOnly; //解鎖可訪問,不備份
// CFTypeRef kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly;//第一次解鎖后可訪問,不備份
// CFTypeRef kSecAttrAccessibleAlwaysThisDeviceOnly; //一直可訪問,不備份
//CFTypeRef kSecAttrCreationDate; //創(chuàng)建日期 CFDateRef
//CFTypeRef kSecAttrModificationDate; //最后一次修改日期 CFDateRef
//CFTypeRef kSecAttrDescription; //描述 CFStringRef
//CFTypeRef kSecAttrComment; //注釋 CFStringRef
//CFTypeRef kSecAttrCreator; //創(chuàng)建者 CFNumberRef(4字符,如'aLXY')
//CFTypeRef kSecAttrType; //類型 CFNumberRef(4字符,如'aTyp')
//CFTypeRef kSecAttrLabel; //標簽(給用戶看) CFStringRef
//CFTypeRef kSecAttrIsInvisible; //是否隱藏 CFBooleanRef(kCFBooleanTrue,kCFBooleanFalse)
//CFTypeRef kSecAttrIsNegative; //是否具有密碼 CFBooleanRef(kCFBooleanTrue,kCFBooleanFalse)此項表示當前的item是否只是一個占位項,或者說是只有key沒有value。
//CFTypeRef kSecAttrAccount; //賬戶名 CFStringRef
//CFTypeRef kSecAttrService; //所具有服務 CFStringRef
//CFTypeRef kSecAttrGeneric; //用戶自定義內(nèi)容 CFDataRef
//CFTypeRef kSecAttrSecurityDomain; //網(wǎng)絡安全域 CFStringRef
//CFTypeRef kSecAttrServer; //服務器域名或IP地址 CFStringRef
//鍵
//CFTypeRef kSecAttrProtocol; //協(xié)議類型 CFNumberRef
// 值
// CFTypeRef kSecAttrProtocolFTP; //
// CFTypeRef kSecAttrProtocolFTPAccount; //
// CFTypeRef kSecAttrProtocolHTTP; //
// CFTypeRef kSecAttrProtocolIRC; //
// CFTypeRef kSecAttrProtocolNNTP; //
// CFTypeRef kSecAttrProtocolPOP3; //
// CFTypeRef kSecAttrProtocolSMTP; //
// CFTypeRef kSecAttrProtocolSOCKS; //
// CFTypeRef kSecAttrProtocolIMAP; //
// CFTypeRef kSecAttrProtocolLDAP; //
// CFTypeRef kSecAttrProtocolAppleTalk; //
// CFTypeRef kSecAttrProtocolAFP; //
// CFTypeRef kSecAttrProtocolTelnet; //
// CFTypeRef kSecAttrProtocolSSH; //
// CFTypeRef kSecAttrProtocolFTPS; //
// CFTypeRef kSecAttrProtocolHTTPS; //
// CFTypeRef kSecAttrProtocolHTTPProxy; //
// CFTypeRef kSecAttrProtocolHTTPSProxy; //
// CFTypeRef kSecAttrProtocolFTPProxy; //
// CFTypeRef kSecAttrProtocolSMB; //
// CFTypeRef kSecAttrProtocolRTSP; //
// CFTypeRef kSecAttrProtocolRTSPProxy; //
// CFTypeRef kSecAttrProtocolDAAP; //
// CFTypeRef kSecAttrProtocolEPPC; //
// CFTypeRef kSecAttrProtocolIPP; //
// CFTypeRef kSecAttrProtocolNNTPS; //
// CFTypeRef kSecAttrProtocolLDAPS; //
// CFTypeRef kSecAttrProtocolTelnetS; //
// CFTypeRef kSecAttrProtocolIMAPS; //
// CFTypeRef kSecAttrProtocolIRCS; //
// CFTypeRef kSecAttrProtocolPOP3S; //
//鍵
//CFTypeRef kSecAttrAuthenticationType; //認證類型 CFNumberRef
// 值
// CFTypeRef kSecAttrAuthenticationTypeNTLM; //
// CFTypeRef kSecAttrAuthenticationTypeMSN; //
// CFTypeRef kSecAttrAuthenticationTypeDPA; //
// CFTypeRef kSecAttrAuthenticationTypeRPA; //
// CFTypeRef kSecAttrAuthenticationTypeHTTPBasic; //
// CFTypeRef kSecAttrAuthenticationTypeHTTPDigest; //
// CFTypeRef kSecAttrAuthenticationTypeHTMLForm; //
// CFTypeRef kSecAttrAuthenticationTypeDefault; //
//CFTypeRef kSecAttrPort; //網(wǎng)絡端口 CFNumberRef
//CFTypeRef kSecAttrPath; //訪問路徑 CFStringRef
//CFTypeRef kSecAttrSubject; //X.500主題名稱 CFDataRef
//CFTypeRef kSecAttrIssuer; //X.500發(fā)行者名稱 CFDataRef
//CFTypeRef kSecAttrSerialNumber; //序列號 CFDataRef
//CFTypeRef kSecAttrSubjectKeyID; //主題ID CFDataRef
//CFTypeRef kSecAttrPublicKeyHash; //公鑰Hash值 CFDataRef
//CFTypeRef kSecAttrCertificateType; //證書類型 CFNumberRef
//CFTypeRef kSecAttrCertificateEncoding; //證書編碼類型 CFNumberRef
//CFTypeRef kSecAttrKeyClass; //加密密鑰類 CFTypeRef
// 值
// CFTypeRef kSecAttrKeyClassPublic; //公鑰
// CFTypeRef kSecAttrKeyClassPrivate; //私鑰
// CFTypeRef kSecAttrKeyClassSymmetric; //對稱密鑰
//CFTypeRef kSecAttrApplicationLabel; //標簽(給程序使用) CFStringRef(通常是公鑰的Hash值)
//CFTypeRef kSecAttrIsPermanent; //是否永久保存加密密鑰 CFBooleanRef
//CFTypeRef kSecAttrApplicationTag; //標簽(私有標簽數(shù)據(jù)) CFDataRef
//CFTypeRef kSecAttrKeyType; //加密密鑰類型(算法) CFNumberRef
// 值
// extern const CFTypeRef kSecAttrKeyTypeRSA;
//CFTypeRef kSecAttrKeySizeInBits; //密鑰總位數(shù) CFNumberRef
//CFTypeRef kSecAttrEffectiveKeySize; //密鑰有效位數(shù) CFNumberRef
//CFTypeRef kSecAttrCanEncrypt; //密鑰是否可用于加密 CFBooleanRef
//CFTypeRef kSecAttrCanDecrypt; //密鑰是否可用于加密 CFBooleanRef
//CFTypeRef kSecAttrCanDerive; //密鑰是否可用于導出其他密鑰 CFBooleanRef
//CFTypeRef kSecAttrCanSign; //密鑰是否可用于數(shù)字簽名 CFBooleanRef
//CFTypeRef kSecAttrCanVerify; //密鑰是否可用于驗證數(shù)字簽名 CFBooleanRef
//CFTypeRef kSecAttrCanWrap; //密鑰是否可用于打包其他密鑰 CFBooleanRef
//CFTypeRef kSecAttrCanUnwrap; //密鑰是否可用于解包其他密鑰 CFBooleanRef
//CFTypeRef kSecAttrAccessGroup; //訪問組 CFStringRef
pragma mark- 搜索
//CFTypeRef kSecMatchPolicy; //指定策略 SecPolicyRef
//CFTypeRef kSecMatchItemList; //指定搜索范圍 CFArrayRef(SecKeychainItemRef, SecKeyRef, SecCertificateRef, SecIdentityRef,CFDataRef)數(shù)組內(nèi)的類型必須唯一。仍然會搜索鑰匙串,但是搜索結果需要與該數(shù)組取交集作為最終結果。
//CFTypeRef kSecMatchSearchList; //
//CFTypeRef kSecMatchIssuers; //指定發(fā)行人數(shù)組 CFArrayRef
//CFTypeRef kSecMatchEmailAddressIfPresent; //指定郵件地址 CFStringRef
//CFTypeRef kSecMatchSubjectContains; //指定主題 CFStringRef
//CFTypeRef kSecMatchCaseInsensitive; //指定是否不區(qū)分大小寫 CFBooleanRef(kCFBooleanFalse或不提供此參數(shù),區(qū)分大小寫;kCFBooleanTrue,不區(qū)分大小寫)
//CFTypeRef kSecMatchTrustedOnly; //指定只搜索可信證書 CFBooleanRef(kCFBooleanFalse或不提供此參數(shù),全部證書;kCFBooleanTrue,只搜索可信證書)
//CFTypeRef kSecMatchValidOnDate; //指定有效日期 CFDateRef(kCFNull表示今天)
//CFTypeRef kSecMatchLimit; //指定結果數(shù)量 CFNumberRef(kSecMatchLimitOne;kSecMatchLimitAll)
//CFTypeRef kSecMatchLimitOne; //首條結果
//CFTypeRef kSecMatchLimitAll; //全部結果
pragma mark- 列表
//CFTypeRef kSecUseItemList; //CFArrayRef(SecKeychainItemRef, SecKeyRef, SecCertificateRef, SecIdentityRef,CFDataRef)數(shù)組內(nèi)的類型必須唯一。用戶提供用于查詢的列表。當這個列表被提供的時候,不會再搜索鑰匙串。
pragma mark- 返回值類型
//可以同時指定多種返回值類型
//CFTypeRef kSecReturnData; //返回數(shù)據(jù)(CFDataRef) CFBooleanRef
//CFTypeRef kSecReturnAttributes; //返回屬性字典(CFDictionaryRef) CFBooleanRef
//CFTypeRef kSecReturnRef; //返回實例(SecKeychainItemRef, SecKeyRef, SecCertificateRef, SecIdentityRef, or CFDataRef) CFBooleanRef
//CFTypeRef kSecReturnPersistentRef; //返回持久型實例(CFDataRef) CFBooleanRef
pragma mark- 寫入值類型
//CFTypeRef kSecValueData;
//CFTypeRef kSecValueRef;
//CFTypeRef kSecValuePersistentRef;