Skip to content

Server options

Options of server.New and server.NewCAServer. The package documentation describes each in full.

Identity and credentials

Option Default Effect
WithSigner None Key, certificate and chain that sign responses. Err reports a key that does not match
WithUnprotectedErrorsBeforeAuthentication Off Leaves errors raised before authentication unprotected, so a slow signer does not sign them
WithExtraCerts None Certificates added to extraCerts of every response
WithSender Subject of the signer certificate Server name in response headers. A request for another recipient is refused
WithSecretLookup None Finds shared secrets. Without it MAC-protected messages are refused
WithCertificateLookup None Finds sender certificates. Without it signed messages are refused
WithRAAuthorizer None Accepts nested messages from registration authorities
WithMACIterationLimits 100 to 1000000 Accepted MAC iteration counts, for PBMAC1 multiplied by the PRF blocks of the key length
WithSHA1Signatures Off Accepts SHA-1 signatures in protection and proof of possession

Confirmation and waiting

Option Default Effect
WithConfirmWaitTime 10 seconds How long an issued certificate or a challenge waits for its answer
WithImplicitConfirm Off Grants implicit confirmation to clients that ask for it
WithWaitingLifetime 24 hours How long a waiting request stays after its last poll
WithWaitingExpirer The CA, if it implements WaitingExpirer Hears about waiting requests that CleanupExpired removes

Proof of possession

Option Default Effect
WithEncryptedCertificatePOP Off Accepts the encrypted certificate method
WithChallengeResponsePOP Off Accepts the challenge-response method
WithEnvelopedDataForVersion2 Off Sends EnvelopedData instead of EncryptedValue to CMP version 2 RSA requests
WithSignatureProtectionPOP Off Accepts a request without proof whose protection was signed with the requested key
WithPoposkInputVariants Off Accepts the signature proof the Insta Certifier 10 cmpclient sends

Central key generation

Option Default Effect
WithCentralKeyGeneration Off Generates the key pair for requests without a public key and signs the private key with a key generation authority
WithCentralKeyGenerationAESKeyWrap Off Encrypts the key for a MAC-protected request with the AES key wrap instead of the RFC 3211 key wrap that OpenSSL reads
WithCentralKeyGenerationAsymmetricKeyPackage Off Signs the key as an RFC 9810 AsymmetricKeyPackage instead of the id-data that OpenSSL reads

Request rules

Option Default Effect
WithStrictProfileValidation Off Enforces the RFC 9483 message construction rules and overrides the relaxing options
WithMessageTimeTolerance Off Refuses a messageTime further than the tolerance with badTime
WithOptionalCertConfRecipNonce Off Accepts certConf without recipNonce
WithOptionalPollReqRecipNonce Off Accepts pollReq without recipNonce
WithOptionalSubject Off Accepts a template without the subject field when it requests a subjectAltName
WithAnyCertReqID Off Accepts an ir, cr or kur with a certReqId other than 0 and repeats it in the response
WithRawSubject Off Passes the requested subject unchanged in template.RawSubject
WithOptionalRevocationReason Off Accepts a revocation request without reasonCode
WithOptionalRevocationIssuer Off Accepts a revocation request without an issuer
WithMACRevocation Off Passes MAC-protected revocation requests to RevocationAuthorizer

Limits

Setting Default Effect
WithMaxTransactions 10000 Concurrent transactions in the server
WithMaxTransactionsPerCredential 100 Concurrent transactions per client credential
MaxRequestBodySize 1 MiB Largest accepted request body, a package variable