crypto

package module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 18, 2025 License: MIT Imports: 1 Imported by: 0

README

crypto

Overview

The crypto package provides cryptographic functions and algorithms for Go.

The main module contains interfaces for symmetric encryption.

AesCBC

The aescbc package implements AES encryption in CBC mode. It supports both AES-128 and AES-256 encryption and uses PBKDF2 for key derivation to generate the symmetric key from a password and the hmac key for integrity checks.

It provides methods for encrypting and decrypting data, ensuring that the data is securely handled with proper padding and integrity checks.

There are methods for just encrypting and decrypting data or including additional metadata with the encrypted data.

Usage

To use crypto, import the module in your Go project:

import "github.com/hyprxlabs/go/crypto/aescbc"

func main() {
    cipher := aescbc.New256() // or aescbc.New128() for AES-128

    key := []byte("your-secret-key") // For AES-256

    data := []byte("your-data-to-encrypt")
    encryptedData, err := cipher.Encrypt(key, data)
    if err != nil {
        panic(err)
    }

    decryptedData, err := cipher.Decrypt(key, encryptedData)
    if err != nil {
        panic(err)
    }

    fmt.Println("Decrypted data:", string(decryptedData))
    // Output: Decrypted data: your-data-to-encrypt
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RandBytes

func RandBytes(size int) ([]byte, error)

Types

type SymmetricCipher

type SymmetricCipher interface {
	Encrypt(key []byte, data []byte) (encryptedData []byte, err error)

	EncryptWithMetadata(key []byte, data []byte, metadata []byte) (encryptedData []byte, err error)

	Decrypt(key []byte, encryptedData []byte) (data []byte, err error)

	DecryptWithMetadata(key []byte, encryptedData []byte) (data []byte, metadata []byte, err error)
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL