HashSqueeze#
Squeezes an arbitrary number of hash bytes out of the hash state.
Syntax#
IppStatus ippsHashSqueeze_rmf(Ipp8u *pMD, const int digestLen, IppsHashState_rmf *pState)
Include Files#
ippcp.h
Parameters#
pMD |
Pointer to the buffer containing the output digest. |
digestLen |
Length of the hash to be squeezed. |
pState |
Pointer to the |
Description#
The function squeezes an arbitrary number of hash bytes out of the IppsHashState_rmf
state and can be called repeatedly. It is used only with methods that allow output
to be arbitrarily long, e.g. SHAKE128
, SHAKE256
.
The function is used together with other streaming hash functions with reduced memory footprint
and has the following restrictions in terms of the call order for a specific IppsHashState_rmf
state:
ippsHashInit_rmf()
can be called at any time.ippsHashUpdate_rmf()
can be called at any time, but not afterippsHashSqueeze_rmf()
.ippsHashSqueeze_rmf()
can be called at any time.ippsHashFinal_rmf()
can be called at any time, but not afterippsHashSqueeze_rmf()
.ippsHashGetTag_rmf()
can be called at any time, but not afterippsHashSqueeze_rmf()
.
Note
This function has a reduced memory footprint version. To learn more, see Reduced Memory Footprint Functions.
Return Values#
ippStsNoErr |
Indicates no error. Any other value indicates an error or warning. |
ippStsNullPtrErr |
Indicates an error condition if any of the specified pointers is NULL. |
ippStsContextMatchErr |
Indicates an error condition if the context parameter does not match the operation or if the call sequence of the processing API is not correct (see more details in the “Description” section). |
ippStsOutOfRangeErr |
Indicates an error condition if |
ippStsNotSupportedModeErr |
Indicates an error condition if the provided hash algorithm identifier is not supported. |