OpenSSLにて容量の大きいbinaryファイルを暗号化
OpenSSLで容量の大きいファイルを暗号化したらエラー
OpenSSLコマンドでサイズの大きいファイルを暗号化しようとすると、
何やらエラーがでて暗号化ができませんでした。
// 600Mほどのzipファイルを暗号化しようとしたら
$ openssl rsautl -encrypt -pubin -inkey open_key.pem -in secret.zip -out secret.zip.crypt
RSA operation error
140735108559712:error:0406D06E:rsa routines:RSA_padding_add_PKCS1_type_2:data too large for key size:rsa_pk1.c:151:
容量が大きくなるとデータがでかすぎるとか言われて処理できませんでした。
しばらくググると同じ問題でこうすればいいじゃないと書かれた記事が見つかりました。
http://ashmek.weebly.com/1/post/2011/02/encrypt-large-files-with-a-public-key-via-openssl.html
なにやらSMIMEを使えとのこと。
共通鍵と秘密鍵を生成
$ openssl req -x509 -nodes -newkey rsa:2048 -keyout private_ssl_key.pem -out public_key.pem -subj '/'
暗号化
$ openssl smime -encrypt -aes256 -in secret.zip -binary -outform DEM -out secret.zip.crypt public_key.pem
復号化
$ openssl smime -decrypt -in secret.zip.crypt -binary -inform DEM -inkey private_ssl_key.pem -out decrypt.zip
-
前の記事
OpenSSLにてファイルを暗号化する 2014.02.02
-
次の記事
アセンブラで書かれたWebサーバ 2014.02.04