Files
RemSox/Cryptography/CryptoManager.cs
T

36 lines
970 B
C#

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Numerics;
using System.Threading.Tasks;
using Cosmos.Kernel.System.Keyboard;
using Cosmos.Kernel.System.Mouse;
using RemSox.Plugs;
namespace RemSox.Cryptography;
public static class CryptoManager
{
private static Point lastMousePosition = new Point(0, 0);
public static void Update()
{
int x = MouseManager.X;
int y = MouseManager.Y;
int dx = x - lastMousePosition.X;
int dy = y - lastMousePosition.Y;
int dz = MouseManager.ScrollDelta;
lastMousePosition = new Point(x, y);
RandomNumberGeneratorImplementationImpl.AddMouseEntropy(dx, dy, dz, x, y);
if (!KeyboardManager.KeyAvailable) return;
KeyEvent keyEvent = KeyboardManager.Peek();
RandomNumberGeneratorImplementationImpl.AddKeyboardEntropy((uint)keyEvent.Key, (uint)keyEvent.Modifiers, keyEvent.KeyChar);
}
}