Commit graph

22 commits

Author SHA1 Message Date
ce1d2b0b77 Fix validity parsing for profiles 2024-01-14 20:36:28 +01:00
af1ed40bab Fix golangci-lint warnings 2024-01-14 13:48:46 +01:00
bcdb792897 Fix signer behaviour for broken CRLs 2024-01-12 19:27:00 +01:00
2a800ecaf7 Update to Go 1.21
- bump go module version to 1.21
- replace deprecated CRL APIs
- update dependencies
2023-09-17 09:37:43 +02:00
f92bba5496 Define command and response for SignOpenPGP 2022-12-11 14:01:48 +01:00
c452453c31 Define command and response for RevokeCertificate 2022-12-11 14:00:47 +01:00
ad6b987c91 Implement sign certificate command
- decouple config and messages
- cainfo maps from config.Profile to messages.CAProfile
- config parses profile usage
- validity can be configured per certificate profile, defaults are defined in
  a defaultValidity method of the profile usage
- the client simulator emits certificate signing requests at random intervals
- add implementation of SingCertificateCommand to MsgPackHandler
- remove indirection signing.RequestSignature
2022-12-11 13:32:05 +01:00
9c17a6730f Fix storing of zero value revocation timestamp 2022-12-11 13:20:16 +01:00
7852c4d3df Add explicit channel direction information
This commit adds explicit input and output channel type information to
make the channel's intent visible to developers.
2022-12-04 13:47:51 +01:00
cd01f07007 Fix grammar 2022-12-03 13:15:58 +01:00
afe7d23c9b Implement CA information command
This commit defines command codes for planned commands and response codes for
their corresponding responses.

The health response from the HSM access component has been reduced to avoid
unnecessary data transmissions.

A new CA information command has been implemented. This command can be used
to retrieve the CA certificate and profile information for a given CA name.

The client simulator has been updated to retrieve CA information for all
CAs when the list of CAs changes.
2022-12-02 18:31:59 +01:00
1374fe58e8 Implement graceful shutdown on interrupt or SIGTERM 2022-12-02 12:54:07 +01:00
37d3b1e021 Update dependencies
This commit updates all external dependencies. The cobs module has a
changed API and code using cobs has been adapted to this new API.
2022-12-02 09:09:52 +01:00
19436c06c2 Implement unit tests for public packages
This commit adds a comprehensive unit test suite for all public packages.
2022-12-01 21:36:10 +01:00
51afebf2c1 Test and refactor messages
- add unit tests for all handwritten code in messages package
- use uuid.NewString() instead of uuid.NewUUID() to avoid unnecessary error
  handling
- sort code in messages.go to put type related code close to each other
- move checkFailed from hsm.Access.Healthy method to messages.CertificateInfoFailed
- add typing for Status field of messages.CertificateInfo
2022-12-01 11:34:07 +01:00
de7e716a82 Improve signer setup code
- allow multiple attempts to setup certificates
- use CAB forum BR compliant CRLDistributionPoint for Subordinate CA
  certificates by referencing their own CRL instead of their parent CA's CRL
- store certificates in DER encoded form
2022-11-30 20:12:26 +01:00
65c5bac2d9 Implement delta CRL support
This commit provides real CRL support with persistent storage of CRLs as well
as support for delta CRLs using github.com/balacode/go-delta
2022-11-30 18:47:18 +01:00
1031ee3118 Implement configuration support for CA profiles 2022-11-30 18:42:40 +01:00
af40662c7d Refactor client protocol
- define protocols.ClientHandler interface as base for client implementations
- implement protocols.ClientHandler in clientsim's ClientHandler type
- move protocol state handling into protocols.ServerProtocol and
  protocols.ClientProtocol
- move protocolState type into protocols.go
- reduce clientsim's TestCommandGenerator responsibility to test command
  generation
2022-11-29 14:05:10 +01:00
f429d3da45 Refactor server handler
- rename protocols.Handler to ServerHandler
- rename ServerHandler methods to better express their purpose
- pass command and response as parameters
- simplify state machine and handle errors in serial/seriallink.go
- implement command read timeout
- remove currentCommand and currentResponse fields from MsgPackHandler
2022-11-29 11:45:59 +01:00
e5dcf7afa9 Refactor COBS wire protocol
Wire protocol handling has been moved to protocol.Framer and its
implementation protocol.COBSFramer
2022-11-29 09:57:23 +01:00
faaadbe5aa Move internal code to internal packages 2022-11-28 17:39:48 +01:00