Lukáš Tinkl cfa6dd9438 performance(sqlcipher): provide optimized versions of sha1_compress
- on ARM, use Neon/ACLE extensions (a 3x-4x perf improvement)
- on x64 use a plain C implementation from nayuki (a 2x-3x perf gain)

Unfortunately, we can't use the dedicated `SHA1` extension on x64 as this
became widely available only recently (esp. on AMD CPUs)
2023-05-16 15:35:09 +03:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2017-09-20 22:46:53 +00:00
2015-04-29 01:56:53 +02:00
2019-02-26 17:54:51 +00:00
2019-02-26 17:54:51 +00:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2019-02-26 17:54:51 +00:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2019-02-27 14:25:55 +00:00
2017-05-08 21:04:03 +00:00
2017-05-08 18:54:00 +00:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00
2015-04-29 01:56:53 +02:00

go-sqlcipher GoDoc Build Status

Description

Self-contained Go sqlite3 driver with an AES-256 encrypted sqlite3 database conforming to the built-in database/sql interface. It is based on:

SQLite itself is part of SQLCipher.

go-sqlcipher currently only supports the SQLCipher 3.x releases.

Installation

This package can be installed with the go get command:

go get github.com/mutecomm/go-sqlcipher

Documentation

To create and open encrypted database files use the following DSN parameters:

key := "2DD29CA851E7B56E4697B0E1F08507293D761A05CE4D1B628663F411A8086D99"
dbname := fmt.Sprintf("db?_pragma_key=x'%s'&_pragma_cipher_page_size=4096", key)
db, _ := sql.Open("sqlite3", dbname)

_pragma_key is the hex encoded 32 byte key (must be 64 characters long). _pragma_cipher_page_size is the page size of the encrypted database (set if you want a different value than the default 1024 bytes).

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

Use the function sqlite3.IsEncrypted() to check whether a database file is encrypted or not.

Examples can be found under the ./_example directory

License

The code of the originating packages is covered by their respective licenses. See LICENSE file for details.

S
Description
Self-contained Go sqlite3 driver with an AES-256 encrypted sqlite3 database
Readme Multiple Licenses
4.2 MiB
Languages
C 96.5%
Go 3.2%
C++ 0.3%