static String getEntryNameFromIssuer(X509CRL2 crl) { X500RdnAttributeCollection tokens = crl.IssuerName.GetRdnAttributes(); String objectName; // if subject is empty, calculate SHA1 hash over subject name's raw data (48, 0) if (tokens.Count == 0) { var sb = new StringBuilder(); using (SHA1 hasher = SHA1.Create()) { foreach (Byte b in hasher.ComputeHash(crl.IssuerName.RawData)) { sb.AppendFormat("{0:x2}", b); } } objectName = sb.ToString(); } else { objectName = tokens[0].Value; } var caVersion = (X509CAVersionExtension)crl.Extensions[X509CertExtensions.X509CAVersion]; if (caVersion == null || caVersion.CAKeyVersion < 1) { return(objectName); } return(DsUtils.GetSanitizedName($"{objectName}({caVersion.CAKeyVersion})")); }
internal String GetConfigEntry(String entry) { switch (entry) { case "CAServerName": return(ComputerName); case "ServerShortName": return(ComputerName.Split('.')[0]); case "CommonName": return(Name); case "CATruncatedName": return(DsUtils.GetSanitizedName(Name)); case "ConfigurationContainer": return((String)CryptoRegistry.GetRReg("DSConfigDN", Name, ComputerName)); default: return(String.Empty); } }
// generates DS object name from X.500 name. If name is empty, an SHA-1 hash value of empty name is used. static String generateContainerName(X500DistinguishedName name) { X500RdnAttributeCollection tokens = name.GetRdnAttributes(); // if subject is empty, calculate SHA1 hash over subject name's raw data (48, 0) if (tokens.Count == 0) { var sb = new StringBuilder(); using (SHA1 hasher = SHA1.Create()) { foreach (Byte b in hasher.ComputeHash(name.RawData)) { sb.AppendFormat("{0:x2}", b); } } return(sb.ToString()); } return(DsUtils.GetSanitizedName(tokens[0].Value)); }
internal String GetConfigEntry(String entry) { switch (entry) { case "CAServerName": return(ComputerName); case "ServerShortName": return(ComputerName.Split('.')[0]); case "CommonName": return(Name); case "CATruncatedName": return(DsUtils.GetSanitizedName(Name)); case "ConfigurationContainer": _regReader.SetRootNode(true); return(_regReader.GetStringEntry("DSConfigDN")); default: return(String.Empty); } }