public bool VerifyAllowingOnlyLowS(byte[] hash, EthECDSASignature sig)
 {
   if (!sig.IsLowS) return false;
   return _ecKey.Verify(hash, sig.ECDSASignature);
 }
 public bool Verify(byte[] hash, EthECDSASignature sig)
 {
   return _ecKey.Verify(hash, sig.ECDSASignature);
 }
 public static EthECKey RecoverFromSignature(EthECDSASignature signature, int recId, byte[] hash)
 {
   return new EthECKey(ECKey.RecoverFromSignature(recId, signature.ECDSASignature, hash, false));
 }
 public static EthECKey RecoverFromSignature(EthECDSASignature signature, byte[] hash, BigInteger chainId)
 {
   return new EthECKey(ECKey.RecoverFromSignature(GetRecIdFromVChain(signature.V, chainId),
       signature.ECDSASignature, hash, false));
 }
 public static EthECKey RecoverFromSignature(EthECDSASignature signature, byte[] hash)
 {
   return new EthECKey(ECKey.RecoverFromSignature(GetRecIdFromV(signature.V), signature.ECDSASignature, hash,
       false));
 }