sks-lib

A JavaScript/TypeScript library to interact with SKS keyservers

Usage no npm install needed!

<script type="module">
  import sksLib from 'https://cdn.skypack.dev/sks-lib';
</script>

README

sks-lib

npm package npm license code documentation

develop Travis Build Status for develop Dependency Status for develop
master Travis Build Status for master Dependency Status for master

sks-lib is a Typescript library for interacting with SKS keyservers. Currently there's support for looking up keys, uploading keys and retrieving statistics of a keyserver.

Please note that keyservers never return verified data. Do not trust the retrieved keys and always verify them.

Installation

Just add it with yarn install sks-lib (or npm install sks-lib) to your project. It ships the generated Javascript code along with Typescript's declaration files. The Typescript code itself lives in lib/.

Usage

// Create a new keyserver object to query on
var keyserver = new Keyserver('keyserver.ntzwrk.org');

var somePublicKey: string;

// Lookup the key for "vsund" and then print it
keyserver.lookup('vsund').then(
    (key) => {
        somePublicKey = key;
        console.log(key);
    }
);

// Upload the previously fetched key and print the server's response
keyserver.upload(publicKey).then(
    (response) => {
        console.log(response);
    }
);

// Get stats and then print some information
keyserver.getStats().then(
    (stats) => {
        console.log('"%s" is a %s keyserver on version %s.', stats.hostName, stats.software, stats.version);
    }
);

See examples/ for some more examples.

Documentation

Code documentation lives in docs/code/, the generated HTML version is available at https://ntzwrk.github.io/sks-lib/code/.

Development

Run tests

$ yarn test

Generate documentation

$ yarn document

License

This code is published under the GNU General Public License v3.0.