/*!
    \ingroup RIPEMD
    
    \brief This function initializes a ripemd structure by initializing 
    ripemd’s digest, buffer, loLen and hiLen.
    
    \return 0 returned on successful execution of the function. The RipeMd 
    structure is initialized.
    \return BAD_FUNC_ARG returned if the RipeMd structure is NULL.
    
    \param ripemd pointer to the ripemd structure to initialize
    
    _Example_
    \code
    RipeMd md;
    int ret;
    ret = wc_InitRipeMd(&md);
    if (ret != 0) {
    	// Failure case.
    }
    \endcode
    
    \sa wc_RipeMdUpdate
    \sa wc_RipeMdFinal
*/
WOLFSSL_API int wc_InitRipeMd(RipeMd*);
/*!
    \ingroup RIPEMD
    
    \brief This function generates the RipeMd digest of the data input and 
    stores the result in the ripemd->digest buffer. After running 
    wc_RipeMdUpdate, one should compare the generated ripemd->digest to a 
    known authentication tag to verify the authenticity of a message.
    
    \return 0 Returned on successful execution of the function.
    \return BAD_FUNC_ARG Returned if the RipeMd structure is NULL or if data 
    is NULL and len is not zero. This function should execute if data is NULL 
    and len is 0.
    
    \param ripemd: pointer to the ripemd structure to be initialized with 
    wc_InitRipeMd
    \param data data to be hashed
    \param len sizeof data in bytes

    _Example_
    \code
    const byte* data; // The data to be hashed
    ....
    RipeMd md;
    int ret;
    ret = wc_InitRipeMd(&md);
    if (ret == 0) {
    ret = wc_RipeMdUpdate(&md, plain, sizeof(plain));
    if (ret != 0) {
	// Failure case …
    \endcode
    
    \sa wc_InitRipeMd
    \sa wc_RipeMdFinal
*/
WOLFSSL_API int wc_RipeMdUpdate(RipeMd*, const byte*, word32);
/*!
    \ingroup RIPEMD 
    
    \brief This function copies the computed digest into hash.  If there is a 
    partial unhashed block, this method will pad the block with 0s, and 
    include that block’s round in the digest before copying to hash. State 
    of ripemd is reset.
    
    \return 0 Returned on successful execution of the function. The state of 
    the RipeMd structure has been reset.
    \return BAD_FUNC_ARG Returned if the RipeMd structure or hash parameters 
    are NULL.
    
    \param ripemd pointer to the ripemd structure to be initialized with 
    wc_InitRipeMd, and containing hashes from wc_RipeMdUpdate. State will 
    be reset
    \param hash buffer to copy digest to.  Should be RIPEMD_DIGEST_SIZE bytes
    
    _Example_
    \code
    RipeMd md;
    int ret;
    byte   digest[RIPEMD_DIGEST_SIZE];
    const byte* data; // The data to be hashed
    ... 
    ret = wc_InitRipeMd(&md);
    if (ret == 0) {
    ret = wc_RipeMdUpdate(&md, plain, sizeof(plain));
    	if (ret != 0) {
    		// RipeMd Update Failure Case.
    }
    ret = wc_RipeMdFinal(&md, digest);
    if (ret != 0) {
    	// RipeMd Final Failure Case.
    }...
    \endcode
    
    \sa none
*/
WOLFSSL_API int wc_RipeMdFinal(RipeMd*, byte*);
