Cygwin の openssl コマンドを使ってファイルを暗号化する。
こんな感じでやりました。
- 秘密鍵と公開鍵を生成する。
$ openssl req -x509 -nodes -days 100000 -newkey rsa:2048 -keyout private.key -out public.key -subj '/'
- 画像ファイル target.jpg を暗号化したファイル target.jpg.encrypt を生成する。
$ openssl smime -encrypt -aes256 -in target.jpg -binary -outform DEM -out target.jpg.encrypt public.key
target.jpg.encrypt ファイルを画像ビューワで開くと、「画像が壊れている」という期待通りの結果が出たので、ひとまずこれで良しとします。
以下、失敗例:
- rsautl オプションだと、サイズが大きいファイルの暗号化はできないらしい。
$ openssl rsautl -encrypt -pubin -inkey public.key -in target.jpg -out target.jpg.encrypt
RSA operation error
2348672:error:0406D06E:rsa routines:RSA_padding_add_PKCS1_type_2:data too large for key size:rsa_pk1.c:153:
- 秘密鍵・公開鍵を生成する時に -subj オプションを指定していないと、暗号化時に以下の様なエラーが発生する。
$ openssl smime -encrypt -aes256 -in target.jpg -binary -outform DEM -out target.jpg.encrypt public.key
unable to load certificate
2348672:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE
参考記事:
- opensslによるファイルの暗号化
- OpenSSLにて容量の大きいbinaryファイルを暗号化 « Linux « Tech « Laddy in
- opensslねた - holly's wiki
- OpenSSLで自己署名証明書を作成する - ももいろテクノロジー
- けいの開発記録debian【Lenny】 openssl 証明書の作成でハマったこと