/** * return a X9ECParameters object representing the passed in named * curve. * * @param oid the object id of the curve requested * @return an X9ECParameters object or null if the curve is not available. */ public static X9ECParameters GetByOid(DerObjectIdentifier oid) { X9ECParameters ecP = X962NamedCurves.GetByOid(oid); if (ecP == null) { ecP = SecNamedCurves.GetByOid(oid); } // NOTE: All the NIST curves are currently from SEC, so no point in redundant OID lookup if (ecP == null) { ecP = TeleTrusTNamedCurves.GetByOid(oid); } if (ecP == null) { ecP = AnssiNamedCurves.GetByOid(oid); } if (ecP == null) { ecP = FromDomainParameters(ECGost3410NamedCurves.GetByOid(oid)); } if (ecP == null) { ecP = GMNamedCurves.GetByOid(oid); } return(ecP); }
/// <summary> /// Generate key pair. /// </summary> /// <returns></returns> public override AsymmetricCipherKeyPair GenerateKeyPair() { X9ECParameters parameters2 = GMNamedCurves.GetByOid(GMObjectIdentifiers.sm2p256v1); ECDomainParameters parameters3 = new ECDomainParameters(parameters2); KeyGenerationParameters parameters = new ECKeyGenerationParameters(parameters3, Common.ThreadSecureRandom.Value); IAsymmetricCipherKeyPairGenerator generator = new ECKeyPairGenerator(); generator.Init(parameters); return(generator.GenerateKeyPair()); }