问题标签 [origami]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
456 浏览

ruby - 使用 Adob​​e PKCS#7 证书在 Origami 中签名的 PDF 验证

总结和澄清:

使用折纸,从签名的 pdf 中提取证书(在例如 Adob​​e Reader 中签名)我无法验证签名:

据我所知,这应该始终是正确的。那么,也许 Adob​​e 在签署 PDF 时使用了不同的字节范围,它需要一个 SHA?我如何让该验证工作?

如果有任何帮助,在对折纸大师进行更改后,我能够从 storecontext 中获得确切的 OpenSSL 错误:V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY - 我认为这意味着它来自 X509::Store 它设置。


完整背景

我正在尝试验证 PDF 的数字签名。这是我所拥有的:

我使用 Adob​​e Acrobat 签名的 PDF(尝试了 Pro 10 和 Reader DC)

密钥是在 Acrobat Pro 中生成的,我可以访问 .p12,或者导出为 FDF、PKCS#7 或只是“证书文件”。还尝试通过 Apple 的“钥匙串访问”加载此“证书文件”并将其导出为 .pem 这给出的结果与OpenSSL::PKCS7.new(File.read('/path/to/exported.p7c')).certificates.first.to_pem给出的结果相同:

所以,我很确定我已经正确提取了证书。

此外,我可以验证 PDF 中嵌入了完全相同的证书 -

使用 Origami gem,我尝试加载证书并尝试验证:

Origami 的输出确认文档已签名,但该verify(..)方法返回 false。

请注意,通过这个优秀答案中的代码工作正常,但它似乎只有在您使用 openssl 生成 X.509 密钥对时才有效(例如,根据该代码的 ruby​​-land 绑定)。不幸的是,我需要使用用户机器上预先存在的 Adob​​e 祝福签名。

也就是说,除此之外,我几乎没有什么限制;我可以要求用户以对我们有用的任何其他方式导出他们的证书(如果需要,我什至可以在他们的机器上运行一些简单的代码),但我不能在过程中传输私钥。我不必使用 Origami 进行验证,但它必须是可从 ubuntu 服务器上的 ruby​​ 访问的命令。用户都在使用最新软件的 Mac 上运行。

0 投票
1 回答
62 浏览

ruby-on-rails - Ruby gem 折纸签名签名失败

我正在尝试使用 origami gem 制作带有签名的 PDF 文件,请按照此示例https://github.com/gdelugre/origami/blob/master/examples/signature/signature.rb

现在我只是运行这个 signature.rb 并得到了错误

[error] Breaking on: ">>\nendobj\n..." at offset 0x1f6f3

[error] Last exception: [Origami::InvalidObjectError] Failed to parse object (no:43,gen:0) -> [ArgumentError] wrong number of arguments (given 1, expected 0; required keyword: year)

我不知道继续前进:'<

我还在https://github.com/gdelugre/origami/blob/master/lib/origami/signature.rb找到了 gem 的 sign 方法,看看,我找不到任何具体的事情要做: '<

这个例子可能已经过时了吗?

0 投票
0 回答
24 浏览

windows - Windows 10 上的 Origami Ver 4.5.1-0 到 4.5.1-7,编译时无法加载库库 opencv_java451 异常

跟随入门https://cljdoc.org/d/origami/origami/4.1.2-7/doc/readme#getting-started

安装示例

更改目录

运行模板简单示例

加载:opencv_java451

线程“主”java.lang.ExceptionInInitializerError 中的异常, clojure.lang.Compiler.load(Compiler.java:7526) 的 clojure.lang.RT.loadResourceScript(RT .java:379) 在 clojure.lang.RT.loadResourceScript(RT.java:370) 在 clojure.lang.RT.load(RT.java:460) 在 clojure.lang.RT.load(RT.java:426)在 clojure.core$load$fn__6548.invoke(core.clj:6046).... ......在 clojure.lang.Var.applyTo(Var.java:702) 在 clojure.main.main(main. java:37) 引起:java.lang.Class.forName0(Native Method) 的 java.lang.Class.forName(Class.java:348) 的 java.lang.ExceptionInInitializerError ... ... clojure.lang .Compiler.eval(Compiler.java:7062) 在 clojure.lang.Compiler.eval(Compiler.java:7051) 在 clojure.lang.Compiler.load(Compiler.java:7514) ... 40 更多

原因:java.lang.RuntimeException: java.io.IOException: 无法在 opencv4.core__init 的 opencv4.core__init.load(Unknown Source) 的 origami.Origami.init(Origami.java:121) 加载库库 opencv_java451。 (来源不明)... 71 更多

引起:java.io.IOException:无法在 origami.Origami.init(Origami.java:117) 的 org.scijava.nativelib.NativeLoader.loadLibrary(NativeLoader.java:141) 加载库库 opencv_java451 ... 73更多的

引起:java.lang.UnsatisfiedLinkError: no opencv_java451 in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) at java.lang.Runtime.loadLibrary0(Runtime.java:870) at java。 org.scijava.nativelib.NativeLoader.loadLibrary(NativeLoader.java:136) 上的 lang.System.loadLibrary(System.java:1122) ... 还有 74 个

从 4.5.1-0 到 4.5.1-7 遇到同样的问题。

请问有什么建议吗?