38 lines
1.3 KiB
C#
38 lines
1.3 KiB
C#
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();
|
|
}
|
|
}
|
|
} |