コード例 #1
0
ファイル: Crypt.cs プロジェクト: wy182000/mahjong
        public static byte[] dhsecret(byte[] key, byte[] src)
        {
            try {
                IntPtr keyptr = Marshal.AllocHGlobal(key.Length);
                Marshal.Copy(key, 0, keyptr, key.Length);
                Crypt_CSharp.PACKAGE pgkey;
                pgkey.src = keyptr;
                pgkey.len = key.Length;

                IntPtr ptr = Marshal.AllocHGlobal(src.Length);
                Marshal.Copy(src, 0, ptr, src.Length);
                Crypt_CSharp.PACKAGE pg;
                pg.src = ptr;
                pg.len = src.Length;

                Crypt_CSharp.PACKAGE res = Crypt_CSharp.dhsecret(pgkey, pg);
                byte[] buffer            = new byte[res.len];
                Marshal.Copy(res.src, buffer, 0, res.len);
                pfree(res);

                Marshal.FreeHGlobal(keyptr);
                Marshal.FreeHGlobal(ptr);
                return(buffer);
            } catch (Exception) {
                throw;
            }
        }
コード例 #2
0
 public static byte[] dhsecret(byte[] key, byte[] src)
 {
     try {
         IntPtr keyptr = Package.package_packarray(key);
         IntPtr srcptr = Package.package_packarray(src);
         IntPtr resptr = Crypt_CSharp.dhsecret(keyptr, srcptr);
         byte[] buffer = Package.package_unpackarray(resptr);
         Package.package_freezero(ref keyptr);
         Package.package_freezero(ref srcptr);
         Package.package_freezero(ref resptr);
         return(buffer);
     } catch (Exception) {
         throw;
     }
 }