Golang SQLCipher driver conforming to the built-in database/sql interface and using the latest sqlite3 code.
Go to file
xeodou 78a9457e13 Add wercker. 2015-04-06 23:30:59 +08:00
_example Add example from encrypted database. 2015-04-01 22:48:04 +08:00
sqlite3_test Rename 2014-07-04 10:25:27 +09:00
.gitignore add .gitignore 2014-11-14 17:20:14 +09:00
.travis.yml go cover has moved 2014-11-14 00:23:32 +01:00
LICENSE Add LICENSE file 2014-08-18 16:52:12 +09:00
README.md Fix readme 2015-04-02 11:03:09 +08:00
backup.go Rename sqlite3.{c,h} to sqlite3-binding.{c,h} 2015-03-11 16:19:50 -04:00
doc.go Fix doc 2015-04-02 11:03:51 +08:00
error.go Add one blank line for godoc 2014-08-18 17:00:59 +09:00
error_test.go Add test for ErrNo.Extend() 2015-01-26 18:38:13 +09:00
sqlite3-binding.c Change sqlite to sqlcipher. 2015-04-01 22:26:04 +08:00
sqlite3-binding.h Change sqlite to sqlcipher. 2015-04-01 22:26:04 +08:00
sqlite3.go Add fts3 flags. 2015-04-03 11:52:28 +08:00
sqlite3_fts3_test.go Add FTS3 feature. Close #176 2015-02-24 11:28:02 +09:00
sqlite3_other.go Apply -lpthread withou windows. 2015-03-12 18:43:55 +09:00
sqlite3_test.go Fix go lint 2015-04-05 23:54:16 +08:00
sqlite3_windows.go Apply -lpthread withou windows. 2015-03-12 18:43:55 +09:00
sqlite3ext.h Change sqlite to sqlcipher. 2015-04-01 22:26:04 +08:00
wercker.yml Add wercker. 2015-04-06 23:30:59 +08:00

README.md

go-sqlcipher

SQLCipher driver conforming to the built-in database/sql interface and using the latest sqlite3 code.

which is 3.8.8.3 2015-02-25 13:29:11 9d6c1880fb75660bbabd693175579529785f8a6b

Working with sqlcipher version which is 3.8.6 2014-08-15 11:46:33 9491ba7d738528f168657adb43a198238abde19e

It's wrapper with

  • go-sqlite3 sqlite3 driver for go that using database/sql.
  • SQLCipher SQLCipher is an SQLite extension that provides 256 bit AES encryption of database files.
  • Using openssl as the 256 bit AES encryption.

Have't build test in a windows machine or linux machine Working in my macbook-air

Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.3.0
Thread model: posix

OpenSSL 0.9.8zd 8 Jan 2015
built on: Mar  9 2015
platform: darwin64-x86_64-llvm
options:  bn(64,64) md2(int) rc4(ptr,char) des(idx,cisc,16,int) blowfish(idx)
compiler: -arch x86_64 -fmessage-length=0 -pipe -Wno-trigraphs -fpascal-strings -fasm-blocks -O3 -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DMD32_REG_T=int -DOPENSSL_NO_IDEA -DOPENSSL_PIC -DOPENSSL_THREADS -DZLIB -mmacosx-version-min=10.6
OPENSSLDIR: "/System/Library/OpenSSL"

Installation

This package can be installed with the go get command:

go get github.com/xeodou/go-sqlcipher

Documentation

API documentation can be found here: http://godoc.org/github.com/xeodou/go-sqlcipher

Examples can be found under the ./_example directory

FAQ

The golang code is copy from go-sqlite3 If you have some issue, you can maybe you can find from https://github.com/mattn/go-sqlite3/issues

Here is some help from go-sqlite3 project.

License

MIT:

sqlite3-binding.c, sqlite3-binding.h, sqlite3ext.h

The -binding suffix was added to avoid build failures under gccgo.

In this repository, those files are amalgamation code that copied from SQLCipher. The license of those codes are depend on the license of SQLCipher.

Author

xeodou