本文整理汇总了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 */
}
}