mirror of
https://github.com/chylex/Minecraft-Phantom-Panel.git
synced 2025-09-06 07:53:11 +02:00
21 lines
758 B
C#
21 lines
758 B
C#
using Phantom.Utils.Rpc.New;
|
|
|
|
namespace Phantom.Common.Data;
|
|
|
|
public readonly record struct ConnectionKey(RpcCertificateThumbprint CertificateThumbprint, AuthToken AuthToken) {
|
|
private const byte TokenLength = AuthToken.Length;
|
|
|
|
public byte[] ToBytes() {
|
|
Span<byte> result = stackalloc byte[TokenLength + CertificateThumbprint.Bytes.Length];
|
|
AuthToken.WriteTo(result[..TokenLength]);
|
|
CertificateThumbprint.Bytes.CopyTo(result[TokenLength..]);
|
|
return result.ToArray();
|
|
}
|
|
|
|
public static ConnectionKey FromBytes(ReadOnlySpan<byte> data) {
|
|
var authToken = new AuthToken([..data[..TokenLength]]);
|
|
var certificateThumbprint = RpcCertificateThumbprint.From(data[TokenLength..]);
|
|
return new ConnectionKey(certificateThumbprint, authToken);
|
|
}
|
|
}
|