Announcing Go-TinyTime, Go-TinyDate’s Sister Package

tinyclock

time.Time is the perfect choice for most cases, it even comes in the standard library! The problem is that the time.Time{} struct uses more than 24 bytes of memory under most conditions. Go-TinyTime solves this problem by restricting the available dates to the range between 1970 – 2106, and only supporting UTC timezones. This brings … Read more

How To Separate Library Packages in Go

photo 1550535424 b498819c412f

I’ve often seen, and have been responsible for, throwing code into packages without much thought. I’ve quickly drawn a line in the sand and started putting code into different folders (which in Go are different packages by definition) just for the sake of findability. Learning to properly build small and reusable packages can take your … Read more

Wrapping Errors in Go – How to Handle Nested Errors

photo 1495863367063 b9ac3e6394f7

Errors in Go are a hot topic. Many newcomers to the language immediately level their first criticism, “errors in go are clunky! Let me just use try/catch!” This criticism is well-meaning but misguided. The paradigm of errors as a type, rather than something to be thrown and cause panics, allows for more control of how … Read more

How To Build JWT’s in Go (Golang)

logo 400

Go is becoming very popular for backend web development, and JWT’s are one of the most popular ways to handle authentication on API requests. In this article we go over the basics of JWT’s and how to implement a secure authentication strategy in Go! In fact, our Qvault app uses almost this exact same strategy … Read more

How Do Brute-Force Attackers Know They Found The Key?

armstrong 1

Brute force attackers guess passwords, passphrases, and private keys in an attempt to eventually get the right answer and crack the security of a system. They systematically guess every combination. For example, if they were guessing telephone numbers in the US: The question is, how do they know when they have the right key? It … Read more

AES-256 Cipher – Python Cryptography Examples

photo 1507680225127 6450260913c0

Need to encrypt some text with a password or private key in Python? AES-256 is a solid symmetric cipher that is commonly used to encrypt data for oneself. In other words, the same person who is encrypting the data is typically decrypting it as well (think password manager). Dependencies For this tutorial, we will be … Read more

Will Banning Cryptography Keep the Country Safe?

key in palm of hand

Politicians in the United States have been claiming recently that end-to-end encryption is certainly too dangerous to permit. This movement is serious. Congress even introduced a bill that would remove the protections that we currently have that allow us to legally encrypt information. Lindsey Graham is one such proponent of this restrictive legislation: Senator Lindsey … Read more

Is Open-Source Cryptography Really Secure?

photo 1497285597995 6ed7de6bfebd

The purpose of cryptography is to keep information private, and the purpose of open-source is to make code public… So we shouldn’t open source our cryptography algorithms right? I’ve been asked this several times by multiple people so I figured it is a subject worth addressing. Many developers seem to be under the impression that … Read more