CLASSIC
Modul: cryif
Rolle: constitutive
Konfidenz: 95%
SNIP_CLASSIC_CRYIF_SECTION_8_3_4_6_Key_Derivation_Interface
Wortlaut
8.3.4.6 Key Derivation Interface
[SWS_CryIf_91009] Definition of API function CryIf_KeyDerive ⌈
Service Name
CryIf_KeyDerive
Syntax
Std_ReturnType CryIf_KeyDerive (
uint32 cryIfKeyId,
uint32 targetCryIfKeyId
)
Service ID [hex]
0x09
Sync/Async
Synchronous
Reentrancy
Reentrant
cryIfKeyId
Holds the identifier of the key which is used for key derivation.
Parameters (in)
targetCryIfKeyId
Holds the identifier of the key which is used to store the derived
key.
Parameters (inout)
None
Parameters (out)
None
Return value
Std_ReturnType
E_OK: Request successful
E_NOT_OK: Request failed
CRYPTO_E_KEY_EMPTY: Request failed because of uninitialized
source key element
CRYPTO_E_BUSY: Crypto Driver Object has returned CRYPTO_
E_BUSY.
CRYPTO_E_KEY_NOT_VALID: Request failed, the key state of
the key identified by cryptoKeyId is "invalid".
Description
This function shall dispatch the key derive function to the configured crypto driver object.
Available via
CryIf.h
⌋
[SWS_CryIf_00076] CryIf_KeyDerive API: Report CRYIF_E_UNINIT error
Upstream requirements: SRS_CryptoStack_00034, SRS_BSW_00369, SRS_BSW_00406
⌈If development error detection for the CRYIF module is enabled:
The function
CryIf_KeyDerive shall report CRYIF_E_UNINIT to the DET if the module is not
yet initialized.⌋
[SWS_CryIf_00077] CryIf_KeyDerive API: Report CRYIF_E_PARAM_HANDLE error for cryIfKeyId parameter
Upstream requirements: SRS_CryptoStack_00034, SRS_BSW_00369
⌈If development error detection for the CRYIF module is enabled:
The function
CryIf_KeyDerive shall report CRYIF_E_PARAM_HANDLE to the DET if the parameter cryIfKeyId is out of range.⌋
[SWS_CryIf_00122] CryIf_KeyDerive API: Report CRYIF_E_PARAM_HANDLE error for targetCryIfKeyId parameter
Upstream requirements: SRS_CryptoStack_00034, SRS_BSW_00369
⌈If development error detection for the CRYIF module is enabled:
The function
CryIf_KeyDerive shall report CRYIF_E_PARAM_HANDLE to the DET if the parameter targetCryIfKeyId is out of range.⌋
[SWS_CryIf_00081] CryIf_KeyDerive API: Forward key job to the mapped driver
Upstream requirements: SRS_CryptoStack_00104
⌈If no errors are detected by CRYIF, the service CryIf_KeyDerive shall call
Crypto_<vi>_<ai>_KeyDerive for the driver configuration mapped to the service and
pass on the return value.⌋
The key derivation service needs a salt and password to derivate a new key. The
salt and the password therefore are stored as key elements in the key referred by
cryIfKeyId.
[SWS_CryIf_91010] Definition of API function CryIf_KeyExchangeCalcPubVal ⌈
Service Name
CryIf_KeyExchangeCalcPubVal
Syntax
Std_ReturnType CryIf_KeyExchangeCalcPubVal (
uint32 cryIfKeyId,
uint8* publicValuePtr,
uint32* publicValueLengthPtr
)
Service ID [hex]
0x0a
Sync/Async
Synchronous
Reentrancy
Reentrant
Parameters (in)
cryIfKeyId
Holds the identifier of the key which shall be used for the key
exchange protocol.
Parameters (inout)
publicValueLengthPtr
Holds a pointer to the memory location in which the public value
length information is stored. On calling this function, this
parameter shall contain the size of the buffer provided by public
ValuePtr. When the request has finished, the actual length of the
returned value shall be stored.
Parameters (out)
publicValuePtr
Contains the pointer to the data where the public value shall be
stored.
▽
△
Return value
Std_ReturnType
E_OK: Request successful
E_NOT_OK: Request failed
CRYPTO_E_BUSY: Request failed, Crypto Driver Object is busy
CRYPTO_E_KEY_EMPTY: Request failed because of uninitialized
source key element
CRYPTO_E_KEY_NOT_VALID: Request failed, the key state of
the key identified by cryptoKeyId is "invalid".
Description
This function shall dispatch the key exchange public value calculation function to the configured
crypto driver object.
Available via
CryIf.h
⌋
[SWS_CryIf_00082]
CryIf_KeyExchangeCalcPubVal
API:
Report
CRYIF_E_UNINIT error
Upstream requirements: SRS_CryptoStack_00034, SRS_BSW_00369, SRS_BSW_00406
⌈If development error detection for the CRYIF module is enabled:
The function
CryIf_KeyExchangeCalcPubVal shall report CRYIF_E_UNINIT to the DET if the
module is not yet initialized.⌋
[SWS_CryIf_00083]
CryIf_KeyExchangeCalcPubVal
API:
Report
CRYIF_E_PARAM_HANDLE error
Upstream requirements: SRS_CryptoStack_00034, SRS_BSW_00369
⌈If development error detection for the CRYIF module is enabled:
The function
CryIf_KeyExchangeCalcPubVal shall report CRYIF_E_PARAM_HANDLE to the
DET if the parameter cryIfKeyId is out of range.⌋
[SWS_CryIf_00084]
CryIf_KeyExchangeCalcPubVal
API:
Report
CRYIF_E_PARAM_POINTER error for publicValuePtr
Upstream requirements: SRS_CryptoStack_00034, SRS_BSW_00369
⌈If development error detection for the CRYIF module is enabled:
The function
CryIf_KeyExchangeCalcPubVal shall report CRYIF_E_PARAM_POINTER to the
DET if the parameter publicValuePtr is a null pointer.⌋
[SWS_CryIf_00085]
CryIf_KeyExchangeCalcPubVal
API:
Report
CRYIF_E_PARAM_POINTER error for publicValueLengthPtr
Upstream requirements: SRS_CryptoStack_00034, SRS_BSW_00369
⌈If development error detection for the CRYIF module is enabled:
The function
CryIf_KeyExchangeCalcPubVal shall report CRYIF_E_PARAM_POINTER to the
DET if the parameter publicValueLengthPtr is a null pointer.⌋
[SWS_CryIf_00086]
CryIf_KeyExchangeCalcPubVal
API:
Report
CRYIF_E_PARAM_VALUE error
Upstream requirements: SRS_CryptoStack_00034, SRS_BSW_00369
⌈If development error detection for the CRYIF module is enabled:
The function
CryIf_KeyExchangeCalcPubVal shall report CRYIF_E_PARAM_VALUE to the DET
if the value, which is pointed by publicValueLengthPtr, is zero.⌋
[SWS_CryIf_00087] CryIf_KeyExchangeCalcPubVal API: Forward key job to the
mapped driver
Upstream requirements: SRS_CryptoStack_00104
⌈If no errors are detected by CRYIF, the service CryIf_KeyExchangeCalcPubVal shall call Crypto_<vi>_<ai>_KeyExchangeCalcPubVal for the driver configuration
mapped to the service and pass on the return value.⌋
[SWS_CryIf_91011] Definition of API function CryIf_KeyExchangeCalcSecret ⌈
Service Name
CryIf_KeyExchangeCalcSecret
Syntax
Std_ReturnType CryIf_KeyExchangeCalcSecret (
uint32 cryIfKeyId,
const uint8* partnerPublicValuePtr,
uint32 partnerPublicValueLength
)
Service ID [hex]
0x0b
Sync/Async
Synchronous
Reentrancy
Reentrant
cryIfKeyId
Holds the identifier of the key which shall be used for the key
exchange protocol.
partnerPublicValuePtr
Holds the pointer to the memory location which contains the
partner’s public value.
Parameters (in)
partnerPublicValueLength
Contains the length of the partner’s public value in bytes.
Parameters (inout)
None
Parameters (out)
None
Return value
Std_ReturnType
E_OK: Request successful
E_NOT_OK: Request failed
CRYPTO_E_BUSY: Request failed, Crypto Driver Object is busy
CRYPTO_E_KEY_EMPTY: Request failed because of uninitialized
source key element
CRYPTO_E_KEY_NOT_VALID: Request failed, the key state of
the key identified by cryIfKeyId is "invalid".
Description
This function shall dispatch the key exchange common shared secret calculation function to the
configured crypto driver object.
Available via
CryIf.h
⌋
[SWS_CryIf_00090] CryIf_KeyExchangeCalcSecret API: Report CRYIF_E_UNINIT
error
Upstream requirements: SRS_CryptoStack_00034, SRS_BSW_00369, SRS_BSW_00406
⌈If development error detection for the CRYIF module is enabled:
The function
CryIf_KeyExchangeCalcSecret shall report CRYIF_E_UNINIT to the DET if the
module is not yet initialized.⌋
[SWS_CryIf_00091]
CryIf_KeyExchangeCalcSecret
API:
Report
CRYIF_E_PARAM_HANDLE error
Upstream requirements: SRS_CryptoStack_00034, SRS_BSW_00369
⌈If development error detection for the CRYIF module is enabled:
The function
CryIf_KeyExchangeCalcSecret shall report CRYIF_E_PARAM_HANDLE to the
DET if the parameter cryIfKeyId is out of range.⌋
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_CryptoInterface.pdf |
|---|---|
| Dokumentseite | Seite 42 |
| Ziel-Modul | cryif (classic) |
| Ziel-Anforderung | SWS_Std_00005 |
| Semantische Rolle | constitutive |
| Automatisierungs-Konfidenz | 0.95 |