Exemple #1
0
        public void DataTest()
        {
            CertificateStorage storage = new CertificateStorage();

              CACertificate root = new CACertificate(null, "Root");
              root.CreateSelfSignature();
              storage.AddRoot(root.OnlyPublicPart);

              var rootCrl = new RevocationList(root.Id, DateTime.Now, DateTime.Now.AddDays(1), new Guid[] { });
              var signedRootCrl = new Signed<RevocationList>(rootCrl, root);
              storage.AddRevocationList(signedRootCrl);

              CACertificate intermediate = new CACertificate(null, "Intermediate");
              intermediate.CreateSelfSignature();
              intermediate.AddSignature(root, DateTime.Now.AddDays(1));
              storage.Add(intermediate.OnlyPublicPart);

              var intermediateCrl = new RevocationList(intermediate.Id, DateTime.Now, DateTime.Now.AddDays(1), new Guid[] { });
              var signedIntermediateCrl = new Signed<RevocationList>(intermediateCrl, intermediate);
              storage.AddRevocationList(signedIntermediateCrl);

              AdminCertificate test = new AdminCertificate(Language.English, null, "Test");
              test.CreateSelfSignature();
              test.AddSignature(intermediate, DateTime.Now.AddDays(1));

              byte[] data = test.ToBinary();
              data[data.Length - 3]++;
              AdminCertificate other = Serializable.FromBinary<AdminCertificate>(data);
              Assert.AreEqual(CertificateValidationResult.SelfsignatureInvalid, other.Validate(storage));
        }