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);
        }
Beispiel #2
0
        /// <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));
        }