database

package
v1.6.18 Latest Latest
Warning

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

Go to latest
Published: Aug 10, 2024 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package database is a key-value database with integrated password encryption functions.

DATABASE INIT FORMAT

Ak, Ck <- KDF(S, P)
S || R || H[Ak](R)
where
	H  - hmac
	S  - salt value
	R  - random value
	P  - password
	Ak - auth-key
	Ck - cipher-key

DATABASE SET FORMAT

{H[Ak](K) : (H[Ak](EV) || EV)}
where
	EV = E[Ck](V)
	where
		E  - encrypt
		H  - hmac
		K  - database key
		V  - database value
		Ak - auth-key
		Ck - cipher-key

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrOpenDB               = &SDatabaseError{"open database"}
	ErrGetSalt              = &SDatabaseError{"get salt value"}
	ErrReadSalt             = &SDatabaseError{"read salt value"}
	ErrReadRand             = &SDatabaseError{"read rand"}
	ErrGetHashRand          = &SDatabaseError{"get hash rand"}
	ErrReadHashRand         = &SDatabaseError{"read hash rand"}
	ErrPushSalt             = &SDatabaseError{"push salt value"}
	ErrPushRand             = &SDatabaseError{"push rand value"}
	ErrPushHashRand         = &SDatabaseError{"push hash rand"}
	ErrInvalidHash          = &SDatabaseError{"invalid hash"}
	ErrSetValueDB           = &SDatabaseError{"set value to database"}
	ErrGetValueDB           = &SDatabaseError{"get value from database"}
	ErrDelValueDB           = &SDatabaseError{"del value from database"}
	ErrNotFound             = &SDatabaseError{"value not found"}
	ErrCloseDB              = &SDatabaseError{"close database"}
	ErrInvalidEncryptedSize = &SDatabaseError{"invalid encrypted size"}
	ErrInvalidDataHash      = &SDatabaseError{"invalid data hash"}
)

Functions

This section is empty.

Types

type IKVDatabase added in v1.5.10

type IKVDatabase interface {
	types.ICloser
	GetSettings() ISettings

	Set([]byte, []byte) error
	Get([]byte) ([]byte, error)
	Del([]byte) error
}

func NewKVDatabase added in v1.5.23

func NewKVDatabase(pSett ISettings) (IKVDatabase, error)

type ISettings

type ISettings interface {
	GetPath() string
	GetWorkSize() uint64
	GetPassword() string
}

func NewSettings

func NewSettings(pSett *SSettings) ISettings

type SDatabaseError added in v1.6.18

type SDatabaseError struct {
	// contains filtered or unexported fields
}

func (*SDatabaseError) Error added in v1.6.18

func (err *SDatabaseError) Error() string

type SSettings

type SSettings sSettings

Jump to

Keyboard shortcuts

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