using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; //class NT88API //{ ////查找加密鎖 // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] // public static extern int NTFindFirst(string NTCode); ////查詢硬件ID // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] // public static extern int NTGetHardwareID(StringBuilder hardwareID); ////登錄加密鎖 // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] // public static extern int NTLogin(string NTpassword); ////存儲區數據讀取 // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] // public static extern int NTRead(int address, int Length, byte[] pData); ////存儲區數據寫入 // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] // public static extern int NTWrite(int address, int Length, byte[] pData); ////3DES解密 // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] // public static extern int NT3DESCBCDecrypt(byte[] vi, byte[] pDataBuffer, int Length); ////3DES加密 // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] // public static extern int NT3DESCBCEncrypt(byte[] vi, byte[] pDataBuffer, int Length); ////驗證許可證 // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] // public static extern int NTCheckLicense(int licenseCode); ////登出加密鎖 // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] // public static extern int NTLogout(); // #region 管理員API ////驗證管理員密碼 // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] // public static extern int NTCheckSuperPin(string superPin); // #endregion //} class NT88API { #region 管理員用法 //查找所有加密鎖,只有找到加密鎖才能其他操作,NTFindAll必須第一個執行 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NTFindAll(int[] NTHandle, int[] nKeyNum); /// <summary> /// 獲取加密鎖硬件屬性 /// </summary> /// <param name="NTHandle">加密鎖handle</param> /// <param name="keyMode">加密鎖型號</param> /// <param name="keyVersion">硬件版本</param> /// <param name="e2size">存儲區大小</param> /// <param name="ramSize">內存區大小</param> /// <param name="prouctionTime">生產日期</param> /// <returns></returns> [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NTGetDevCaps(int NTHandle, int[] keyMode, int[] keyVersion, int[] e2size, int[] ramSize, byte[] prouctionTime); //獲取硬件序列號 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NTGetHarddwareID(int NTHandle, string hardwareID); //檢測管理密碼 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NTCheckSuperPin(int NTHandle, string superin); //修改加密鎖管理密碼 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NTSetSuperPin(int NTHandle, string newSPin); //修改加密鎖登錄密碼 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NTSetUserPin(int NTHandle, string superin, string seed, StringBuilder userPin); //修改加密鎖識別碼 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NTSetAppName(int NTHandle, StringBuilder NTCode); //獲得加密鎖識別碼 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NTGetAppName(int NTHandle, StringBuilder NTCode); //讀取存儲區數據 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NTRead(int NTHandle, int address, int length, byte[] pData); //讀寫存儲區數據 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NTWrite(int NTHandle, int address, int length, byte[] pData); //獲取許可證標識及驗證碼 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NTGetLicenseSettings(int NTHandle, byte[] licenseOption, int[] licenseCode, int licOptionNumber); //設置許可證標識,同時計算出驗證碼 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NTGenLicenseCodes(int NTHandle, byte[] licenseOption, int[] licenseCode, int licOptionNumber); //驗證許可證,輸入相應額驗證碼進行驗證 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NTCheckLicense(int NTHandle, int licenseCode); //3DES加密 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NT3DESCBCEncrypt(int NTHandle, byte[] iv, byte[] pDataBuffer, int length); //3DES設置 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NTSet3DESKey(int NTHandle, byte[] key); //3DES解密 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NT3DESCBCDecrypt(int NTHandle, byte[] iv, byte[] pDataBuffer, int length); //查詢硬件ID [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NTGetHardwareID(int NTHandle, StringBuilder hardwareID); #endregion /*****************************************/ #region 應用層 //查找加密鎖 [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NTFindFirst(string NTCode); //查詢硬件ID [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NTGetHardwareID(StringBuilder hardwareID); //登錄加密鎖 [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NTLogin(string NTpassword); //存儲區數據讀取 [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NTRead(int address, int Length, byte[] pData); //存儲區數據寫入 [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NTWrite(int address, int Length, byte[] pData); //3DES解密 [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NT3DESCBCDecrypt(byte[] vi, byte[] pDataBuffer, int Length); //3DES加密 [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NT3DESCBCEncrypt(byte[] vi, byte[] pDataBuffer, int Length); //驗證許可證 [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int NTCheckLicense(int licenseCode); //登出加密鎖 [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] public static extern int NTLogout(); #endregion }
