Commit bd2cc177 authored by Vincent Pelletier's avatar Vincent Pelletier

doc: Rename actors to match caucase terminology

libssl is the exception, as the idea here is that it is a foreign piece of
software which makes the call.
parent ecd07d22
@startuml @startuml
title Automated Certificate Authority Service title Automated Certificate Authority Service
actor service
actor User actor user
actor Trusted actor libssl
actor Service
autonumber autonumber
== Signing Request Submission == == Signing Request Submission ==
User -> Authority : PUT /csr with the CSR as body service -> caucased : PUT /csr with the CSR as body
alt CSR passes format check alt CSR passes format check
Authority --> User : Request identifier caucased --> service : Request identifier
else CSR format invalid else CSR format invalid
Authority --> User : Error caucased --> service : Error
end end
Note over User : See "Certificate Retrieval" Note over service : See "Certificate Retrieval"
== Certificate Production == == Certificate Production ==
Note over Trusted : See "Signing Request Submission" Note over user : See "Signing Request Submission"
Trusted -> Authority : GET /csr user -> caucased : GET /csr
Authority --> Trusted : List of pending signing requests with their identifiers caucased --> user : List of pending signing requests with their identifiers
Trusted -> Authority : GET /csr/<request identifier> user -> caucased : GET /csr/<request identifier>
Authority --> Trusted : CSR caucased --> user : CSR
alt Trusted agrees to produce a signed certificate from the signing request alt user agrees to produce a signed certificate from the signing request
Trusted -> Authority : PUT /crt/<request identifier> user -> caucased : PUT /crt/<request identifier>
alt CSR was still pending alt CSR was still pending
Authority --> Trusted : Success caucased --> user : Success
else CSR not pending (deleted or already signed) else CSR not pending (deleted or already signed)
Authority --> Trusted : Not found caucased --> user : Not found
end end
else Trusted refuses to sign the request else user refuses to sign the request
Trusted -> Authority : DELETE with the signing request identifier user -> caucased : DELETE with the signing request identifier
Authority --> Trusted : Ok caucased --> user : Ok
end end
== Certificate Retrieval == == Certificate Retrieval ==
loop Until certificate obtained or request rejected loop Until certificate obtained or request rejected
User -> Authority : GET /crt/<request identifier> service -> caucased : GET /crt/<request identifier>
alt CRT exists alt CRT exists
Authority --> User : Certificate content caucased --> service : Certificate content
else CRT does not exist else CRT does not exist
Authority --> User : Not found caucased --> service : Not found
opt User checks if the CSR was rejected opt service checks if the CSR was rejected
User -> Authority : GET /csr/<request identifier> service -> caucased : GET /csr/<request identifier>
alt CSR still pending alt CSR still pending
Authority --> User : Signing request content caucased --> service : Signing request content
else CSR rejected else CSR rejected
Authority --> User : Not found caucased --> service : Not found
end end
end end
end end
...@@ -57,43 +56,42 @@ end ...@@ -57,43 +56,42 @@ end
== Certificate Renewal == == Certificate Renewal ==
User -> Authority : PUT /crt/renew with the still-valid CRT and a CRL with the new public key service -> caucased : PUT /crt/renew with the still-valid CRT and a CRL with the new public key
alt CRT is still valid (validity period, not revoked) alt CRT is still valid (validity period, not revoked)
Authority --> User : New certificate content caucased --> service : New certificate content
else CRT invalid else CRT invalid
Authority --> User : Error caucased --> service : Error
end end
== Certificate Revocation == == Certificate Revocation ==
User -> Authority : PUT /crt/revoke with the CRT, order signed with its private key service -> caucased : PUT /crt/revoke with the CRT, order signed with its private key
alt CRT is valid and parameters consistent alt CRT is valid and parameters consistent
Authority --> User : CRT revoked caucased --> service : CRT revoked
else CRT is invalid or parameters inconsistent else CRT is invalid or parameters inconsistent
Authority --> User : Error caucased --> service : Error
end end
== Certificate Revocation without access to private key == == Certificate Revocation without access to private key ==
Trusted -> Authority : PUT /crt/revoke with the CRT user -> caucased : PUT /crt/revoke with the CRT
alt CRT is valid alt CRT is valid
Authority --> Trusted : CRT revoked caucased --> user : CRT revoked
else CRT is invalid else CRT is invalid
Authority --> Trusted : Error caucased --> user : Error
end end
== Certificate Revocation without access to private key or the certificate == == Certificate Revocation without access to private key or the certificate ==
Note over Trusted: This procedure is discouraged as revoked certificate will linger for much longer\nthan strictly needed in the CRL, but useful when only the bare minimum\nis know about the certificate which revocation is desired. user -> caucased : PUT /crt/revoke with the serial to revoke
Trusted -> Authority : PUT /crt/revoke with the serial to revoke
alt Serial is not revoked yet alt Serial is not revoked yet
Authority --> Trusted : CRT revoked caucased --> user : CRT revoked
else Serials is already revoked else Serials is already revoked
Authority --> Trusted : Error caucased --> user : Error
end end
== Certificate Validity Check == == Certificate Validity Check ==
Service -> Authority : GET /crl libssl -> caucased : GET /crl
Authority --> Service : CRL content caucased --> libssl : CRL content
@enduml @enduml
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment