private static X9ECParameters GenerateEllipticCurve(ECGOST3410EllipticCurve ellipticCurve) { switch (ellipticCurve) { case ECGOST3410EllipticCurve.GostR3410x2001CryptoProA: return(ECGost3410NamedCurves.GetByOidX9(CryptoProObjectIdentifiers.GostR3410x2001CryptoProA)); case ECGOST3410EllipticCurve.GostR3410x2001CryptoProB: return(ECGost3410NamedCurves.GetByOidX9(CryptoProObjectIdentifiers.GostR3410x2001CryptoProB)); case ECGOST3410EllipticCurve.GostR3410x2001CryptoProC: return(ECGost3410NamedCurves.GetByOidX9(CryptoProObjectIdentifiers.GostR3410x2001CryptoProC)); case ECGOST3410EllipticCurve.GostR3410x2001CryptoProXchA: return(ECGost3410NamedCurves.GetByOidX9(CryptoProObjectIdentifiers.GostR3410x2001CryptoProXchA)); case ECGOST3410EllipticCurve.GostR3410x2001CryptoProXchB: return(ECGost3410NamedCurves.GetByOidX9(CryptoProObjectIdentifiers.GostR3410x2001CryptoProXchB)); default: throw new System.Security.Cryptography.CryptographicException("Unsupported elliptic curve."); } }
/// <summary> /// ECGOST3410. /// <para/>Uses EllipticCurve.GostR3410x2001CryptoProA by default. /// </summary> /// <param name="ellipticCurve">Elliptic curve.</param> public ECGOST3410(ECGOST3410EllipticCurve ellipticCurve) : base("ECGOST3410") { _ellipticCurve = ellipticCurve; }