fix: session B — Go-faithful auth error states, NKey padding, permissions, signal disposal
This commit is contained in:
@@ -169,9 +169,13 @@ public sealed partial class NatsServer
|
||||
{
|
||||
try
|
||||
{
|
||||
var kp = NATS.NKeys.KeyPair.FromPublicKey(nkeyPub.AsSpan());
|
||||
// Sig is base64url-encoded; nonce is raw bytes.
|
||||
var sigBytes = Convert.FromBase64String(sig.Replace('-', '+').Replace('_', '/'));
|
||||
var kp = NATS.NKeys.KeyPair.FromPublicKey(nkeyPub.AsSpan());
|
||||
// Sig is raw URL-safe base64; convert to standard base64 with padding.
|
||||
var padded = sig.Replace('-', '+').Replace('_', '/');
|
||||
var rem = padded.Length % 4;
|
||||
if (rem == 2) padded += "==";
|
||||
else if (rem == 3) padded += "=";
|
||||
var sigBytes = Convert.FromBase64String(padded);
|
||||
var verified = kp.Verify(
|
||||
new ReadOnlyMemory<byte>(nonce),
|
||||
new ReadOnlyMemory<byte>(sigBytes));
|
||||
|
||||
Reference in New Issue
Block a user