initial commit

This commit is contained in:
i2p
2026-08-27 10:55:23 -06:00
commit d03dc0bce1
356 changed files with 18535 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
using System;
using System.Runtime.InteropServices;
namespace Intelix.Helper.Encrypted;
public static class DpApi
{
private static NativeMethods.CryptprotectPromptstruct Prompt = new NativeMethods.CryptprotectPromptstruct
{
cbSize = Marshal.SizeOf(typeof(NativeMethods.CryptprotectPromptstruct)),
dwPromptFlags = 0,
hwndApp = IntPtr.Zero,
szPrompt = null
};
public static byte[] Decrypt(byte[] bCipher)
{
NativeMethods.DataBlob pDataIn = default(NativeMethods.DataBlob);
NativeMethods.DataBlob pDataOut = default(NativeMethods.DataBlob);
NativeMethods.DataBlob pOptionalEntropy = default(NativeMethods.DataBlob);
string ppszDataDescr = string.Empty;
GCHandle gCHandle = GCHandle.Alloc(bCipher, GCHandleType.Pinned);
pDataIn.cbData = bCipher.Length;
pDataIn.pbData = gCHandle.AddrOfPinnedObject();
try
{
if (!NativeMethods.CryptUnprotectData(ref pDataIn, ref ppszDataDescr, ref pOptionalEntropy, IntPtr.Zero, ref Prompt, 0, ref pDataOut) || pDataOut.cbData == 0)
{
return null;
}
byte[] array = new byte[pDataOut.cbData];
Marshal.Copy(pDataOut.pbData, array, 0, pDataOut.cbData);
return array;
}
finally
{
gCHandle.Free();
if (pDataOut.pbData != IntPtr.Zero)
{
Marshal.FreeHGlobal(pDataOut.pbData);
}
if (pOptionalEntropy.pbData != IntPtr.Zero)
{
Marshal.FreeHGlobal(pOptionalEntropy.pbData);
}
}
}
}