Skip to content
This repository has been archived by the owner on Nov 14, 2023. It is now read-only.
/ sks-lib Public archive

TypeScript library for interacting with SKS keyservers

License

Notifications You must be signed in to change notification settings

ntzwrk/sks-lib

Repository files navigation

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.