Categorygithub.com/rvflash/safe
modulepackage
0.2.3
Repository: https://github.com/rvflash/safe.git
Documentation: pkg.go.dev

# README

Safe

GoDoc Build Status Code Coverage Go Report Card

Safe is a tool to store all yours passwords in a local encrypted storage.

The owner uses a passphrase to sign in (sha256 hash). This passphrase combined with a salt given on the application's launching is used to generate a HMAC hash. This hash will be used to sign all the data with AES encryption. Application GTK3

Installation

Safe uses the Go Modules coming from the 1.11 version of the language and GTK+3 as GUI.

Since the version 0.2.0, Safe is not anymore a web application but a application powered by GTK+3. Thanks to the gotk3's project for the bindings.

See the installation instructions regarding our OS before going to the next step.

Finally, build and launch it:

$ git clone https://github.com/rvflash/safe.git
$ cd safe/cmd/safe
$ GO111MODULE=on go build
$ ./safe -salt="whatever-you-want-as-salt"

Features

  • Local storage using boltDB.
  • Web view based on local version of Bootstrap v4.1.3 (only CSS) and Vue.js v2.5.17.
  • Migrate the Vue.js application to a GTK+3 GUI in order to not use a web browser (avoids HTTP, unsafe extension, etc.).
  • Historic of password's modifications.
  • Notification center with alerts on outdated or low strength password.

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Functions

EmptyVault returns a empty Vault based on the given hash to sign data.
NewLogin returns a new instance of Login and set the last update date.
NewPassPhrase returns a new instance of Passphrase.
NewTag returns a new instance of Tag.
NewVault returns a new instance of Vault for the given data.

# Constants

MaxDuration is the duration before to warn to update a data: 90 days.
MinSize is the minimum number of bytes accepted for a pass.

# Variables

ErrInvalid is returned if the data doesn't respect the minimum requirement.
ErrMissing is returned is the mandatory data is missing.
ErrNotFound is the data doesn't exist.
ErrOutdated is returned if the data is deprecated.
ErrStrength is returned if the password is not safe.
ErrTooShort is returned is the pass phrase is too weak.

# Structs

Login represents the couple of username / password and any other information to sign in.
Passphrase is the phrase used to protect the database.
Tag is a tag.
Vault stores the data (login etc.) to be protected by encryption.

# Interfaces

Data must be implement by any data to store.
Keyer returns the key of the data.
OwnerService must be implemented by any service to manipulate the database owner.
Service must be implements by any data source.
TagService must be implemented by any service to manipulate the tags.
Validator returns in success if the data can be store.
VaultService must be implements by any service to manipulate the Vaults.