blob: cb140fc988cb9a386b92cd442f5e27da15351ebf [file] [log] [blame]
<?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>