Go based reimplementation of CAcert's signer and signer client components.
Go to file
Jan Dittberner 42d1e6e991 Refactor client into separate files
Add a main loop, move I/O code into io.go, move configuration into config.go.
Use shared.Decode24BitLength instead of manually decoding block lengths.
Fix response block decoding and checksum validation.
Add constants for commonly used byte values and use these in the signer and
the client.
2020-04-17 19:39:01 +02:00
client Refactor client into separate files 2020-04-17 19:39:01 +02:00
datastructures Refactor client into separate files 2020-04-17 19:39:01 +02:00
shared Refactor client into separate files 2020-04-17 19:39:01 +02:00
signer Refactor client into separate files 2020-04-17 19:39:01 +02:00
.gitignore Move to go modules 2020-04-17 19:38:32 +02:00
go.mod Move to go modules 2020-04-17 19:38:32 +02:00
go.sum Move to go modules 2020-04-17 19:38:32 +02:00
README.md Implement first client command 2020-04-17 19:38:54 +02:00

CAcert signer in Go

This is a reimplementation of the CAcert signer code from the CommModule directory of the CAcert software in Go. The goal of this effort is to provide a more maintainable version of the software.

Running the signer and client locally

The signer is usually attached to a USB serial port. You can run the signer and client locally using the socat utility.

socat -d -d PTY,link=$(pwd)/ttyS0 PTY,link=$(pwd)/ttyS1

You may then run the server

go run signer/main.go -a $(pwd)/dev/ttyS0

and the client:

go run client/main.go -a $(pwd)/dev/ttyS1