Пример #1
0
        private static PRE_KEY KeyPtr2KeyStr(IntPtr keyPtr)
        {
            PRE_ptrKEY ptrKey = (PRE_ptrKEY)Marshal.PtrToStructure(keyPtr, typeof(PRE_ptrKEY));
            PRE_PK     pkey   = (PRE_PK)Marshal.PtrToStructure(ptrKey.pk, typeof(PRE_PK));
            PRE_SK     skey   = (PRE_SK)Marshal.PtrToStructure(ptrKey.sk, typeof(PRE_SK));

            return(new PRE_KEY {
                PK = pkey, SK = skey
            });
        }
Пример #2
0
        private static IntPtr KeyStr2KeyPtr(PRE_KEY key)
        {
            PRE_ptrPK ptrPK = new PRE_ptrPK {
                pk1 = Marshal.StringToHGlobalAnsi(key.PK.PK1), pk2 = Marshal.StringToHGlobalAnsi(key.PK.PK2)
            };
            IntPtr pPk = Marshal.AllocHGlobal(Marshal.SizeOf(ptrPK));

            Marshal.StructureToPtr(ptrPK, pPk, true);

            PRE_ptrSK ptrSK = new PRE_ptrSK {
                x1 = Marshal.StringToHGlobalAnsi(key.SK.X1), x2 = Marshal.StringToHGlobalAnsi(key.SK.X2)
            };
            IntPtr pSk = Marshal.AllocHGlobal(Marshal.SizeOf(ptrSK));

            Marshal.StructureToPtr(ptrSK, pSk, true);

            PRE_ptrKEY keyPtr = new PRE_ptrKEY {
                pk = pPk, sk = pSk
            };
            IntPtr pKey = Marshal.AllocHGlobal(Marshal.SizeOf(keyPtr));

            Marshal.StructureToPtr(keyPtr, pKey, true);
            return(pKey);
        }
Пример #3
0
        private static IntPtr GetSkPtrFromKey(IntPtr Keyptr)
        {
            PRE_ptrKEY pKey = (PRE_ptrKEY)Marshal.PtrToStructure(Keyptr, typeof(PRE_ptrKEY));

            return(pKey.sk);
        }
Пример #4
0
        private static IntPtr KeyStr2KeyPtr( PRE_KEY key )
        {
            PRE_ptrPK ptrPK = new PRE_ptrPK { pk1 = Marshal.StringToHGlobalAnsi( key.PK.PK1 ) , pk2 = Marshal.StringToHGlobalAnsi( key.PK.PK2 ) };
            IntPtr pPk = Marshal.AllocHGlobal( Marshal.SizeOf( ptrPK ) );
            Marshal.StructureToPtr( ptrPK , pPk , true );

            PRE_ptrSK ptrSK = new PRE_ptrSK { x1 = Marshal.StringToHGlobalAnsi( key.SK.X1 ) , x2 = Marshal.StringToHGlobalAnsi( key.SK.X2 ) };
            IntPtr pSk = Marshal.AllocHGlobal( Marshal.SizeOf( ptrSK ) );
            Marshal.StructureToPtr( ptrSK , pSk , true );

            PRE_ptrKEY keyPtr = new PRE_ptrKEY { pk = pPk , sk = pSk };
            IntPtr pKey = Marshal.AllocHGlobal( Marshal.SizeOf( keyPtr ) );
            Marshal.StructureToPtr( keyPtr , pKey , true );
            return pKey;
        }