5 Commits

Author SHA1 Message Date
aa785c77a0 Update README.md
Signed-off-by: Jan Tytgat <jan.tytgat@corelayer.eu>
2025-01-13 17:23:15 +01:00
655d3fb7e6 Rename example directory
Signed-off-by: Jan Tytgat <jan.tytgat@corelayer.eu>
2025-01-13 17:22:17 +01:00
01efabd841 Remove .gitkeep
Signed-off-by: Jan Tytgat <jan.tytgat@corelayer.eu>
2025-01-13 17:22:02 +01:00
68fcee7425 Update README.md
Signed-off-by: Jan Tytgat <jan.tytgat@corelayer.eu>
2025-01-13 17:12:57 +01:00
8e6c4cf2a8 Update example key size to 2048 bits
Signed-off-by: Jan Tytgat <jan.tytgat@corelayer.eu>
2025-01-13 16:58:08 +01:00
3 changed files with 83 additions and 2 deletions

View File

@ -1 +1,82 @@
# go-transcrypt
# go-transcrypt
This library enables the encryption/decryption of arbitrary data into a hex-encoded string for safe on-disk storage.
[![Go Reference](https://pkg.go.dev/badge/github.com/jantytgat/go-transcrypt.svg)](https://pkg.go.dev/github.com/jantytgat/go-transcrypt)
---
## Basics
### Add the package to your project
```bash
go get github.com/jantytgat/go-transcrypt
```
### Import
Next, you can manually add the import statement to your ```.go```-file, or have it added automatically when using it.
```text
import github.com/jantytgat/go-transcrypt
```
### Encryption key
The encryption key is a string provide to encrypt the data with.
A function ```CreateHexKey(bitSize int)``` is available to create a random key based on an RSA Private Key, and returns
it as a hex-encoded string.
```go
var err error
var key string
if key, err = transcrypt.CreateHexKey(2048); err != nil {
panic(err)
}
```
### Salt
A salt is also required for proper encryption.
It is possible to either generate a new salt for every call, by leaving the salt to ```nil``` when calling the ``
Encrypt``` function.
If you want to use a specific salt, you can either provide it manually (at least 12 bytes) or generate one.
```go
var salt []byte
if salt, err = transcrypt.CreateSalt(); err != nil {
panic(err)
}
```
## Operations
Currently, the following data types are supported for encryption:
- string
- int
### Encrypt
```go
var inputString = "hello world"
var encryptedString string
if encryptedString, err = transcrypt.Encrypt(key, salt, transcrypt.AES_256_GCM, inputString); err != nil {
panic(err)
}
```
### Decrypt
```go
var decryptedString any
if decryptedString, err = transcrypt.Decrypt(key, encryptedString); err != nil {
panic(err)
}
```
## Example
An example is available in the [examples](https://github.com/jantytgat/go-transcrypt/tree/main/examples/simple)
directory.

View File

View File

@ -9,7 +9,7 @@ import (
func main() {
var err error
var key string
if key, err = transcrypt.CreateHexKey(12); err != nil {
if key, err = transcrypt.CreateHexKey(2048); err != nil {
panic(err)
}