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);
        }
Пример #2
0
 protected void CheckDefaultKeyGeneration()
 {
     using (var algorithm = new T())
     {
         ECParameters parameters = algorithm.ExportParameters(true);
         parameters.Validate();
     }
 }
Пример #3
0
 protected void CheckKeyGeneration(ECCurve curve)
 {
     using (var algorithm = new T())
     {
         algorithm.GenerateKey(curve);
         ECParameters parameters = algorithm.ExportParameters(true);
         parameters.Validate();
     }
 }
Пример #4
0
        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;
        }
Пример #5
0
        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);
        }