45 lines
1.8 KiB
C#
Executable File
45 lines
1.8 KiB
C#
Executable File
using System;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text;
|
|
|
|
namespace shadowsocks_csharp.Encrypt
|
|
{
|
|
public class OpenSSL
|
|
{
|
|
const string DLLNAME = "libeay32";
|
|
|
|
[DllImport(DLLNAME, CallingConvention = CallingConvention.Cdecl)]
|
|
public extern static void OpenSSL_add_all_ciphers();
|
|
|
|
[DllImport(DLLNAME, CallingConvention = CallingConvention.Cdecl)]
|
|
public extern static IntPtr EVP_md5();
|
|
|
|
[DllImport(DLLNAME, CallingConvention = CallingConvention.Cdecl)]
|
|
public extern static int EVP_BytesToKey(IntPtr type, IntPtr md, IntPtr salt, byte[] data, int datal, int count, byte[] key, byte[] iv);
|
|
|
|
[DllImport(DLLNAME, CallingConvention = CallingConvention.Cdecl)]
|
|
public extern static int RAND_bytes(byte[] buf, int num);
|
|
|
|
[DllImport(DLLNAME, CallingConvention = CallingConvention.Cdecl)]
|
|
public extern static IntPtr EVP_get_cipherbyname(byte[] name);
|
|
|
|
[DllImport(DLLNAME, CallingConvention = CallingConvention.Cdecl)]
|
|
public extern static IntPtr EVP_CIPHER_CTX_new();
|
|
|
|
[DllImport(DLLNAME, CallingConvention = CallingConvention.Cdecl)]
|
|
public extern static int EVP_CipherInit_ex(IntPtr ctx, IntPtr type, IntPtr impl, byte[] key, byte[] iv, int enc);
|
|
|
|
[DllImport(DLLNAME, CallingConvention = CallingConvention.Cdecl)]
|
|
public extern static int EVP_CIPHER_CTX_cleanup(IntPtr a);
|
|
|
|
[DllImport(DLLNAME, CallingConvention = CallingConvention.Cdecl)]
|
|
public extern static int EVP_CIPHER_CTX_free(IntPtr a);
|
|
|
|
[DllImport(DLLNAME, CallingConvention = CallingConvention.Cdecl)]
|
|
public extern static int EVP_CipherUpdate(IntPtr ctx, byte[] outb, out int outl, byte[] inb, int inl);
|
|
|
|
|
|
}
|
|
}
|