public void MakeNewClientCertificate(CreateCertificateModel model)
        {
            X509Certificate2 caCertificate  = default(X509Certificate2);
            X509Certificate2 newCertificate = _sensorsClient.GetSignedClientCertificate(model, out caCertificate);

            CertificatesProcessor.AddCertificateToTrustedRootCA(caCertificate);
            //var convertedCertWithKey = CertificatesProcessor.AddPrivateKey(newCertificate, subjectKeyPair);
            ConfigProvider.Instance.UpdateClientCertificate(newCertificate, model.CommonName);
            _sensorsClient.ReplaceClientCertificate(newCertificate);
            StartTreeThread();
            OnDefaultCertificateReplacedEvent();
        }
        public static CertificateData Convert(CreateCertificateModel model)
        {
            CertificateData data = new CertificateData
            {
                CommonName           = model.CommonName,
                OrganizationName     = model.OrganizationName,
                StateOrProvinceName  = model.StateOrProvinceName,
                LocalityName         = model.LocalityName,
                OrganizationUnitName = model.OrganizationUnitName,
                EmailAddress         = model.EmailAddress,
                CountryName          = model.CountryName
            };

            return(data);
        }
Esempio n. 3
0
        public override X509Certificate2 GetSignedClientCertificate(CreateCertificateModel model,
                                                                    out X509Certificate2 caCertificate)
        {
            CertificateData data                  = Converter.Convert(model);
            string          subjectString         = CertificatesProcessor.GetSubjectString(data);
            var             rsa                   = RSA.Create(2048);
            CertificateSignRequestMessage request = new CertificateSignRequestMessage();

            request.Subject       = subjectString;
            request.RSAParameters = Converter.Convert(rsa.ExportParameters(true));
            request.CommonName    = model.CommonName;
            //var certificateRequest = CertificatesProcessor.CreateCertificateSignRequest(data, out subjectKeyPair);
            var signedCertificateMessage = _sensorsClient.SignClientCertificate(request);

            caCertificate = new X509Certificate2(signedCertificateMessage.CaCertificateBytes.ToByteArray(), "",
                                                 X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet);
            X509Certificate2 winCertificate = new X509Certificate2(signedCertificateMessage.SignedCertificateBytes.ToByteArray(), "",
                                                                   X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet);

            return(winCertificate);
        }
 public abstract X509Certificate2 GetSignedClientCertificate(CreateCertificateModel model,
                                                             out X509Certificate2 caCertificate);