Exemple #1
0
        public static BindingResult Bind(string assemblyPath, string ipAddressString, string portString,
                                         CertificateThumbprintBindingParams bindingParams, bool unsafeBinding = false)
        {
            Logger.LogDebug("Binder", "Bind with existing cert started");
            var basicParams = ParseBaseParams(assemblyPath, ipAddressString, portString);

            if (basicParams.Status != ParseBaseParamsStatus.Ok)
            {
                return new BindingResult
                       {
                           Status = BindingStatus.InvalidParams,
                           Reason = EnumHelper.DisplayName(basicParams.Status)
                       }
            }
            ;

            X509Certificate2 certificate;
            var certificateLookupResult = CertificateController.FindByThumbprint(bindingParams.Thumbprint, out certificate);

            if (certificateLookupResult != FindCertificateStatus.Found)
            {
                return new BindingResult
                       {
                           Status = BindingStatus.SslCertificateNotFound
                       }
            }
            ;

            return(Bind(basicParams.AssemblyGuid, basicParams.IpAddress, basicParams.Port, certificate, unsafeBinding));
        }
Exemple #2
0
        public static BindingResult Bind(string assemblyPath, string ipAddressString, string portString,
                                         CertificateFileBindingParams bindingParams, bool unsafeBinding = false)
        {
            Logger.LogDebug("Binder", "Bind with cert file started");
            var basicParams = ParseBaseParams(assemblyPath, ipAddressString, portString);

            if (basicParams.Status != ParseBaseParamsStatus.Ok)
            {
                return new BindingResult
                       {
                           Status = BindingStatus.InvalidParams,
                           Reason = EnumHelper.DisplayName(basicParams.Status)
                       }
            }
            ;

            X509Certificate2 certificate;
            var openCertResult = CertificateController.TryInstallFromFile(bindingParams.Filepath, bindingParams.Password,
                                                                          out certificate);

            if (openCertResult != OpenCertificateStatus.Ok)
            {
                return new BindingResult
                       {
                           Status = BindingStatus.SslCertFromFileError,
                           Reason = EnumHelper.DisplayName(openCertResult)
                       }
            }
            ;

            return(Bind(basicParams.AssemblyGuid, basicParams.IpAddress, basicParams.Port, certificate, unsafeBinding));
        }
Exemple #3
0
 public static IEnumerable <CertificateView> GetCertificateList() => CertificateController.GetCertificates();
Exemple #4
0
        public static BindingResult Bind(string assemblyPath,
                                         string ipAddressString,
                                         string portString,
                                         CertificateSubjectnameParams bindingParams,
                                         bool unsafeBinding = false)
        {
            Logger.LogDebug("Binder", "Bind with generation started");
            var basicParams = ParseBaseParams(assemblyPath, ipAddressString, portString);

            if (basicParams.Status != ParseBaseParamsStatus.Ok)
            {
                return new BindingResult
                       {
                           Status = BindingStatus.InvalidParams,
                           Reason = EnumHelper.DisplayName(basicParams.Status)
                       }
            }
            ;

            var subjectName = bindingParams.SubjectName.ToLower();

            if (!subjectName.ValidateSubjectname())
            {
                Logger.LogEntry("Binder", LogLevel.Error, $"SubjectName {subjectName} is not valid");

                return(new BindingResult
                {
                    Status = BindingStatus.InvalidSubjectnameFormat
                });
            }

            X509Certificate2 certificate;
            var certificateLookupResult = CertificateController.TryFindBySubjectName(subjectName, out certificate);

            switch (certificateLookupResult)
            {
            case FindCertificateStatus.Found:
                break;

            case FindCertificateStatus.NotFound:
                if (!bindingParams.AllowGenerated)
                {
                    return(new BindingResult
                    {
                        Status = BindingStatus.SslCertificateNotFound
                    });
                }

                if (!CertificateController.TryGenerateCertificate(subjectName, out certificate))
                {
                    return new BindingResult
                           {
                               Status = BindingStatus.SslCertificateGenerationFailed
                           }
                }
                ;
                break;

            case FindCertificateStatus.Error:
                return(new BindingResult
                {
                    Status = BindingStatus.UnknownError
                });

            default:
                throw new ArgumentOutOfRangeException();
            }

            return(Bind(basicParams.AssemblyGuid, basicParams.IpAddress, basicParams.Port, certificate, unsafeBinding));
        }