| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 | 
							- using System;
 
- using System.Runtime.InteropServices;
 
- using System.Security;
 
- namespace MediaBrowser.ServerApplication.Networking
 
- {
 
-     /// <summary>
 
-     /// Class NativeMethods
 
-     /// </summary>
 
-     [SuppressUnmanagedCodeSecurity]
 
-     public static class NativeMethods
 
-     {
 
-         //declare the Netapi32 : NetServerEnum method import
 
-         /// <summary>
 
-         /// Nets the server enum.
 
-         /// </summary>
 
-         /// <param name="ServerName">Name of the server.</param>
 
-         /// <param name="dwLevel">The dw level.</param>
 
-         /// <param name="pBuf">The p buf.</param>
 
-         /// <param name="dwPrefMaxLen">The dw pref max len.</param>
 
-         /// <param name="dwEntriesRead">The dw entries read.</param>
 
-         /// <param name="dwTotalEntries">The dw total entries.</param>
 
-         /// <param name="dwServerType">Type of the dw server.</param>
 
-         /// <param name="domain">The domain.</param>
 
-         /// <param name="dwResumeHandle">The dw resume handle.</param>
 
-         /// <returns>System.Int32.</returns>
 
-         [DllImport("Netapi32", CharSet = CharSet.Auto, SetLastError = true),
 
-         SuppressUnmanagedCodeSecurity]
 
-         public static extern int NetServerEnum(
 
-             string ServerName, // must be null
 
-             int dwLevel,
 
-             ref IntPtr pBuf,
 
-             int dwPrefMaxLen,
 
-             out int dwEntriesRead,
 
-             out int dwTotalEntries,
 
-             int dwServerType,
 
-             string domain, // null for login domain
 
-             out int dwResumeHandle
 
-             );
 
-         //declare the Netapi32 : NetApiBufferFree method import
 
-         /// <summary>
 
-         /// Nets the API buffer free.
 
-         /// </summary>
 
-         /// <param name="pBuf">The p buf.</param>
 
-         /// <returns>System.Int32.</returns>
 
-         [DllImport("Netapi32", SetLastError = true),
 
-         SuppressUnmanagedCodeSecurity]
 
-         public static extern int NetApiBufferFree(
 
-             IntPtr pBuf);
 
-         [DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)]
 
-         [return: MarshalAs(UnmanagedType.Bool)]
 
-         public static extern bool FileTimeToSystemTime(
 
-             [In] ref long fileTime,
 
-             out SystemTime systemTime);
 
-         [DllImport("AdvApi32.dll", SetLastError = true, ExactSpelling = true)]
 
-         [return: MarshalAs(UnmanagedType.Bool)]
 
-         public static extern bool CryptAcquireContextW(
 
-             out IntPtr providerContext,
 
-             [MarshalAs(UnmanagedType.LPWStr)] string container,
 
-             [MarshalAs(UnmanagedType.LPWStr)] string provider,
 
-             int providerType,
 
-             int flags);
 
-         [DllImport("AdvApi32.dll", SetLastError = true, ExactSpelling = true)]
 
-         [return: MarshalAs(UnmanagedType.Bool)]
 
-         public static extern bool CryptReleaseContext(
 
-             IntPtr providerContext,
 
-             int flags);
 
-         [DllImport("AdvApi32.dll", SetLastError = true, ExactSpelling = true)]
 
-         [return: MarshalAs(UnmanagedType.Bool)]
 
-         public static extern bool CryptGenKey(
 
-             IntPtr providerContext,
 
-             int algorithmId,
 
-             int flags,
 
-             out IntPtr cryptKeyHandle);
 
-         [DllImport("AdvApi32.dll", SetLastError = true, ExactSpelling = true)]
 
-         [return: MarshalAs(UnmanagedType.Bool)]
 
-         public static extern bool CryptDestroyKey(
 
-             IntPtr cryptKeyHandle);
 
-         [DllImport("Crypt32.dll", SetLastError = true, ExactSpelling = true)]
 
-         [return: MarshalAs(UnmanagedType.Bool)]
 
-         public static extern bool CertStrToNameW(
 
-             int certificateEncodingType,
 
-             IntPtr x500,
 
-             int strType,
 
-             IntPtr reserved,
 
-             [MarshalAs(UnmanagedType.LPArray)] [Out] byte[] encoded,
 
-             ref int encodedLength,
 
-             out IntPtr errorString);
 
-         [DllImport("Crypt32.dll", SetLastError = true, ExactSpelling = true)]
 
-         public static extern IntPtr CertCreateSelfSignCertificate(
 
-             IntPtr providerHandle,
 
-             [In] ref CryptoApiBlob subjectIssuerBlob,
 
-             int flags,
 
-             [In] ref CryptKeyProviderInformation keyProviderInformation,
 
-             [In] ref CryptAlgorithmIdentifier algorithmIdentifier,
 
-             [In] ref SystemTime startTime,
 
-             [In] ref SystemTime endTime,
 
-             IntPtr extensions);
 
-         [DllImport("Crypt32.dll", SetLastError = true, ExactSpelling = true)]
 
-         [return: MarshalAs(UnmanagedType.Bool)]
 
-         public static extern bool CertFreeCertificateContext(
 
-             IntPtr certificateContext);
 
-         [DllImport("Crypt32.dll", SetLastError = true, ExactSpelling = true)]
 
-         public static extern IntPtr CertOpenStore(
 
-             [MarshalAs(UnmanagedType.LPStr)] string storeProvider,
 
-             int messageAndCertificateEncodingType,
 
-             IntPtr cryptProvHandle,
 
-             int flags,
 
-             IntPtr parameters);
 
-         [DllImport("Crypt32.dll", SetLastError = true, ExactSpelling = true)]
 
-         [return: MarshalAs(UnmanagedType.Bool)]
 
-         public static extern bool CertCloseStore(
 
-             IntPtr certificateStoreHandle,
 
-             int flags);
 
-         [DllImport("Crypt32.dll", SetLastError = true, ExactSpelling = true)]
 
-         [return: MarshalAs(UnmanagedType.Bool)]
 
-         public static extern bool CertAddCertificateContextToStore(
 
-             IntPtr certificateStoreHandle,
 
-             IntPtr certificateContext,
 
-             int addDisposition,
 
-             out IntPtr storeContextPtr);
 
-         [DllImport("Crypt32.dll", SetLastError = true, ExactSpelling = true)]
 
-         [return: MarshalAs(UnmanagedType.Bool)]
 
-         public static extern bool CertSetCertificateContextProperty(
 
-             IntPtr certificateContext,
 
-             int propertyId,
 
-             int flags,
 
-             [In] ref CryptKeyProviderInformation data);
 
-         [DllImport("Crypt32.dll", SetLastError = true, ExactSpelling = true)]
 
-         [return: MarshalAs(UnmanagedType.Bool)]
 
-         public static extern bool PFXExportCertStoreEx(
 
-             IntPtr certificateStoreHandle,
 
-             ref CryptoApiBlob pfxBlob,
 
-             IntPtr password,
 
-             IntPtr reserved,
 
-             int flags);
 
-     }
 
-     //create a _SERVER_INFO_100 STRUCTURE
 
-     /// <summary>
 
-     /// Struct _SERVER_INFO_100
 
-     /// </summary>
 
-     [StructLayout(LayoutKind.Sequential)]
 
-     public struct _SERVER_INFO_100
 
-     {
 
-         /// <summary>
 
-         /// The sv100_platform_id
 
-         /// </summary>
 
-         internal int sv100_platform_id;
 
-         /// <summary>
 
-         /// The sv100_name
 
-         /// </summary>
 
-         [MarshalAs(UnmanagedType.LPWStr)]
 
-         internal string sv100_name;
 
-     }
 
-     [StructLayout(LayoutKind.Sequential)]
 
-     public struct SystemTime
 
-     {
 
-         public short Year;
 
-         public short Month;
 
-         public short DayOfWeek;
 
-         public short Day;
 
-         public short Hour;
 
-         public short Minute;
 
-         public short Second;
 
-         public short Milliseconds;
 
-     }
 
-     [StructLayout(LayoutKind.Sequential)]
 
-     public struct CryptObjIdBlob
 
-     {
 
-         public uint cbData;
 
-         public IntPtr pbData;
 
-     }
 
-     [StructLayout(LayoutKind.Sequential)]
 
-     public struct CryptAlgorithmIdentifier
 
-     {
 
-         [MarshalAs(UnmanagedType.LPStr)]
 
-         public String pszObjId;
 
-         public CryptObjIdBlob Parameters;
 
-     }
 
-     [StructLayout(LayoutKind.Sequential)]
 
-     public struct CryptoApiBlob
 
-     {
 
-         public int DataLength;
 
-         public IntPtr Data;
 
-         public CryptoApiBlob(int dataLength, IntPtr data)
 
-         {
 
-             this.DataLength = dataLength;
 
-             this.Data = data;
 
-         }
 
-     }
 
-     [StructLayout(LayoutKind.Sequential)]
 
-     public struct CryptKeyProviderInformation
 
-     {
 
-         [MarshalAs(UnmanagedType.LPWStr)]
 
-         public string ContainerName;
 
-         [MarshalAs(UnmanagedType.LPWStr)]
 
-         public string ProviderName;
 
-         public int ProviderType;
 
-         public int Flags;
 
-         public int ProviderParameterCount;
 
-         public IntPtr ProviderParameters; // PCRYPT_KEY_PROV_PARAM
 
-         public int KeySpec;
 
-     }
 
- }
 
 
  |