using System.Collections.Generic; using System.Security.Cryptography.X509Certificates; namespace Alkami.Ops.Certificates.Data { internal class CertificateInfo { public readonly X509Certificate2 Certificate; public List Children = new List(); public CertificateInfo Parent = null; public readonly string Name; public readonly string UniqueName; public readonly string FileName; public string Thumbprint => Certificate.Thumbprint; public List Stores = new List(); public readonly string Password; public Dictionary Servers = new Dictionary(); public Dictionary Environments = new Dictionary(); public CertificateInfo(X509Certificate2 certificate, string filename, string password = null) { this.Certificate = certificate; this.FileName = filename; this.Password = password; Name = certificate.GetNameInfo(X509NameType.SimpleName, false); UniqueName = string.IsNullOrWhiteSpace(Name) ? (certificate.Thumbprint) : ($"{Name}-{certificate.Thumbprint}"); UniqueName = UniqueName.Trim(); } } }