Microsoft.Identity.Client.Platforms.Features.DesktopOs.SecurityFramework
namespace Microsoft.Identity.Client.Platforms.Features.DesktopOs
{
internal static class SecurityFramework
{
public static readonly IntPtr Handle;
public static readonly IntPtr kSecClass;
public static readonly IntPtr kSecMatchLimit;
public static readonly IntPtr kSecReturnAttributes;
public static readonly IntPtr kSecReturnRef;
public static readonly IntPtr kSecReturnPersistentRef;
public static readonly IntPtr kSecClassGenericPassword;
public static readonly IntPtr kSecMatchLimitOne;
public static readonly IntPtr kSecMatchItemList;
public static readonly IntPtr kSecAttrLabel;
public static readonly IntPtr kSecAttrAccount;
public static readonly IntPtr kSecAttrService;
public static readonly IntPtr kSecValueRef;
public static readonly IntPtr kSecValueData;
public static readonly IntPtr kSecReturnData;
public const int CallerSecuritySession = -1;
public const int OK = 0;
public const int ErrorSecNoSuchKeychain = -25294;
public const int ErrorSecInvalidKeychain = -25295;
public const int ErrorSecAuthFailed = -25293;
public const int ErrorSecDuplicateItem = -25299;
public const int ErrorSecItemNotFound = -25300;
public const int ErrorSecInteractionNotAllowed = -25308;
public const int ErrorSecInteractionRequired = -25315;
public const int ErrorSecNoSuchAttr = -25303;
public static extern int SessionGetInfo(int session, out int sessionId, out SessionAttributeBits attributes);
public static extern int SecAccessCreate(IntPtr descriptor, IntPtr trustedList, out IntPtr accessRef);
public static extern int SecKeychainItemCreateFromContent(IntPtr itemClass, IntPtr attrList, uint length, IntPtr data, IntPtr keychainRef, IntPtr initialAccess, out IntPtr itemRef);
public static extern int SecKeychainAddGenericPassword(IntPtr keychain, uint serviceNameLength, string serviceName, uint accountNameLength, string accountName, uint passwordLength, byte[] passwordData, out IntPtr itemRef);
public static extern int SecKeychainFindGenericPassword(IntPtr keychainOrArray, uint serviceNameLength, string serviceName, uint accountNameLength, string accountName, out uint passwordLength, out IntPtr passwordData, out IntPtr itemRef);
public unsafe static extern int SecKeychainItemCopyAttributesAndData(IntPtr itemRef, IntPtr info, IntPtr itemClass, SecKeychainAttributeList** attrList, uint* dataLength, void** data);
public static extern int SecKeychainItemModifyAttributesAndData(IntPtr itemRef, IntPtr attrList, uint length, byte[] data);
public static extern int SecKeychainItemDelete(IntPtr itemRef);
public static extern int SecKeychainItemFreeContent(IntPtr attrList, IntPtr data);
public static extern int SecKeychainItemFreeAttributesAndData(IntPtr attrList, IntPtr data);
public static extern int SecItemCopyMatching(IntPtr query, out IntPtr result);
public static extern int SecKeychainItemCopyFromPersistentReference(IntPtr persistentItemRef, out IntPtr itemRef);
public static extern int SecKeychainItemCopyContent(IntPtr itemRef, IntPtr itemClass, IntPtr attrList, out uint length, out IntPtr outData);
}
}