Exemplo n.º 1
0
        private void HandleSignatureResponseUpdate()
        {
            this.run = true;
              Status.VotingClient.GetSignatureResponse(Status.Certificate.Id, GetSignatureResponseComplete);

              while (this.run)
              {
            Status.UpdateProgress();
            Thread.Sleep(1);
              }

              if (this.exception == null)
              {
            switch (this.responseStatus)
            {
              case SignatureResponseStatus.Accepted:
            if (this.response.Verify(Status.CertificateStorage) &&
                this.response.Value.Status == this.responseStatus)
            {
              Status.Certificate.AddSignature(response.Value.Signature);
              Status.Certificate.Save(Status.CertificateFileName);
              Status.SetMessage(Resources.CheckCertificateResponseAccept, MessageType.Success);
              this.continueTo = ContinueTo.NextScreen;
            }
            else
            {
              Status.SetMessage(Resources.CheckCertificateResponseInvalid, MessageType.Error);
              this.continueTo = ContinueTo.NoWhere;
            }
            break;
              case SignatureResponseStatus.Declined:
            if (this.response.Verify(Status.CertificateStorage) &&
                this.response.Value.Status == this.responseStatus)
            {
              Status.SetMessage(Resources.CheckCertificateResponseDeclined + this.response.Value.Reason, MessageType.Info);
              RemoveCertificate();
              this.continueTo = ContinueTo.NoWhere;
            }
            else
            {
              Status.SetMessage(Resources.CheckCertificateResponseInvalid, MessageType.Error);
              this.continueTo = ContinueTo.NoWhere;
            }
            break;
              case SignatureResponseStatus.Pending:
            Status.SetMessage(Resources.CheckCertificatePending, MessageType.Info);
            this.continueTo = ContinueTo.NoWhere;
            break;
              default:
            Status.SetMessage(Resources.CheckCertificateNeedRequest, MessageType.Info);
            this.continueTo = ContinueTo.CreateCertificate;
            break;
            }
              }
              else
              {
            Status.SetMessage(this.exception.Message, MessageType.Error);
            this.continueTo = ContinueTo.NoWhere;
              }

              OnUpdateWizard();
        }
Exemplo n.º 2
0
        public CheckCertificateItem()
        {
            InitializeComponent();

              this.continueTo = ContinueTo.Undetermined;
        }
Exemplo n.º 3
0
        private void CheckValidityOfVoter()
        {
            CertificateValidationResult result = Status.Certificate.Validate(Status.CertificateStorage);

              switch (result)
              {
            case CertificateValidationResult.Valid:
              Status.SetMessage(Resources.CheckCertificateReady, MessageType.Info);
              this.continueTo = ContinueTo.NextScreen;
              break;
            case CertificateValidationResult.Outdated:
              Status.SetMessage(Resources.CheckCertificateOutdated + " " + Resources.CheckCertificateRemove, MessageType.Error);
              RemoveCertificate();
              this.continueTo = ContinueTo.CreateCertificate;
              break;
            case CertificateValidationResult.NotYetValid:
              Status.SetMessage(string.Format(Resources.CheckCertificateNotYetValid, Status.Certificate.ExpectedValidFrom(Status.CertificateStorage)), MessageType.Error);
              this.continueTo = ContinueTo.NoWhere;
              break;
            case CertificateValidationResult.Revoked:
              Status.SetMessage(Resources.CheckCertificateRevoked, MessageType.Error);
              RemoveCertificate();
              this.continueTo = ContinueTo.CreateCertificate;
              break;
            case CertificateValidationResult.CrlMissing:
              Status.SetMessage(Resources.CheckCertificateCrlMissing, MessageType.Error);
              this.continueTo = ContinueTo.NoWhere;
              break;
            case CertificateValidationResult.SignerInvalid:
              Status.SetMessage(Resources.CheckCertificateSignerInvalid, MessageType.Error);
              this.continueTo = ContinueTo.NoWhere;
              break;
            case CertificateValidationResult.UnknownSigner:
              Status.SetMessage(Resources.CheckCertificateUnknownSigner, MessageType.Error);
              this.continueTo = ContinueTo.NoWhere;
              break;
            case CertificateValidationResult.SelfsignatureInvalid:
              Status.SetMessage(Resources.CheckCertificateSelfsignatureInvalid + " " + Resources.CheckCertificateRemove, MessageType.Error);
              RemoveCertificate();
              this.continueTo = ContinueTo.NoWhere;
              break;
            case CertificateValidationResult.SignatureDataInvalid:
              Status.SetMessage(Resources.CheckCertificateSignatureDataInvalid + " " + Resources.CheckCertificateRemove, MessageType.Error);
              RemoveCertificate();
              this.continueTo = ContinueTo.NoWhere;
              break;
            case CertificateValidationResult.NoSignature:
              HandleSignatureResponseUpdate();
              break;
            default:
              throw new InvalidOperationException("Unknown certificate validation result");
              }
        }