| <?xml version="1.0" encoding="US-ASCII" ?> |
| <!--**************************************************************** |
| * (c) Copyright 2011-2012 Discretix Technologies Ltd. * |
| * This file is licensed under the terms provided in the file * |
| * libcc54/LICENSE in this directory or a parent directory * |
| *****************************************************************--> |
| |
| <!-- SepRpcTest API description: An API dedicated to test the RPC mechanism --> |
| |
| <api name="CrysKdf"> <!-- The KDF API Agent ID --> |
| |
| <!-- Default return codes for generated wrapper code (may be overriden for specific functions --> |
| <retcodes ok="CRYS_OK" generic_error="CRYS_KDF_HOST_MSG_GENERAL_RPC_A_ERROR" invalid_param="CRYS_KDF_HOST_MSG_GENERAL_RPC_B_ERROR" not_enough_resources="CRYS_KDF_HOST_MSG_GENERAL_RPC_C_ERROR" /> |
| <!-- Header files to include for prototypes |
| --> |
| |
| <header>crys_kdf.h</header> |
| <header>crys_kdf_error.h</header> |
| |
| |
| |
| <function name="_DX_KDF_KeyDerivFunc" return="le32(CRYSError_t)"> |
| <!-- |
| CRYSError_t _DX_KDF_KeyDerivFunc( |
| DxUint8_t *ZZSecret_ptr, |
| DxUint32_t ZZSecretSize, |
| CRYS_KDF_OtherInfo_t *OtherInfo_ptr, |
| CRYS_KDF_HASH_OpMode_t KDFhashMode, |
| CRYS_KDF_DerivFuncMode_t derivation_mode, |
| DxUint8_t *KeyingData_ptr, |
| DxUint32_t KeyingDataSizeBytes ) |
| |
| |
| @param[in] ZZSecret_ptr - A pointer to shared secret value octet string. |
| @param[in] ZZSecretSize - The shared secret value Size, in bytes. |
| @param[in] OtherInfo - The pointer to structure, containing pointers and sizes of optional data shared |
| by two entities intended to share the secret value. This argument is optional |
| (if not needed - set it to NULL). |
| @param[in] KDFhashMode - The KDF identifier of hash function to be used. The hash function output must be at least 160 bits. |
| @param[out] KeyingData_ptr - A pointer to the keying data derived from the secret key, of length KeyLenInBits |
| @param[in] KeyingDataSizeBytes - The size in bytes of the keying data to be generated. In our implementation - |
| KeyLenInBytes <= 2^32-1 . |
| @param[in] derivation_mode - Specifies one of above described derivation modes. |
| --> |
| <param name="ZZSecret_ptr" direction="i" ptype="array(ZZSecretSize,CRYS_KDF_MAX_SIZE_OF_SHARED_SECRET_VALUE)" dtype="DxUint8_t" /> |
| --> |
| <param name="ZZSecretSize" direction="i" ptype="val" dtype="le32(DxUint32_t)"/> |
| --> |
| <param name="OtherInfo_ptr" direction="i" ptype="ref" dtype="CRYS_KDF_OtherInfo_t" > |
| --> |
| <field name="AlgorithmID" direction="i" ptype="array(OtherInfo_ptr->SizeOfAlgorithmID,CRYS_KDF_MAX_SIZE_OF_OTHER_INFO_ENTRY)" dtype="DxUint8_t" /> |
| --> |
| <field name="SizeOfAlgorithmID" direction="i" ptype="val" dtype="le32(DxUint32_t)" /> |
| --> |
| <field name="PartyUInfo" direction="i" ptype="array(OtherInfo_ptr->SizeOfPartyUInfo,CRYS_KDF_MAX_SIZE_OF_OTHER_INFO_ENTRY)" dtype="DxUint8_t" /> |
| --> |
| <field name="SizeOfPartyUInfo" direction="i" ptype="val" dtype="le32(DxUint32_t)" /> |
| --> |
| <field name="PartyVInfo" direction="i" ptype="array(OtherInfo_ptr->SizeOfPartyVInfo,CRYS_KDF_MAX_SIZE_OF_OTHER_INFO_ENTRY)" dtype="DxUint8_t" /> |
| --> |
| <field name="SizeOfPartyVInfo" direction="i" ptype="val" dtype="le32(DxUint32_t)" /> |
| --> |
| <field name="SuppPrivInfo" direction="i" ptype="array(OtherInfo_ptr->SizeOfSuppPrivInfo,CRYS_KDF_MAX_SIZE_OF_OTHER_INFO_ENTRY)" dtype="DxUint8_t" /> |
| --> |
| <field name="SizeOfSuppPrivInfo" direction="i" ptype="val" dtype="le32(DxUint32_t)" /> |
| --> |
| <field name="SuppPubInfo" direction="i" ptype="array(OtherInfo_ptr->SizeOfSuppPubInfo,CRYS_KDF_MAX_SIZE_OF_OTHER_INFO_ENTRY)" dtype="DxUint8_t" /> |
| --> |
| <field name="SizeOfSuppPubInfo" direction="i" ptype="val" dtype="le32(DxUint32_t)" /> |
| </param> |
| --> |
| <param name="KDFhashMode" direction="i" ptype="val" dtype="le32(DxUint32_t)" /> |
| --> |
| <param name="derivation_mode" direction="i" ptype="val" dtype="le32(DxUint32_t)" /> |
| --> |
| <param name="KeyingData_ptr" direction="o" ptype="array(KeyingDataSizeBytes,CRYS_KDF_MAX_SIZE_OF_KEYING_DATA)" dtype="DxUint8_t" /> |
| --> |
| <param name="KeyingDataSizeBytes" direction="i" ptype="val" dtype="le32(DxUint32_t)" /> |
| --> |
| </function> |
| |
| |
| </api> |