CLASSIC
Modul: keym
Rolle: constitutive
Konfidenz: 95%
SNIP_CLASSIC_KEYM_SECTION_8_3_2_4_KeyM_Finalize
Wortlaut
8.3.2.4 KeyM_Finalize
[SWS_KeyM_00053] Definition of API function KeyM_Finalize
Upstream requirements: SRS_CryptoStack_00106,
SRS_CryptoStack_00101,
SRS_CryptoStack_00107,
SRS_BSW_00310,
SRS_BSW_00357,
SRS_
BSW_00484, SRS_BSW_00486
⌈
Service Name
KeyM_Finalize
Syntax
Std_ReturnType KeyM_Finalize (
const uint8* RequestDataPtr,
uint16 RequestDataLength,
uint8* ResponseDataPtr,
uint16 ResponseMaxDataLength
)
▽
△
Service ID [hex]
0x07
Sync/Async
Asynchronous
Reentrancy
Non Reentrant
RequestDataPtr
Information that comes along with the request
RequestDataLength
Length of data in the RequestData array
Parameters (in)
ResponseMaxDataLength
Max number of bytes available in ResponseDataPtr
Parameters (inout)
None
Parameters (out)
ResponseDataPtr
Data returned by the function.
Return value
Std_ReturnType
E_OK: Operation has been accepted and will be processed
internally. Results will be provided through a callback
E_NOT_OK: Operation not accepted due to an internal error.
KEYM_E_BUSY: Validation cannot be performed yet. KeyM is
currently busy with other jobs.
KEYM_E_PARAMETER_MISMATCH: Parameter do not match with
expected value.
KEYM_E_KEY_CERT_SIZE_MISMATCH: Parameter size doesn’t
match
Description
The function is used to finalize key update operations. It is typically used in conjunction with the
KeyM_Start operation and returns the key operation into the idle mode. Further key prepare or
update operations are not accepted until a new KeyM_Start operation has been initialized. This
function is only available if KeyMCryptoKeyStartFinalizeFunctionEnabled is set to TRUE. In
addition, updated key material will be persisted and set into valid state (calling Csm_KeySet
Valid).
Available via
KeyM.h
⌋
[SWS_KeyM_00103]
Upstream requirements: SRS_CryptoStack_00107
⌈If KeyMCryptoKeyStartFinalizeFunctionEnabled is set to TRUE, this function will conclude the key update operation. All keys that have flagged to be updated during the
session shall be finalized by calling Csm_KeySetValid().
The validation shall be done for all keys that have been updated, even if Csm_KeySet
Valid() returns a failure for one of the keys. This is to finalize as much keys as possible
even if one key fails. If at least one key fails, then the overall result is a fail information
in the callback result.⌋
[SWS_KeyM_00104]
Upstream requirements: SRS_CryptoStack_00096, SRS_CryptoStack_00107
⌈If KeyMCryptoKeyStartFinalizeFunctionEnabled and KeyMCryptoKeyHandlerStartFinalizeEnabled is set to TRUE this function will call KeyM_KH_Finalize() with the exact
same parameter as provided with KeyM_Finalize(). The finalize key handler has to be
called BEFORE the validation of the key (the call to Csm_KeySetValid()). If the key
handler returns E_OK, then this function will continue its operation as specified. If the
key handler finalization function returns E_NOT_OK, then no validation shall be done.⌋
[SWS_KeyM_00105]
Upstream requirements: SRS_CryptoStack_00106
⌈The callback function KeyM_CryptoKeyFinalizeCallbackNotification() will be called if
the operation has finished. The parameter ’ResultDataPtr’ of this callback shall provide
the buffer pointer ’ResponseDataPtr’ provided with the call to KeyM_Finalize(). The
result information provides the residual result of the validation of all keys.⌋
Info:
Since key validation can take considerable amount of time this function is used in
asynchronous mode only. Since the key handler is called in synchronous mode it is
recommended to call it not from within KeyM_Finalize() but delegate the call to the
background task.
The caller of KeyM_Finalize() shall provide a buffer that is large enough to store the
response. This buffer shall not be touched by the caller if KeyM_Finalize() returns E_
OK until the callback notification has indicated the end of the finalize operation.
[SWS_KeyM_00106]
Upstream requirements: SRS_CryptoStack_00120
⌈At the end of a key finalize operation, all flags for key validation have to be cleared and
the session state shall be set to the init mode. Thus, no further key update operations
are allowed anymore.⌋
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 56 |
| Ziel-Modul | keym (classic) |
| Ziel-Anforderung | SWS_Std_00005 |
| Semantische Rolle | constitutive |
| Automatisierungs-Konfidenz | 0.95 |