소켓으로 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"

관련 정보