有没有办法使 PDFSharp 中的安全设置在限制 FIPS 兼容算法的环境中工作?

Is there a way to make the security settings in PDFSharp work in an environment that is restricting to FIPS compliant algorithms?

我将 PDFSharp 与 C# MVC3 应用程序结合使用来生成用于完成调查的 PDF。一切正常,直到我们最近迁移到 Windows Server 2008 环境并启用设置“系统加密:使用 FIPS 兼容算法进行加密、散列和签名”。

有没有人找到在这种环境中继续设置 PDF 安全设置的方​​法? 这是安全设置代码块,如果我删除所有代码,它将起作用:

PdfSecuritySettings securitySettings = pdfDocument.SecuritySettings;
securitySettings.OwnerPassword = "owner";

// Restrict some rights.
securitySettings.PermitAccessibilityExtractContent = false;
securitySettings.PermitAnnotations = false;
securitySettings.PermitAssembleDocument = false;
securitySettings.PermitExtractContent = false;
securitySettings.PermitFormsFill = false;
securitySettings.PermitModifyDocument = false;
securitySettings.PermitPrint = true;
securitySettings.PermitFullQualityPrint = true;

有什么想法吗?我正在考虑下拉 PDFSharp 源并查看是否可以使用不同的算法,因为我认为问题出在 MD5CryptoServiceProvider 上。

在这里查看我的拉取请求:

https://github.com/empira/PDFsharp/pull/115

只需将 MD5CryptoServiceProvider 替换为 SHA1CryptoServiceProvider 即可完全解决我的问题。我用这些更改编译了 dll,它们在 "System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing" 设置为 "Enabled".

的机器上工作得很好

如果他们不合并我的 PR,您也可以从我的 fork 源代码构建它。 https://github.com/jaredglaser/PDFsharp/tree/FIPSCompliant