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>
        /// Reconstructs a <see cref="GostECDsa"/> object from an XML string.
        /// </summary>
        /// <param name="xmlString">
        /// The XML string to use to reconstruct the <see cref="GostECDsa"/> object.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// The <paramref name="xmlString"/> parameter is <see langword="null"/>.
        /// </exception>
        /// <exception cref="CryptographicException">
        /// The format of the <paramref name="xmlString"/> parameter is not valid.
        /// </exception>
        public sealed override void FromXmlString(string xmlString)
        {
            if (xmlString == null)
            {
                throw new ArgumentNullException(nameof(xmlString));
            }

            var parameters = ECParametersFormatter.FromXml(xmlString, KeySize / 8);

            ImportParameters(parameters);
        }
Beispiel #3
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));
        }