public (RecoveryId, byte[]) Serialize_compact(Secp256K1 secp)
        {
            var ret   = new byte[64];
            var recid = 0;

            var err = Proxy.secp256k1_ecdsa_recoverable_signature_serialize_compact(secp.Ctx, ret, ref recid, Value);

            if (err == 1)
            {
                return(RecoveryId.from_i32(recid), ret);
            }

            throw new Exception("This should never happen!");
        }
        public static RecoverableSigniture From_compact(Secp256K1 secp, byte[] data, RecoveryId recid)
        {
            if (data.Length != 64)
            {
                throw new Exception("InvalidSignature");
            }

            var ret = new byte[65];

            if (Proxy.secp256k1_ecdsa_recoverable_signature_parse_compact(secp.Ctx, ret, data, recid.Value) == 1)
            {
                return(new RecoverableSigniture(ret));
            }
            throw new Exception("InvalidSignature");
        }
Beispiel #3
0
        public RecoveryId Clone()
        {
            var rcid = new RecoveryId(Value);

            return(rcid);
        }