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); }
/// <summary> /// Creates and returns an XML string representation of the current /// <see cref="GostECDsa"/> object. /// </summary> /// <param name="includePrivateParameters"> /// <see langword="true"/> to include private parameters; otherwise, <see langword="false"/>. /// </param> /// <returns> /// An XML string encoding of the current <see cref="GostECDsa"/> object. /// </returns> public sealed override string ToXmlString(bool includePrivateParameters) { var parameters = ExportParameters(includePrivateParameters); return(ECParametersFormatter.ToXmlString(parameters)); }