MCPcopy Create free account
hub / github.com/audacity/audacity / SHA3Update

Function SHA3Update

lib-src/sqlite/shell.c:1826–1858  ·  view source on GitHub ↗

** Make consecutive calls to the SHA3Update function to add new content ** to the hash */

Source from the content-addressed store, hash-verified

1824** to the hash
1825*/
1826static void SHA3Update(
1827 SHA3Context *p,
1828 const unsigned char *aData,
1829 unsigned int nData
1830){
1831 unsigned int i = 0;
1832#if SHA3_BYTEORDER==1234
1833 if( (p->nLoaded % 8)==0 && ((aData - (const unsigned char*)0)&7)==0 ){
1834 for(; i+7<nData; i+=8){
1835 p->u.s[p->nLoaded/8] ^= *(u64*)&aData[i];
1836 p->nLoaded += 8;
1837 if( p->nLoaded>=p->nRate ){
1838 KeccakF1600Step(p);
1839 p->nLoaded = 0;
1840 }
1841 }
1842 }
1843#endif
1844 for(; i<nData; i++){
1845#if SHA3_BYTEORDER==1234
1846 p->u.x[p->nLoaded] ^= aData[i];
1847#elif SHA3_BYTEORDER==4321
1848 p->u.x[p->nLoaded^0x07] ^= aData[i];
1849#else
1850 p->u.x[p->nLoaded^p->ixMask] ^= aData[i];
1851#endif
1852 p->nLoaded++;
1853 if( p->nLoaded==p->nRate ){
1854 KeccakF1600Step(p);
1855 p->nLoaded = 0;
1856 }
1857 }
1858}
1859
1860/*
1861** After all content has been added, invoke SHA3Final() to compute

Callers 4

SHA3FinalFunction · 0.85
sha3FuncFunction · 0.85
hash_step_vformatFunction · 0.85
sha3QueryFuncFunction · 0.85

Calls 1

KeccakF1600StepFunction · 0.85

Tested by

no test coverage detected