Fix Base64 parse
This commit is contained in:
@@ -33,10 +33,10 @@ namespace Akari.Prototype.Server.Services
|
||||
_keys = new ConcurrentDictionary<string, TimedEntry<AesGcm>>();
|
||||
}
|
||||
|
||||
public void Auth(string name, string token)
|
||||
public void Auth(string name, byte[] token)
|
||||
{
|
||||
// Derive key and store it
|
||||
using var key = Security.Argon2idDeriveBytes(token, name, AuthKeysLength, clear: true);
|
||||
using var key = Security.Argon2idDeriveBytes(token, Encoding.UTF8.GetBytes(name), AuthKeysLength, clear: true);
|
||||
|
||||
SetKey(name, new AesGcm(key.Buffer));
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ namespace Akari.Prototype.Server.Services
|
||||
return GetEnumerator();
|
||||
}
|
||||
|
||||
public void VerifyFingerprint(string name, string token)
|
||||
public void VerifyFingerprint(string name, byte[] token)
|
||||
{
|
||||
_logger.LogDebug($"Verifying hash for {name}");
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ namespace Akari.Prototype.Server.Services
|
||||
{
|
||||
IEnumerable<KeyValuePair<string, TimedEntry<AesGcm>>> Pairs { get; }
|
||||
|
||||
void Auth(string name, string token);
|
||||
void Auth(string name, byte[] token);
|
||||
|
||||
bool Remove(string name);
|
||||
}
|
||||
|
||||
@@ -13,6 +13,6 @@ namespace Akari.Prototype.Server.Services
|
||||
bool Remove(string name);
|
||||
void Set(string name, string hash);
|
||||
|
||||
void VerifyFingerprint(string name, string token);
|
||||
void VerifyFingerprint(string name, byte[] token);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
@@ -135,7 +136,11 @@ namespace Akari.Prototype.Server.Services
|
||||
return;
|
||||
}
|
||||
|
||||
_fingerprintManager.VerifyFingerprint(text[..splitIndex], text[(splitIndex + 1)..]);
|
||||
var handle = GCHandle.Alloc(text, GCHandleType.Pinned);
|
||||
|
||||
_fingerprintManager.VerifyFingerprint(text[..splitIndex], Convert.FromBase64String(text[(splitIndex + 1)..]));
|
||||
|
||||
handle.Free();
|
||||
}
|
||||
|
||||
public override void Dispose()
|
||||
|
||||
Reference in New Issue
Block a user