Qtの暗号化ライブラリについて
[RapidCopy] MacOSX用高速ベリファイ差分ファイルコピーソフト
RapidCopyの直接販売版の開発で、ちょっとした暗号化を施す必要があったので、調べてみました。
Qtにはハッシュ値を算出するための
QCryptographicHash Class | Qt Core 5.4
が、あります。
しかし、これはハッシュ値を算出するだけなので、暗号<->復号には使えません。
で、Qt上で簡単に暗号化<->復号化するライブラリないのかなあ。
と探してみたわけですが、結論から先に言うとまずはQCAをお試しあれです。
リンクは以下です。
Delta XMPP Project
QCAは単純な暗号化<->復号化だけじゃなく、RSAみたいな公開鍵関係も扱える
LGPLライセンスの総合暗号化ライブラリです。
詳細はリンク先参照ですが、公式ホームページのバイナリが既にやや古くなっているので、
KDE QuickGit :: qca.git/summary
gitからソースを持ってきてコンパイルする方が良いと思います。
僕の目的でもあるBlowfish - Wikipedia暗号にも対応しています。
(#pkcs5パディングには非対応なので、元データは8バイトの倍数にする必要があります)
しかし、僕の環境(OS X 10.10.3)のQt Creatorのデバッグビルド動作では問題ないんですが、
リリースビルドにするとqcaのdeallocateでクラッシュするという悲しい現象が発生(´・ω・`)
色々しらべてみもしたんですが、諦めちゃいました。
OS XでQCA普通に使えてるよーって方、教えてください。。
で。気を取り直して調べなおしたところ、githubで
https://github.com/roop/qblowfish
なるシンプルなクラスを公開している人を発見。
結局これを使いました。
8バイト倍数じゃないデータでも自動でパディングする「#PKCS5」に対応してるのがグッドです。
使い方は至ってシンプルですので、githubのサンプルを見てみてください。
気が向けば、適当なサンプルを書こうかなあと思います。