public void WriteAndReadECParameters(ECParameters parameters, int keySize) { parameters.Validate(); var xmlString = ECParametersFormatter.ToXmlString(parameters); Assert.False(string.IsNullOrEmpty(xmlString)); // TODO: fix big integer value validation var settings = new XmlReaderSettings { ConformanceLevel = ConformanceLevel.Document, //ValidationType = ValidationType.Schema, //Schemas = ECDsaXmlSchemaSet, //ValidationFlags = // XmlSchemaValidationFlags.ProcessInlineSchema | // XmlSchemaValidationFlags.ProcessSchemaLocation | // XmlSchemaValidationFlags.ReportValidationWarnings, }; using (var textReader = new StringReader(xmlString)) using (var reader = XmlReader.Create(textReader, settings)) while (reader.Read()) { ; } var newParameters = ECParametersFormatter.FromXml(xmlString, keySize); ECHelper.AssertEqual(parameters, newParameters, false); }
protected void CheckDefaultKeyGeneration() { using (var algorithm = new T()) { ECParameters parameters = algorithm.ExportParameters(true); parameters.Validate(); } }
protected void CheckKeyGeneration(ECCurve curve) { using (var algorithm = new T()) { algorithm.GenerateKey(curve); ECParameters parameters = algorithm.ExportParameters(true); parameters.Validate(); } }
public override void ImportParameters(ECParameters parameters) { ThrowIfDisposed(); parameters.Validate(); KeySize = parameters.Q.X.Length * 8; _curve = parameters.Curve.Clone(); _publicKey = parameters.Q.Clone(); _privateKey = CloneArray(parameters.D); _parametersSet = true; }
protected void WriteAndReadXmlString(ECParameters parameters) { parameters.Validate(); string xmlString; using (var algorithm = Create(parameters)) xmlString = algorithm.ToXmlString(false); Assert.False(string.IsNullOrEmpty(xmlString)); ECParameters newParameters; using (var algorithm = Create(xmlString)) newParameters = algorithm.ExportParameters(false); ECHelper.AssertEqual(parameters, newParameters, false); }