当前位置: 首页>>代码示例>>C++>>正文


C++ hash::data方法代码示例

本文整理汇总了C++中hash::data方法的典型用法代码示例。如果您正苦于以下问题:C++ hash::data方法的具体用法?C++ hash::data怎么用?C++ hash::data使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在hash的用法示例。


在下文中一共展示了hash::data方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: memset

/* finalize the hash computation and output the result */
void skein512::finalize( hash &hashVal )
{
    size_t n,byteCnt;
    uint64_t Y[8];

    _T[1] |= SKEIN_T1_FLAG_FINAL;                 /* tag as the final block */
    if ( _block_size < 64 )            /* zero pad b[] if necessary */
        memset( &_block[_block_size], 0, 64 - _block_size );

    process( _block, 1, _block_size );  /* process the final block */

    /* now output the result */
    byteCnt = (512 + 7) >> 3;             /* total number of output bytes */

    /* run Threefish in "counter mode" to generate output */
    memset( _block, 0, sizeof(_block) );  /* zero out b[], so it can hold the counter */
    memcpy( Y, _X, sizeof(_X) );       /* keep a local copy of counter mode "key" */
    for ( size_t i = 0; i * 64 < byteCnt; i++ )
	{
		_block64[0] = Skein_Swap64( uint64_t(i) ); /* build the counter block */

        start_new_type( SKEIN_T1_BLK_TYPE_OUT_FINAL );
        process( _block, 1, sizeof(uint64_t) ); /* run "counter mode" */
        n = byteCnt - i*64;   /* number of output bytes left to go */
        if (n >= 64)
            n  = 64;
        Skein_Put64_LSB_First(hashVal.data()+i*64,_X,n);   /* "output" the ctr mode bytes */
        memcpy(_X,Y,sizeof(_X));   /* restore the counter mode key for next time */
	}
}
开发者ID:kdt3rd,项目名称:gecko,代码行数:31,代码来源:skein512.cpp


注:本文中的hash::data方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。