Client implementation for the Go signer
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Jan Dittberner f3c0e1379f Improve robustness and concurrency handling
- Rename client.CertInfo to CACertificateInfo
- declare commands channel inside client.Run, there is no need to inject it
  from the outside
- let command generating code in client.commandLoop run in goroutines to
  allow parallel handling of queued commands and avoid blocking operations
- pass context to command generating functions to allow cancellation
- guard access to c.knownCACertificates by mutex.Lock and mutex.Unlock
- make command channel capacity configurable
- update to latest cacert-gosigner dependency for channel direction support
- improve handling of closed input channel
- reduce client initialization to serial connection setup, move callback and
  handler parameters to client.Run invocation
10 months ago
cmd/signerclient Improve robustness and concurrency handling 10 months ago
internal Improve robustness and concurrency handling 10 months ago
.gitattributes Initial signer client implementation 10 months ago
.gitignore Implement CA certificate information handling 10 months ago
.golangci.yml Initial signer client implementation 10 months ago
.goreleaser.yaml Build system improvements 10 months ago
LICENSE Add Apache License 2.0 text 10 months ago
Makefile Build system improvements 10 months ago
README.md Update documented go version 10 months ago
go.mod Improve robustness and concurrency handling 10 months ago
go.sum Improve robustness and concurrency handling 10 months ago

README.md

CAcert signer client

This is the CAcert signer client implementation that sends commands to the signer and handles certificate revocation lists (CRLs), OpenPGP public key signatures and X.509 certificates.

Development preconditions

You will need GNU make to build the application. On Debian systems you can install GNU make using:

sudo apt install make

Install go >= 1.19, golangci-lint >= 1.50.0 and goreleaser, as these are used for building and linting the application.

Read the documentation of these tools, to find out how to use them.

Building the binary

There is a Makefile to build the signerclient binary. Run

make

to run linting, tests and binary builds.

Running the signer client

The signer client requires a YAML configuration file to know some information about its runtime environment. The default configuration file name is config.yaml in the working directory.

Generating a configuration file

Example configuration data is generated when the client is run with the -generate-config command line argument:

./signerclient -generate-config

Start the client

With config.yaml in the current directory you can start the client:

./signerclient

Supported command line arguments

To get a list of supported command line arguments run:

./signerclient -help