2012-05-12 4 views
2

私はプロジェクトでEVP APIを使用して、Openss 0.9.8kを使ってAES256CBCでデータを暗号化/復号化しています。Openssl crypto libにパスワードを安全に入力する機能はありますか?

今、私はfgets(pwd,pwd_len,stdin)を使用してユーザーからのパスワード入力を受けています。

安全なパスワード入力を容易にするopensslで利用できる機能はありますか? ネット上で検索しようとしましたが、何も見つかりませんでした。(openssl文書自体では不十分です)

ドキュメントへのご意見やご指摘は高く評価されます。

のOpenSSLとのような機能がない場合NOTE ::は、誰かが私が書くことができるようにするfgetsを使用して標準入力からの私の現在のアプローチでパスワードを取るに悪用される可能性のあるセキュリティの抜け穴を提案してくださいすることができ、私のこのための独自のカスタム関数。あなたは、パスワードで保護されたファイルを開くには、PEMルーチンを使用する場合

+0

問題は端末プログラミングの1つで、OpenSSLでカバーされていないので、これを[Cコマンドラインパスワード入力]の複製としてマークしています(http://stackoverflow.com/questions/1786532/c-command -line-password-input)と[getpassを使用せずにCでパスワードを取得する](http://stackoverflow.com/questions/1196418/getting-a-password-in-c-without-using-getpass-3)を参照してください。 –

答えて

2

OpenSSLはパスワードの入力を促すメッセージが表示されます

多くの感謝 - それはhttp://www.openssl.org/docs/crypto/pem.htmlで説明しています(「プロンプト」で検索)。これらの関数を使用すると、プロンプトを実行するコールバックルーチンを指定することもできます。デフォルトのコールバックは、ユーザーにプロンプ​​トを表示します。

私が見つけることができないのは、デフォルトのコールバックルーチンのドキュメントです。コード内で狩りをする必要があると思います。パスワードで保護されたファイルを読んでみたければ、上記で十分です。

+0

返事に感謝します。私はそれを調べます。また、EVP APIソースを調べてみると、EVP_set_pw_prompt()EVP_read_pwd_prompt()とEVP_read_pw_string()で定義されている3つの関数が見つかったopenssl/crypto/evpのファイルEVP_key.cにアクセスしましたが、それらのドキュメントを見つけることができませんでした彼らについての何かのアイデア..多くのありがとう – abhi

+0

本当に。私は彼らが似ていると思います(コールバックを設定できるようにする設定)。おそらくread_pwd_stringは必要なものですか?コードを読むのが最善です...(時にはopensslを使うと、ルーチンを呼び出してデバッガでステップ実行する小さなプログラムを書く価値があります - それは異なるポインタの混乱をすべて解決するのに役立ちます)。 –

+0

ohhありがとう。私はそれのためのコードを書くことから始めるだろう。それをgooglingした後、これは私がhttp://www.umich.edu/~x509/ssleay/evp_passwd.htmlに手を置くことができる最も論理的なリンクである – abhi

関連する問題