我正在嘗試編寫一個函數,它會使用本機openssl爲我做一些RSA繁重工作,而不是使用js RSA庫。目標是NodeJS執行程序與進程的二進制
- 從文件
- 讀取二進制數據做一些處理在節點過程中,採用JS,導致緩衝器包含二進制數據
- 寫緩衝器給exec的STDIN流命令
- RSA加密/解密數據,並將其寫入stdout流
- 獲取輸入數據返回到在JS-處理的緩衝液用於進一步處理
Node中的child process module有一個exec命令,但我沒有看到如何將輸入傳遞給進程並將其傳回到我的進程。基本上,我想執行以下命令的類型,但不必依靠書面的東西文件寫入一個臨時文件(沒有檢查的OpenSSL的確切語法)
cat the_binary_file.data | openssl -encrypt -inkey key_file.pem -certin > the_output_stream
我能做到這一點,但如果可能的話,我想避免它。產生一個子進程允許我訪問stdin/out,但沒有找到exec的這個功能。
有沒有一個乾淨的方式來做到這一點,我在這裏起草的方式?有沒有其他的方法可以使用openssl,例如openssl lib的一些本地綁定,這將允許我在不依賴命令行的情況下執行此操作?