노드 애플리케이션 내의 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"