CLASSIC
Modul: keym
Rolle: constitutive
Konfidenz: 95%
SNIP_CLASSIC_KEYM_SECTION_7_2_4_Operation_mode
Wortlaut
7.2.4 Operation mode
[SWS_KeyM_00021] Upstream requirements: SRS_CryptoStack_00080
⌈If the configuration item KeyMServiceCertificateFunctionEnabled and KeyMCertificate ManagerEnabled is set to TRUE, the certificate submodule shall provide the function KeyM_ServiceCertificate{ByCertId}(). This function can be triggered by the key master and is used to provide certificate related information to the certificate submodule. Several certificate related operations can be performed like introduction or update of certificates that are permanently stored in the system.⌋ Every certificate that can be addressed by its symbolic name KeyMCertificate/Key MCertificateId provides a status as defined in KeyM_CertificateStatusType. Each status will be entered by a defined state transition that is outlined in Figure 7-4. The current status of a certificate can be requested by KeyM_CertGetStatus(). Figure 7.4: Certificate status and possible state transitions.
[SWS_KeyM_00167] Upstream requirements: SRS_CryptoStack_00115
⌈The certificate status "KEYM_CERTIFICATE_NOT_AVAILABLE" is entered after initialization of KeyM. This status can also be entered by a call to KeyM_SetCertificate() with a length value of 0 in certDataLength within the KeyM_CertDataType structure to reset a certificate and its status (see also [SWS_KeyM_00141]).⌋
[SWS_KeyM_00026] Upstream requirements: SRS_CryptoStack_00117
⌈The parsing process of a certificate shall be started as soon as the certificate has been stored with either KeyM_SetCertificate() or KeyM_ServiceCertificate{ByCertId}(). When parsing is in progress, the certificate status shall change to the transient status KEYM_CERTIFICATE_NOT_PARSED until the parsing process is completed. The parsing process can also be already triggered on initialization of KeyM, as outlined in [SWS_KeyM_00022]. In the same way, the certificate status shall change to KEYM_ CERTIFICATE_NOT_PARSED.⌋
[SWS_KeyM_00027] Upstream requirements: SRS_CryptoStack_00111
⌈If the certificate parse operation detects violations to encoding rules specified by KeyMCertEncodingType (if configured), or violations to syntax such as ASN.1 or TLV (Tag-Length-Values) on the KeyMCertFormatType, the certificate status KEYM_E_ CERTIFICATE_INVALID_FORMAT shall be set and reported to the application if required by configured callback. No further operation like parsing and validating shall be performed on this certificate until the status has been reset.⌋
[SWS_KeyM_00168] Upstream requirements: SRS_CryptoStack_00111
⌈If the certificate is in a well-formatted ASN.1 structure but basic elements as outlined in KeyMCertificateElementOfStructure for the specified format type (KeyMCert FormatType) are missing, the certificate status KEYM_E_CERTIFICATE_INVALID_ TYPE shall be set and reported to the application if required by the configured callback. No further operation like validating shall be performed on this certificate until the status has been reset.⌋
[SWS_KeyM_00169] Upstream requirements: SRS_CryptoStack_00111
⌈If the parsing operation has been completed without failure, the certificate status shall be set to KEYM_CERTIFICATE_PARSED_NOT_VALIDATED and reported to the application if required by the configured callback.⌋
[SWS_KeyM_00028] Upstream requirements: SRS_CryptoStack_00111
⌈A verification of a certificate shall only be started if the certificate is in the status KEYM_CERTIFICATE_PARSED_NOT_VALIDATED. The verification shall be triggered at the latest by a call to one of the functions KeyM_VerifyCertificate(), KeyM_Verify Certificates() or KeyM_VerifyCertificateChain().⌋ Note: It is up to the implementation of a KeyM to start the verification process earlier than by one of these function calls, e.g. in the background after initialization or if a certificate chain needs to be verified.
[SWS_KeyM_00029] Upstream requirements: SRS_CryptoStack_00111
⌈The verification of a certificate shall be done in sequential steps as described in the following requirements. If one step fails, the certificate status shall be set to the corresponding value, it shall be reported through a callback function (if configured) and the verification shall be stopped. The certificate status shall remain in this status until it is reset as outlined in [SWS_KeyM_00167].⌋
[SWS_KeyM_00030] Upstream requirements: SRS_CryptoStack_00111
⌈The verification of a certificate starts with a check if all certificates that are linked with KeyMCertUpperHierarchicalCertRef are in the status KEYM_CERTIFICATE_VALID. If either of these referenced certificates are in the status KEYM_CERTIFICATE_ NOT_PARSED or KEYM_CERTIFICATE_PARSED_NOT_VALIDATED, the parse and/ respectively verification process shall be started for these linked certificates in the order from top (the last one of the linked list that either has no further link or links to itself) down to the bottom (the next certificate that is directly linked with KeyMCertUpperHierarchicalCertRef of the currently processed certificate). In this case, the status check of the linked certificates shall be re-done after all initiated certificate verifications have reached a final status.⌋
[SWS_KeyM_00031] Upstream requirements: SRS_CryptoStack_00111
⌈If all certificates that are linked with KeyMCertUpperHierarchicalCertRef are in the status KEYM_CERTIFICATE_VALID, or KeyMCertUpperHierarchicalCertRef links to itself (self-signed certificates), the subject field of the currently validated certificate shall be verified with the issuer field of the next upper certificate (the one referenced by Key MCertUpperHierarchicalCertRef). If one of the checks above have failed, the status KEYM_E_CERTIFICATE_INVALID_ CHAIN_OF_TRUST shall be set and reported through callback function (if configured) and the validation process shall stop. Otherwise, the check outlined in [SWS_KEYM_00032] shall be performed at next.⌋
[SWS_KeyM_00032] Upstream requirements: SRS_CryptoStack_00111
⌈The signature of the certificate shall be verified by using the CSM verify job referenced with KeyMCertUpperHierarchicalCertRef/ KeyMCertCsmSignatureVerifyJobRef (see Figure 7-4). It should be noted, that for self-signed certificates, the public key of this certificate needs to be set and validated in KeyMCertCsmSignatureVerifyKeyRef beforehand. If the signature verification fails, the certificate status KEYM_E_CERTIFICATE_SIGNATURE_FAIL shall be set and reported through callback function (if configured) and the validation process shall stop. Otherwise, the check outlined in [SWS_KEYM_00033] shall be performed at next.⌋
[SWS_KeyM_00033] Upstream requirements: SRS_CryptoStack_00111
⌈If the KeyM module maintains revocation lists, it shall check if the certificate under validation is part of the revoked one. If so, the certificate status KEYM_E_CERTIFICATE_ REVOKED shall be set and reported through callback function (if configured) and the validation process shall stop. Otherwise, the check outlined in [SWS_KEYM_00034] shall be performed at next.⌋
[SWS_KeyM_00034] Upstream requirements: SRS_CryptoStack_00111
⌈If the certificate format type contains a time period, the KeyM module shall query the current time from configured time source (KeyMCertTimebaseRef) and compare the current time if it is within the validity period of the certificate. If not, the certificate status KEYM_E_CERTIFICATE_VALIDITY_PERIOD_FAIL shall be set and reported through callback function (if configured) and the validation process shall stop. Otherwise, the check outlined in [SWS_KEYM_00035] shall be performed at next.⌋
[SWS_KeyM_00035] Upstream requirements: SRS_CryptoStack_00111
⌈The contents of certificate elements shall be checked through by a check of all Key MCertCertificateElementRuleRef. If one of the rules are violated, the certificate status KEYM_E_CERTIFICATE_INVALID_CONTENT shall be set and reported through callback function (if configured) and the validation process shall stop. Otherwise, the requirement outlined in [SWS_KeyM_00170] shall be performed.⌋
[SWS_KeyM_00170] Upstream requirements: SRS_CryptoStack_00118
⌈If all verification steps have been performed and no error was detected during the verification, the public key of the certificate shall be set and validated (Csm_KeySet Valid()) to the CSM key referenced by KeyMCertCsmSignatureVerifyKeyRef (if not already done for self-signed certificates, see [SWS_KeyM_00032]). The certificate status KEYM_CERTIFICATE_VALID shall be set and reported to the application if required by configured callback.⌋
Versionen & Provenienz · Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.
Begründung & Zuweisungs-Evidenz
Cited verbatim in the snippet (deterministic citation).
Dokumenten-Herkunft & Rückverfolgbarkeit
| Spezifikations-Dokument | SWS_KeyManager.pdf |
|---|---|
| Dokumentseite | Seite 34 |
| Ziel-Modul | keym (classic) |
| Ziel-Anforderung | SWS_KeyM_00170 |
| Semantische Rolle | constitutive |
| Automatisierungs-Konfidenz | 0.95 |