123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Linq;
- using System.Runtime.CompilerServices;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- using System.Windows.Navigation;
- using System.Windows.Shapes;
- using ComPDFKit.Controls.Helper;
- using ComPDFKit.DigitalSign;
- namespace ComPDFKit.Controls.PDFControl
- {
- public partial class CertificateDetailControl : UserControl,INotifyPropertyChanged
- {
- private string version;
- public string Version
- {
- get => version;
- set => UpdateProper(ref version, value);
- }
-
- private string algorithm;
- public string Algorithm
- {
- get => algorithm;
- set => UpdateProper(ref algorithm, value);
- }
-
- private string subject;
- public string Subject
- {
- get => subject;
- set => UpdateProper(ref subject, value);
- }
-
- private string issuer;
- public string Issuer
- {
- get => issuer;
- set => UpdateProper(ref issuer, value);
- }
-
- private string serialNumber;
- public string SerialNumber
- {
- get => serialNumber;
- set => UpdateProper(ref serialNumber, value);
- }
- private string validityFrom;
- public string ValidityFrom
- {
- get => validityFrom;
- set => UpdateProper(ref validityFrom, value);
- }
- private string validityTo;
- public string ValidityTo
- {
- get => validityTo;
- set => UpdateProper(ref validityTo, value);
- }
-
- private string certificatePolicy;
- public string CertificatePolicy
- {
- get => certificatePolicy;
- set => UpdateProper(ref certificatePolicy, value);
- }
-
- private string crlDistributionPoint;
- public string CrlDistributionPoint
- {
- get => crlDistributionPoint;
- set => UpdateProper(ref crlDistributionPoint, value);
- }
-
- private string authorityInfoAccess;
- public string AuthorityInfoAccess
- {
- get => authorityInfoAccess;
- set => UpdateProper(ref authorityInfoAccess, value);
- }
- private string authorityKeyIdentifier;
- public string AuthorityKeyIdentifier
- {
- get => authorityKeyIdentifier;
- set => UpdateProper(ref authorityKeyIdentifier, value);
- }
-
- private string subjectKeyIdentifier;
- public string SubjectKeyIdentifier
- {
- get => subjectKeyIdentifier;
- set => UpdateProper(ref subjectKeyIdentifier, value);
- }
-
- private string basicConstraints;
- public string BasicConstraints
- {
- get => basicConstraints;
- set => UpdateProper(ref basicConstraints, value);
- }
-
- private string keyUsage;
- public string KeyUsage
- {
- get => keyUsage;
- set => UpdateProper(ref keyUsage, value);
- }
-
- private string publicKey;
- public string PublicKey
- {
- get => publicKey;
- set => UpdateProper(ref publicKey, value);
- }
-
- private string x509Data;
- public string X509Data
- {
- get => x509Data;
- set => UpdateProper(ref x509Data, value);
- }
-
- private string sha1Abstract;
- public string SHA1Digest
- {
- get => sha1Abstract;
- set => UpdateProper(ref sha1Abstract, value);
- }
-
- private string md5Digest;
- public string MD5Digest
- {
- get => md5Digest;
- set => UpdateProper(ref md5Digest, value);
- }
- public CertificateDetailControl()
- {
- InitializeComponent();
- DataContext = this;
- }
-
- public void LoadDetailInfo(CPDFSignatureCertificate certificate)
- {
- string certificatePolicyText = string.Empty;
- string crlDistributionPointText = string.Empty;
- string authorityInfoAccessText = string.Empty;
- string keyUsageText = string.Empty;
- var usageList = DictionaryValueConverter.GetUsage(certificate);
- foreach (var policy in certificate.CertificatePolicies)
- {
- certificatePolicyText += policy + "\n";
- }
- foreach (var access in certificate.AuthorityInfoAccess)
- {
- authorityInfoAccess += access + "\n";
- }
- foreach (var crl in certificate.CRLDistributionPoints)
- {
- crlDistributionPointText += crl + "\n";
- }
-
- for(int i = 0; i < usageList.Count; i++)
- {
- keyUsageText += usageList[i];
- keyUsageText += (i == usageList.Count - 1) ? "" : ", ";
- }
-
- Version = certificate.Version.ToString();
- Algorithm = certificate.SignatureAlgorithmType.ToString().Substring(26) + "(" + certificate.SignatureAlgorithmOID + ")";
- Subject = certificate.Subject;
- Issuer = certificate.Issuer;
- SerialNumber = certificate.SerialNumber;
- ValidityFrom = CommonHelper.GetExactDateFromString(certificate.ValidityStarts);
- ValidityTo = CommonHelper.GetExactDateFromString(certificate.ValidityEnds);
- CertificatePolicy = certificatePolicyText;
- CrlDistributionPoint = crlDistributionPointText;
- X509Data = certificate.X509Data;
- AuthorityInfoAccess = authorityInfoAccess;
- AuthorityKeyIdentifier = certificate.AuthorityKeyIdentifier;
- SubjectKeyIdentifier = certificate.SubjectKeyIdentifier;
- BasicConstraints = certificate.BasicConstraints;
- KeyUsage = keyUsageText;
- PublicKey = certificate.PublicKey;
- SHA1Digest = certificate.SHA1Digest;
- MD5Digest = certificate.MD5Digest;
- }
-
- public event PropertyChangedEventHandler PropertyChanged;
- protected void UpdateProper<T>(ref T properValue,
- T newValue,
- [CallerMemberName] string properName = "")
- {
- if (object.Equals(properValue, newValue))
- return;
- properValue = newValue;
- OnPropertyChanged(properName);
- }
- protected void OnPropertyChanged([CallerMemberName] string propertyName = "") =>
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
- }
- }
|