ektrah/libsodium-core

Signature Verification

Closed this issue · 1 comments

Angular code is able to verify the signature....While .Net Core code is not able to verify the ignature Why?

Angular Code

    const signature = "k5OIxj7kvfoKYXPrZEmTMUELtGyZjMDJCZg98tEapYNijRqtDJJhRIZ7QRGaBhdtL146Nxklva+gyJJjMeEYCg==";
    const signing_string = `(created): 1687173574
(expires): 1687773574
digest: BLAKE-512=69FTz6dbFwnzIvYlIitgEzLnXzuZKhbWLLHW4LfiCs2mbpWeSz5iN2FnbEZFXs3OBdv9pInixn3o8g/Ao3+OwQ==`;
    const public_key = 'Fhjwaka1Za+ld+7Nms7S0C675r24mZoyWVn8JbYTjSs=';

    await _sodium.ready;
    const sodium = _sodium;
    const isSignatureVerified = sodium.crypto_sign_verify_detached(
                                            sodium.from_base64(signature, base64_variants.ORIGINAL),
                                            signing_string,
                                            sodium.from_base64(public_key, base64_variants.ORIGINAL));

    console.log(isSignatureVerified); //This returns true

.Net Core Code

            string Signature = "k5OIxj7kvfoKYXPrZEmTMUELtGyZjMDJCZg98tEapYNijRqtDJJhRIZ7QRGaBhdtL146Nxklva+gyJJjMeEYCg";
            
            string SigningString = @"(created): 1687173574
(expires): 1687773574
digest: BLAKE-512=69FTz6dbFwnzIvYlIitgEzLnXzuZKhbWLLHW4LfiCs2mbpWeSz5iN2FnbEZFXs3OBdv9pInixn3o8g/Ao3+OwQ==";

            string PublicKey = "Fhjwaka1Za+ld+7Nms7S0C675r24mZoyWVn8JbYTjSs=";
            
            bool IsSignatureVerified = PublicKeyAuth.VerifyDetached(Convert.FromBase64String(Signature),
                                                                    Encoding.ASCII.GetBytes(SigningString),
                                                                    Convert.FromBase64String(PublicKey));
            
            Console.WriteLine(IsSignatureVerified); //This prints false

Thank you for reporting this. I've looked into it, but unfortunately, I'm unable to offer a solution at this time.