ps/Modules/Alkami.Ops.Certificates/Data/CertificateInfo.cs

38 lines
1.3 KiB
C#
Raw Permalink Normal View History

2023-05-30 22:51:22 -07:00
using System.Collections.Generic;
using System.Security.Cryptography.X509Certificates;
namespace Alkami.Ops.Certificates.Data
{
internal class CertificateInfo
{
public readonly X509Certificate2 Certificate;
public List<CertificateInfo> Children = new List<CertificateInfo>();
public CertificateInfo Parent = null;
public readonly string Name;
public readonly string UniqueName;
public readonly string FileName;
public string Thumbprint => Certificate.Thumbprint;
public List<StoreInfo> Stores = new List<StoreInfo>();
public readonly string Password;
public Dictionary<string, ServerInfo> Servers = new Dictionary<string, ServerInfo>();
public Dictionary<string, EnvironmentInfo> Environments = new Dictionary<string, EnvironmentInfo>();
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();
}
}
}