Ejemplo n.º 1
0
        public static bool auth(Shared shared, Users authorizedUsers, PicoBuffer returnedStoredData, QrCallback qrCallback, object data, PicoBuffer localSymmetricKey)
        {
            IntPtr sharedPtr = IntPtr.Zero;

            if (shared != null)
            {
                sharedPtr = shared.getIntPtr();
            }
            IntPtr usersPtr = IntPtr.Zero;

            if (authorizedUsers != null)
            {
                usersPtr = authorizedUsers.getIntPtr();
            }
            IntPtr storedDataPtr = IntPtr.Zero;

            if (returnedStoredData != null)
            {
                storedDataPtr = returnedStoredData.getIntPtr();
            }
            IntPtr localSymmetricKeyPtr = IntPtr.Zero;

            if (localSymmetricKey != null)
            {
                localSymmetricKeyPtr = localSymmetricKey.getIntPtr();
            }

            PicoDLL.QrCallbackFunctionInternal internalDelegate = delegate(string qrData, IntPtr intPtr)
            {
                return(qrCallback(qrData, ((GCHandle)intPtr).Target));
            };

            return(PicoDLL.auth(sharedPtr, usersPtr, storedDataPtr, internalDelegate, (IntPtr)GCHandle.Alloc(data), localSymmetricKeyPtr));
        }