public override SignatureVerificationSummary Verify( Timestamp timestamp, SignatureVerifySettings settings, HashAlgorithmName fingerprintAlgorithm, X509Certificate2Collection certificateExtraStore) { var issues = new List <SignatureLog>(); settings = settings ?? SignatureVerifySettings.Default; issues.Add(SignatureLog.MinimalLog(Environment.NewLine + string.Format(CultureInfo.CurrentCulture, Strings.SignatureType, Type.ToString()))); issues.Add(SignatureLog.InformationLog(string.Format(CultureInfo.CurrentCulture, Strings.NuGetV3ServiceIndexUrl, V3ServiceIndexUrl.ToString()))); if (PackageOwners != null) { issues.Add(SignatureLog.InformationLog(string.Format(CultureInfo.CurrentCulture, Strings.NuGetPackageOwners, string.Join(", ", PackageOwners)))); } var summary = base.Verify(timestamp, settings, fingerprintAlgorithm, certificateExtraStore); return(new SignatureVerificationSummary( summary.SignatureType, summary.Status, summary.Flags, summary.Timestamp, summary.ExpirationTime, issues.Concat(summary.Issues))); }
/// <summary> /// Converts a X509Certificate2 to a collection of log messages for various verbosity levels - /// Subject Name: CN=name /// SHA1 hash: hash /// Issued by: CN=issuer /// Valid from: issue date time to expiry date time in local time /// </summary> /// <param name="cert">X509Certificate2 to be converted to string.</param> /// <param name="fingerprintAlgorithm">Algorithm used to calculate certificate fingerprint</param> /// <returns>string representation of the X509Certificate2.</returns> internal static IReadOnlyList <SignatureLog> X509Certificate2ToLogMessages(X509Certificate2 cert, HashAlgorithmName fingerprintAlgorithm, string indentation = " ") { var certificateFingerprint = GetHashString(cert, fingerprintAlgorithm); var issues = new List <SignatureLog>(); issues.Add(SignatureLog.MinimalLog($"{indentation}{string.Format(CultureInfo.CurrentCulture, Strings.CertUtilityCertificateSubjectName, cert.Subject)}")); issues.Add(SignatureLog.InformationLog($"{indentation}{string.Format(CultureInfo.CurrentCulture, Strings.CertUtilityCertificateHashSha1, cert.Thumbprint)}")); issues.Add(SignatureLog.MinimalLog($"{indentation}{string.Format(CultureInfo.CurrentCulture, Strings.CertUtilityCertificateHash, fingerprintAlgorithm.ToString(), certificateFingerprint)}")); issues.Add(SignatureLog.InformationLog($"{indentation}{string.Format(CultureInfo.CurrentCulture, Strings.CertUtilityCertificateIssuer, cert.IssuerName.Name)}")); issues.Add(SignatureLog.MinimalLog($"{indentation}{string.Format(CultureInfo.CurrentCulture, Strings.CertUtilityCertificateValidity, cert.NotBefore, cert.NotAfter)}")); return(issues); }