public static ECPrivateKey Create(ECCurve curve) { var priv = BigIntegerExt.ModRandom(curve.Order); //todo: check not zero return(new ECPrivateKey(priv, curve)); }
public ECSignature Sign(BigInteger message) { message = Curve.TruncateHash(message); ECSignature signature = null; do { var random = BigIntegerExt.ModRandom(Curve.Order); signature = SignTruncated(message, random); } while (signature == null); return(signature); }