Repository

libsecret.v

Minimal implementation of libsecret (Secret Service API) for managing secrets in Vlang. The examples from the C docs are implemented.

Installation

This library uses the libsecret/secret.h C-headers. The following dependencies are required:

  • libsecret-1-0
  • libsecret-1-dev

On Debian-based distro's, these can be installed via:

sudo apt install -y libsecret-1-0 libsecret-1-dev

Note: libsecret expects this to be exected on a GUI-system. If you try to run this on a headless server, you may get an error like Cannot autolaunch D-Bus without X11 $DISPLAY .

v install robinvandernoord.libsecret

Usage

import robinvandernoord.libsecret

// initial setup:
struct Metadata {
    // you can store anything you like here!
    // It will be converted to JSON.

    text string
}

schema := libsecret.get_schema()

// save a password:
schema.store_password("Label Description", "my-password", Metadata {"text string"})

// load password with metadata:
mut metadata := Metadata {} // start with an empty object to fill

password := schema.load_password("Label Description", mut metadata)

println(password or {"missing password"}) // -> "my-password"
println(metadata) // Metadata { text: "text string" }

// remove password:
assert schema.remove_password("Label Description")

Example in Seahorse

About

Minimal implementation of libsecret (Secret Service API) for managing secrets in Vlang.

0
0
last Jan 19

Author

robinvandernoord