Openssl 输出到套接字

Openssl 输出到套接字

我想从节点应用程序内的 S/MIME 文件中提取签名者。我使用(child_process.spawn(),它运行这个命令

 openssl smime -verify -CAfile c_root.pem -inform DER -signer /proc/self/fd/1

它不起作用,因为输入和输出是套接字(而不是管道)。如果输出是管道,则相同的命令有效。

标准错误:

Verification successful                                                                                                                                       
Error writing signers to /proc/self/fd/1
40C71EA94D7F0000:error:80000006:system library:BIO_new_file:No such device or address:crypto/bio/bss_file.c:67:calling fopen(/proc/self/fd/1, w)
40C71EA94D7F0000:error:10000080:BIO routines:BIO_new_file:no such file:crypto/bio/bss_file.c:75:

如果没有临时文件,如何执行此操作?

答案1

解决方法是包装/bin/sh并通过管道传输到cat.

sh -c "openssl smime -verify -CAfile c_root.pem -inform DER -signer /proc/self/fd/1 | cat"

相关内容