Add support for CertPoll
messages and PENDING
responses
#22
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Name of feature:
Add support for the parsing of
CertPoll
messages, and the issuing ofPENDING
responses.Pain or issue this feature alleviates:
According to the SCEP protocol spec, if a request requires manual verification the SCEP server should issue a
PENDING
response while this verification takes place. The client should then periodically sendCertPoll
messages to check on the status of its original request, until it receives either aSUCCESS
or aFAILURE
result.Currently, the library does not provide means to create
PENDING
responses, and rejectsCertPoll
messages with a not-yet-implemented error. This essentially limits its use to scenarios where synchronous request verification and certificate issuing is possible, which is not always the case.Is there documentation on how to use this feature? If so, where?
No, but I'm happy to write some up if you can point me towards the best place to do it. The usage is essentially the same as the existing
SUCCESS
andFAILURE
responses however.In what environments or workflows is this feature supported?
This has been tested to work with the original micromdm/scep client*, and with a macOS device issued with a SCEP profile. However, this should work in any environment that can utilise
CertPoll
messages and/orPENDING
responses.*(The original client (unlike macOS) doesn't actually respond to
PENDING
messages with aCertPoll
as per the spec, instead opting to resend an identicalPKCSReq
.)If you've got any comments/concerns please let me know - thanks!