mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-02-03 09:35:39 -05:00
* CredentialService initial impl with Win32 support - Basic CredentialService APIs for Save, Read, Delete - E2E unit tests for Credential Service - Win32 implementation with unit tests * Save Password support on Mac v1 - Basic keychain support on Mac using Interop with the KeyChain APIs - All but 1 unit test passing. This will pass once API is changed, but checking this in with the existing API so that if we decide to alter behavior, we have a reference point. * Remove Username from Credentials API - Removed Username option from Credentials as this caused conflicting behavior on Mac vs Windows * Cleanup Using Statements and add Copyright * Linux CredentialStore Prototype * Linux credential store support - Full support for Linux credential store with tests * Plumbed CredentialService into Program init * Addressing Pull Request comments
43 lines
1.5 KiB
C#
43 lines
1.5 KiB
C#
//
|
|
// Copyright (c) Microsoft. All rights reserved.
|
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
//
|
|
|
|
using System;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace Microsoft.SqlTools.ServiceLayer.Credentials
|
|
{
|
|
internal static partial class Interop
|
|
{
|
|
internal static partial class Sys
|
|
{
|
|
[DllImport(Libraries.SystemNative, EntryPoint = "SystemNative_ChMod", SetLastError = true)]
|
|
internal static extern int ChMod(string path, int mode);
|
|
|
|
internal struct Passwd
|
|
{
|
|
internal IntPtr Name; // char*
|
|
internal IntPtr Password; // char*
|
|
internal uint UserId;
|
|
internal uint GroupId;
|
|
internal IntPtr UserInfo; // char*
|
|
internal IntPtr HomeDirectory; // char*
|
|
internal IntPtr Shell; // char*
|
|
};
|
|
|
|
[DllImport(Libraries.SystemNative, EntryPoint = "SystemNative_GetPwUidR", SetLastError = false)]
|
|
internal static extern int GetPwUidR(uint uid, out Passwd pwd, IntPtr buf, int bufLen);
|
|
|
|
[DllImport(Libraries.SystemNative, EntryPoint = "SystemNative_GetEUid")]
|
|
internal static extern uint GetEUid();
|
|
|
|
private static partial class Libraries
|
|
{
|
|
internal const string SystemNative = "System.Native";
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|