ソケットによる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"

関連情報