Skip to content

Parallel implementation of the kpcli utility in Go with Kuznechik, Magma and Streebog algorithms

License

Notifications You must be signed in to change notification settings

pedroalbanese/gostkp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GOST KeePassCLI

ISC License GitHub downloads GoDoc Go Report Card GitHub go.mod Go version GitHub release (latest by date)

This project is a clone of kpcli with a few additional features thrown in. It provides a shell-like interface for navigating a KeePass-like database and manipulating entries.

Features, such as search have been added.

Roll of Algorithms:

  • GOST R 34.11-2012 Стрибог (Streebog) hash function (RFC 6986)
  • GOST R 34.12-2015 128-bit block cipher Кузнечик (Kuznechik) (RFC 7801)
  • GOST R 34.12-2015 64-bit block cipher Магма (Magma)

Usage

Command-line

> ./kp -help
Usage of ./kp:
  -db string
        the db to open
  -key string
        a key file to use to unlock the db
  -n string
        execute a given command and exit
  -version
        print version and exit

Program Shell

/ > help

Commands:
  attach       attach <get|show|delete> <entry> <filesystem location>
  cd           cd <path>
  clear        clear the screen
  edit         edit <entry>
  exit         exit the program
  help         display help
  ls           ls [path]
  mkdir        mkdir <group name>
  mv           mv <source> <destination>
  new          new <path>
  pwd          pwd
  rm           rm <entry>
  save         save
  saveas       saveas <file.kdb>
  search       search <term>
  show         show [-f] <entry>
  version      version
  xk           xk <entry>
  xp           xp <entry>
  xu           xu
  xw           xw
  xx           xx

Running a command with the argument help will display a more detailed usage message

/ > attach help

manages the attachment for a given entry

Commands:
  create       attach create <entry> <name> <filesystem location>
  details      attach details <entry>
  get          attach get <entry> <filesystem location> // ('-' for stdout)

Overview

There are two main components, the shell and the libraries that interact with the database directly. The shell interfaces with the database through those abstractions. The shell works by having individual files for each command which are strung together in main.go.

License

This project is licensed under the ISC License.

Copyright (c) 2020-2022 Pedro F. Albanese - ALBANESE Research Lab.

About

Parallel implementation of the kpcli utility in Go with Kuznechik, Magma and Streebog algorithms

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages