技術メモ

技術的なメモを載せていきます。

macOS Sierra(10.12.5) + xcode8.3.3 で sqlcipherをコンパイル

f:id:unkillonline:20170714205034p:plain

xcode5.xの頃から使っていたsqlcipher(sqliteの暗号化組み込み実装)を 最新の環境でも仕込んでみます。

officialには情報が乏しいですが、swift3にも組み込めます。

まずは macOSにsqlcipher(コマンドライン)をコンパイルしてみます。

ここの手順でほぼ問題ないですが少しだけ手を入れないとコケます。 tomolog.net

■ 手順

1. sqlcipherをclone(git)
2. コンパイル

 

■ 詳細

1. sqlcipherをclone(git)

ここはさくっと

mkdir work_cipher
cd work_cipher
git clone https://github.com/sqlcipher/sqlcipher.git
2. コンパイル

ここが結構キモで、従来はopensslを落としてきてコンパイルして cryptライブラリを 用意して・・・等々割りと手間でしたが今は一切不要です。

cd sqlcipher
./configure --enable-load-extension --enable-tempstore=yes --with-crypto-lib=commoncrypto CFLAGS="-DSQLITE_HAS_CODEC " LDFLAGS="-framework CoreFoundation -framework security"
make

これで、多少のwarningはでるもののコンパイルされてsqlcipher(コマンド)が生成されます。 ./sqlcipher [db filename] して PRAGMA Key=“暗号化キー"として作業すれば、 暗号化された sqlite の databaseができます。

次回はこれをアプリに組み込んでみたいとおもいます。