using CPF.Mac.ObjCRuntime; using System; namespace CPF.Mac.Security { internal static class SecAttributeKey { private static IntPtr _AttrAccessible; private static IntPtr _AttrAccessGroup; private static IntPtr _AttrCreationDate; private static IntPtr _AttrModificationDate; private static IntPtr _AttrDescription; private static IntPtr _AttrComment; private static IntPtr _AttrCreator; private static IntPtr _AttrType; private static IntPtr _AttrLabel; private static IntPtr _AttrIsInvisible; private static IntPtr _AttrIsNegative; private static IntPtr _AttrAccount; private static IntPtr _AttrService; private static IntPtr _AttrGeneric; private static IntPtr _AttrSecurityDomain; private static IntPtr _AttrServer; private static IntPtr _AttrProtocol; private static IntPtr _AttrAuthenticationType; private static IntPtr _AttrPort; private static IntPtr _AttrPath; private static IntPtr _AttrSubject; private static IntPtr _AttrIssuer; private static IntPtr _AttrSerialNumber; private static IntPtr _AttrSubjectKeyID; private static IntPtr _AttrPublicKeyHash; private static IntPtr _AttrCertificateType; private static IntPtr _AttrCertificateEncoding; private static IntPtr _AttrKeyClass; private static IntPtr _AttrApplicationLabel; private static IntPtr _AttrIsPermanent; private static IntPtr _AttrApplicationTag; private static IntPtr _AttrKeyType; private static IntPtr _AttrKeySizeInBits; private static IntPtr _AttrEffectiveKeySize; private static IntPtr _AttrCanEncrypt; private static IntPtr _AttrCanDecrypt; private static IntPtr _AttrCanDerive; private static IntPtr _AttrCanSign; private static IntPtr _AttrCanVerify; private static IntPtr _AttrCanWrap; private static IntPtr _AttrCanUnwrap; public static IntPtr AttrAccessible { get { if (_AttrAccessible == IntPtr.Zero) { _AttrAccessible = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrAccessible"); } return _AttrAccessible; } } public static IntPtr AttrAccessGroup { get { if (_AttrAccessGroup == IntPtr.Zero) { _AttrAccessGroup = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrAccessGroup"); } return _AttrAccessGroup; } } public static IntPtr AttrCreationDate { get { if (_AttrCreationDate == IntPtr.Zero) { _AttrCreationDate = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrCreationDate"); } return _AttrCreationDate; } } public static IntPtr AttrModificationDate { get { if (_AttrModificationDate == IntPtr.Zero) { _AttrModificationDate = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrModificationDate"); } return _AttrModificationDate; } } public static IntPtr AttrDescription { get { if (_AttrDescription == IntPtr.Zero) { _AttrDescription = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrDescription"); } return _AttrDescription; } } public static IntPtr AttrComment { get { if (_AttrComment == IntPtr.Zero) { _AttrComment = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrComment"); } return _AttrComment; } } public static IntPtr AttrCreator { get { if (_AttrCreator == IntPtr.Zero) { _AttrCreator = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrCreator"); } return _AttrCreator; } } public static IntPtr AttrType { get { if (_AttrType == IntPtr.Zero) { _AttrType = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrType"); } return _AttrType; } } public static IntPtr AttrLabel { get { if (_AttrLabel == IntPtr.Zero) { _AttrLabel = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrLabel"); } return _AttrLabel; } } public static IntPtr AttrIsInvisible { get { if (_AttrIsInvisible == IntPtr.Zero) { _AttrIsInvisible = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrIsInvisible"); } return _AttrIsInvisible; } } public static IntPtr AttrIsNegative { get { if (_AttrIsNegative == IntPtr.Zero) { _AttrIsNegative = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrIsNegative"); } return _AttrIsNegative; } } public static IntPtr AttrAccount { get { if (_AttrAccount == IntPtr.Zero) { _AttrAccount = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrAccount"); } return _AttrAccount; } } public static IntPtr AttrService { get { if (_AttrService == IntPtr.Zero) { _AttrService = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrService"); } return _AttrService; } } public static IntPtr AttrGeneric { get { if (_AttrGeneric == IntPtr.Zero) { _AttrGeneric = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrGeneric"); } return _AttrGeneric; } } public static IntPtr AttrSecurityDomain { get { if (_AttrSecurityDomain == IntPtr.Zero) { _AttrSecurityDomain = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrSecurityDomain"); } return _AttrSecurityDomain; } } public static IntPtr AttrServer { get { if (_AttrServer == IntPtr.Zero) { _AttrServer = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrServer"); } return _AttrServer; } } public static IntPtr AttrProtocol { get { if (_AttrProtocol == IntPtr.Zero) { _AttrProtocol = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrProtocol"); } return _AttrProtocol; } } public static IntPtr AttrAuthenticationType { get { if (_AttrAuthenticationType == IntPtr.Zero) { _AttrAuthenticationType = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrAuthenticationType"); } return _AttrAuthenticationType; } } public static IntPtr AttrPort { get { if (_AttrPort == IntPtr.Zero) { _AttrPort = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrPort"); } return _AttrPort; } } public static IntPtr AttrPath { get { if (_AttrPath == IntPtr.Zero) { _AttrPath = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrPath"); } return _AttrPath; } } public static IntPtr AttrSubject { get { if (_AttrSubject == IntPtr.Zero) { _AttrSubject = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrSubject"); } return _AttrSubject; } } public static IntPtr AttrIssuer { get { if (_AttrIssuer == IntPtr.Zero) { _AttrIssuer = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrIssuer"); } return _AttrIssuer; } } public static IntPtr AttrSerialNumber { get { if (_AttrSerialNumber == IntPtr.Zero) { _AttrSerialNumber = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrSerialNumber"); } return _AttrSerialNumber; } } public static IntPtr AttrSubjectKeyID { get { if (_AttrSubjectKeyID == IntPtr.Zero) { _AttrSubjectKeyID = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrSubjectKeyID"); } return _AttrSubjectKeyID; } } public static IntPtr AttrPublicKeyHash { get { if (_AttrPublicKeyHash == IntPtr.Zero) { _AttrPublicKeyHash = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrPublicKeyHash"); } return _AttrPublicKeyHash; } } public static IntPtr AttrCertificateType { get { if (_AttrCertificateType == IntPtr.Zero) { _AttrCertificateType = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrCertificateType"); } return _AttrCertificateType; } } public static IntPtr AttrCertificateEncoding { get { if (_AttrCertificateEncoding == IntPtr.Zero) { _AttrCertificateEncoding = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrCertificateEncoding"); } return _AttrCertificateEncoding; } } public static IntPtr AttrKeyClass { get { if (_AttrKeyClass == IntPtr.Zero) { _AttrKeyClass = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrKeyClass"); } return _AttrKeyClass; } } public static IntPtr AttrApplicationLabel { get { if (_AttrApplicationLabel == IntPtr.Zero) { _AttrApplicationLabel = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrApplicationLabel"); } return _AttrApplicationLabel; } } public static IntPtr AttrIsPermanent { get { if (_AttrIsPermanent == IntPtr.Zero) { _AttrIsPermanent = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrIsPermanent"); } return _AttrIsPermanent; } } public static IntPtr AttrApplicationTag { get { if (_AttrApplicationTag == IntPtr.Zero) { _AttrApplicationTag = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrApplicationTag"); } return _AttrApplicationTag; } } public static IntPtr AttrKeyType { get { if (_AttrKeyType == IntPtr.Zero) { _AttrKeyType = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrKeyType"); } return _AttrKeyType; } } public static IntPtr AttrKeySizeInBits { get { if (_AttrKeySizeInBits == IntPtr.Zero) { _AttrKeySizeInBits = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrKeySizeInBits"); } return _AttrKeySizeInBits; } } public static IntPtr AttrEffectiveKeySize { get { if (_AttrEffectiveKeySize == IntPtr.Zero) { _AttrEffectiveKeySize = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrEffectiveKeySize"); } return _AttrEffectiveKeySize; } } public static IntPtr AttrCanEncrypt { get { if (_AttrCanEncrypt == IntPtr.Zero) { _AttrCanEncrypt = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrCanEncrypt"); } return _AttrCanEncrypt; } } public static IntPtr AttrCanDecrypt { get { if (_AttrCanDecrypt == IntPtr.Zero) { _AttrCanDecrypt = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrCanDecrypt"); } return _AttrCanDecrypt; } } public static IntPtr AttrCanDerive { get { if (_AttrCanDerive == IntPtr.Zero) { _AttrCanDerive = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrCanDerive"); } return _AttrCanDerive; } } public static IntPtr AttrCanSign { get { if (_AttrCanSign == IntPtr.Zero) { _AttrCanSign = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrCanSign"); } return _AttrCanSign; } } public static IntPtr AttrCanVerify { get { if (_AttrCanVerify == IntPtr.Zero) { _AttrCanVerify = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrCanVerify"); } return _AttrCanVerify; } } public static IntPtr AttrCanWrap { get { if (_AttrCanWrap == IntPtr.Zero) { _AttrCanWrap = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrCanWrap"); } return _AttrCanWrap; } } public static IntPtr AttrCanUnwrap { get { if (_AttrCanUnwrap == IntPtr.Zero) { _AttrCanUnwrap = Dlfcn.GetIntPtr(SecItem.securityLibrary, "kSecAttrCanUnwrap"); } return _AttrCanUnwrap; } } } }