Esempio n. 1
0
        public X509Certificate2 GetCertificateOfType(CertificateTypeEnum certificateType)
        {
            if (takeCertificatesFromLocalMachineStore)
            {
                var myStoreLocation       = StoreLocation.LocalMachine;
                var certificateThumbprint = string.Empty;

                certificateThumbprint = _applicationConfiguration.GetAppCertThumbprintByType(certificateType);

                if (string.IsNullOrEmpty(certificateThumbprint))
                {
                    throw new NoNullAllowedException(nameof(certificateThumbprint));
                }

                _errorLog.LogInfo(
                    this,
                    string.Format(ReceivedApplicationThumbprintFromProviderDebugMessage,
                                  certificateThumbprint)
                    );

                return(_certificateProvider.GetValidCertificateFromStoreByThumbprint(
                           myStoreLocation,
                           certificateThumbprint
                           ));
            }

            return(_embeddedResourceCertificateProvider.GetValidCertificateFromEmbeddedResource());
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="ApiCoinSelectionCertificates" /> class.
 /// </summary>
 /// <param name="certificateType">certificateType (required).</param>
 /// <param name="pool">A unique identifier for the pool..</param>
 /// <param name="rewardAccountPath">rewardAccountPath (required).</param>
 public ApiCoinSelectionCertificates(CertificateTypeEnum certificateType = default(CertificateTypeEnum), string pool = default(string), List <string> rewardAccountPath = default(List <string>))
 {
     // to ensure "certificateType" is required (not null)
     if (certificateType == null)
     {
         throw new InvalidDataException("certificateType is a required property for ApiCoinSelectionCertificates and cannot be null");
     }
     else
     {
         this.CertificateType = certificateType;
     }
     // to ensure "rewardAccountPath" is required (not null)
     if (rewardAccountPath == null)
     {
         throw new InvalidDataException("rewardAccountPath is a required property for ApiCoinSelectionCertificates and cannot be null");
     }
     else
     {
         this.RewardAccountPath = rewardAccountPath;
     }
     this.Pool = pool;
 }
        public CertificateValidationReponse Validate(X509Certificate2 certificate, CertificateTypeEnum application)
        {
            if (certificate == null)
            {
                throw new ArgumentNullException(nameof(certificate));
            }

            var returnValue = new CertificateValidationReponse
            {
                Success = false
            };

            var willExpireOn = Convert.ToDateTime(certificate.GetExpirationDateString());
            var daysLeftUntilCertificateExpires = (willExpireOn - DateTime.Today).Days;
            var certificateExpiryMessage        = string.Empty;

            certificateExpiryMessage = string.Format("Expiry", willExpireOn);

            if (daysLeftUntilCertificateExpires < 60)
            {
                _errorLog.LogWarning(this, certificateExpiryMessage);

                // TODO: mail goes to multiple people in for each or something...
                if (_applicationConfiguration.ShouldSendEmailWhenCertificateExpiryDateValidationFails())
                {
                    _emailSender.SendMailToAdminsAsync(AdminEmail.Bruno, "Pending certificate expiry",
                                                       certificateExpiryMessage);
                }
            }

            if (daysLeftUntilCertificateExpires < 40)
            {
                _errorLog.LogFatal(this, certificateExpiryMessage);
            }

            return(returnValue);
        }
        private void LogExtraInformation(
            string nameOfResourceFile,
            X509Certificate2 certificate,
            string certificatePassword,
            CertificateTypeEnum certificateType
            )
        {
            switch (certificateType)
            {
            case CertificateTypeEnum.Application:

                break;

            case CertificateTypeEnum.Validation:

                break;

            case CertificateTypeEnum.TestApplication:

                break;

            case CertificateTypeEnum.TestValidation:

                break;
            }

            _errorLog.LogInfo(
                this,
                string.Format(
                    "APP_CERT_FOUND_MATCHING_CERT_BY_EMBEDDED_RESOURCE_NAME",
                    certificateType,
                    nameOfResourceFile,
                    certificate?.SubjectName,
                    certificate?.GetExpirationDateString()
                    )
                );
        }
 private CertificateValidationReponse VerifyCertificateExpirationDate(X509Certificate2 certificate,
                                                                      CertificateTypeEnum application)
 {
     return(_certificateExpirationValidator.Validate(certificate, application));
 }
Esempio n. 6
0
 public string GetAppCertThumbprintByType(CertificateTypeEnum certificateType)
 {
     throw new NotImplementedException();
 }