2016-10-13 9 views
1

スマートカードの秘密鍵を使用してファイルに署名します。 これらのコマンドを使用して:スクリプトを使用してOpensslでエンジンをロードし、ファイルに署名するために使用します。

openssl 
engine -t dynamic -pre SO_PATH:/usr/lib/engines/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib/opensc-pkcs11.so 
dgst -engine pkcs11 -sign slot_0-id_1 -keyform engine -sha256 -out signature.bin textToSign.txt 
quit 

それは端末で完全に動作します。 これらのコマンドを使用してファイルに署名する小さなスクリプトを書いてみたいと思います。 それは次のようになります。

#/bin/bash 
openssl engine -t dynamic -pre SO_PATH:/usr/lib/engines/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib/opensc-pkcs11.so 
openssl dgst -engine pkcs11 -sign slot_0-id_1 -keyform engine -sha256 -out signature.bin textToSign.txt 

問題があり、エンジンはDGSTでの使用のために存在しないこと - コマンド。 スクリプトでopenssl-sessionを起動し、これらの2つのコマンドを実行できますか?

答えて

2

あなたのスクリプトで「ヒアドキュメント」bashの機能<<を使用することができます。

#/bin/bash 
openssl << EOT 
engine -t dynamic -pre SO_PATH:/usr/lib/engines/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib/opensc-pkcs11.so 
dgst -engine pkcs11 -sign slot_0-id_1 -keyform engine -sha256 -out signature.bin textToSign.txt 
quit 
EOT 
関連する問題