private bool VerifyAfterSign(Dictionary <FileName, ZipData> zipDataMap, TextWriter textWriter) { var allGood = true; foreach (var fileName in _batchData.FileNames) { if (fileName.IsAssembly) { using (var stream = File.OpenRead(fileName.FullPath)) { if (!_signTool.VerifySignedAssembly(stream)) { textWriter.WriteLine($"Assembly {fileName} is not signed properly"); allGood = false; } } } else if (fileName.IsZipContainer) { var zipData = zipDataMap[fileName]; using (var package = Package.Open(fileName.FullPath, FileMode.Open, FileAccess.Read)) { foreach (var part in package.GetParts()) { var relativeName = GetPartRelativeFileName(part); var zipPart = zipData.FindNestedBinaryPart(relativeName); if (!zipPart.HasValue || !zipPart.Value.FileName.IsAssembly) { continue; } using (var stream = part.GetStream()) { if (!_signTool.VerifySignedAssembly(stream)) { textWriter.WriteLine($"Zip container {fileName} has part {relativeName} which is not signed."); allGood = false; } } } } } } return(allGood); }
private bool VerifyAssembliesAfterSign() { var allGood = true; foreach (var name in _batchData.AssemblyNames) { using (var stream = File.OpenRead(name.FullPath)) { if (!_signTool.VerifySignedAssembly(stream)) { allGood = false; Console.WriteLine($"Assembly {name.RelativePath} is not signed properly"); } } } return(allGood); }