password

package module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Oct 5, 2024 License: BSD-3-Clause Imports: 12 Imported by: 0

README

simple-password-manager

Ever needed to have a simple key-value store with an encryption backend to handle your app passwords?

Look no further! This is a simple password manger (library) written in go. You can use it with go, REST calls and any other language that links with C.

And the best of it all: it's free - BSD licenced - just don't sue me if you loose your passwords (no pun intended, ha!)

Usage

For go:

package main

import (
    "github.com/image357/password"
    "github.com/image357/password/log"
    "github.com/image357/password/rest"
    "log/slog"
)

func main() { 
    // create password with id 
    password.Overwrite("id", "password", "storage_key") 
    // get password with id 
    pwd := password.Get("id", "storage_key")
    
    // start a multi password rest service on port 8080 
    rest.StartMultiService(
        ":8080", "storage_key",
        func(string, string, string, string) bool { return true }
    ) 
    
    // make logging more verbose 
    log.Level(slog.LevelDebug)
}

Storage

Files and folders - it's that simple.

Encryption

Yes, the usual - AES256, hashed secrets, etc. For more info have a look at the source code.

Create MSVC shared library

go build -buildmode=c-shared -o ./cinterface/cinterface.dll ./cinterface/cinterface.go
dumpbin /exports cinterface.dll
# then: manually create cinterface.def with EXPORTS heading
lib /DEF:cinterface.def /MACHINE:x64 /OUT:cinterface.lib

Tested with POSIX-Threads and UCRT for MinGW-w64.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Check

func Check(id string, password string, key string) (bool, error)

Check an existing password for equality with the provided password. key is the encryption secret for storage.

func Clean

func Clean() error

Clean (delete) all stored passwords.

func Delete

func Delete(id string) error

Delete an existing password.

func FilePath

func FilePath(id string) string

FilePath returns the storage filepath of a given password-id with system-specific path separators. It accepts system-unspecific or mixed id separators, i.e. forward- and backward-slashes are treated as the same character.

func Get

func Get(id string, key string) (string, error)

Get an existing password with id. key is the encryption secret for storage.

func GetFileEnding

func GetFileEnding() string

GetFileEnding returns the current file ending of storage files.

func GetStorePath

func GetStorePath() string

GetStorePath returns the current storage path with system-specific path separators.

func List

func List() ([]string, error)

List all stored password-ids.

func NormalizeId

func NormalizeId(path string) string

NormalizeId transforms path to lower case letters and normalizes the path separator

func Overwrite

func Overwrite(id string, password string, key string) error

Overwrite an existing password or create a new one. key is the encryption secret for storage.

func Set

func Set(id string, oldPassword string, newPassword string, key string) error

Set an existing password-id or create a new one. oldPassword must match the currently stored password. key is the encryption secret for storage.

func SetFileEnding

func SetFileEnding(e string)

SetFileEnding accepts a new file ending for storage files.

func SetStorePath

func SetStorePath(path string)

SetStorePath accepts a new storage path with system-unspecific or mixed path separators.

func Unset

func Unset(id string, password string, key string) error

Unset (delete) an existing password. password must match the currently stored password. key is the encryption secret for storage.

Types

This section is empty.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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