<PackageReference Include="Microsoft.Identity.Client" Version="4.82.1" />

Microsoft.Identity.Client.Platforms.Features.DesktopOs.SecurityFramework

static class 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); } }