public SchnorrSignature(byte[] bytes)
        {
            if (bytes == null)
            {
                throw new ArgumentNullException(nameof(bytes));
            }
            if (bytes.Length != 64)
            {
                throw new ArgumentException(paramName: nameof(bytes), message: "Invalid schnorr signature length.");
            }
#if HAS_SPAN
            if (!Secp256k1.SecpSchnorrSignature.TryCreate(bytes, out var s))
            {
                throw new ArgumentException(paramName: nameof(bytes), message: "Invalid schnorr signature.");
            }
            secpShnorr = s;
#else
            R = new BigInteger(1, bytes, 0, 32);
            S = new BigInteger(1, bytes, 32, 32);
#endif
        }
 internal SchnorrSignature(Secp256k1.SecpSchnorrSignature secpShnorr)
 {
     this.secpShnorr = secpShnorr;
 }