Abstract
We encrypt our web connections. We encrypt our files. Why the heck don’t we encrypted our database tables? It may sound a bit mad encrypting something we’ll need to be able to search whilst it’s still encrypted but that’s what you’re going to learn in a single session.
This workshop is a fast-paced but carefully curated exploration of subjects which often seem intimidating, starting with an explanation of how to perform cryptography in Go and then applying this knowledge to develop a secure black box storage vault for sensitive data based on a SQLite database. We’ll wrap this vault in a network server and develop a client for accessing it remotely to read and write blocks of data. To finish we’ll give the client the ability to perform searches against the stored data.
The material covered will be supported by tested code examples and draws heavily on three subject areas:
1.hybrid cryptography using AES and RSA ciphers with HMACs for generating message signatures;
2.SQL tables and queries;
3.network transport using TCP/IP or HTTP.
Workshop requirements:
A laptop with Go installed and any version of Go 1.x.
I’m putting all the code examples for the workshop in github for those who want to download it or take a look in advance: http://github.com/feyeleanor/GoParanoia