<div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div><div style="margin:0;">Hi,</div><div style="margin:0;"><br></div><div style="margin:0;">I link libgcrypt to calculate the sha256 checksum of router firmware. the code snippets<font face="Microsoft YaHei" size="3"> </font><span style="font-family: "Microsoft YaHei"; font-size: medium;">of calcuate sha256 checksum looks like this:</span></div><div style="margin:0;"><font face="Microsoft YaHei" size="3"><br></font></div><div style="margin:0;"><font face="Microsoft YaHei" size="3"><div style="margin:0;">uint8_t digest[32];</div><div style="margin:0;">void *handle;</div><div style="margin:0;">char buf[40960];</div><div><br></div></font></div><div style="margin:0;"><font face="Microsoft YaHei" size="3">sha256_init(&handle)</font></div><div style="margin:0;"><font face="Microsoft YaHei" size="3"><br></font></div><div style="margin:0;"><font face="Microsoft YaHei" size="3"><div style="margin:0;">    do {</div><div style="margin:0;">        ret = read(fd, buf, sizeof(buf));</div><div style="margin:0;">        if (ret < 0)</div><div style="margin:0;">            return -ERR_READ;</div><div style="margin:0;">        if (ret > 0)</div><div style="margin:0;">            sha256_update(handle, buf, ret);</div><div style="margin:0;">    } while (ret > 0);</div><div style="margin:0;"><br></div><div style="margin:0;">    sha256_final(handle, digest);</div><div style="margin:0;"><br></div><div style="margin:0;">Caculate the sha256 of a 6MB file need 3 secoands:</div><div style="margin:0;"><div style="margin:0;"> # TIME=%e time ./fwtool check ipq4018.bin</div><div style="margin:0;">3.23</div><div><br></div><div>but If i use the sha256sum command provided by busybox, only need 0.4s:</div><div><div># TIME=%e time sha256sum ipq4018.bin</div><div>1b4807030b82f07815b7c34d3d32aa06b29081c15b8eb2a2284a5069b962c137  ipq4018.bin</div><div>0.43</div></div><div><br></div><div>the libgcrypt build configure in IPQ4018 (ARM cortext A7 soc):</div><div><div>conf := --disable-doc --enable-neon-support \</div><div>    --with-libgpg-error-prefix=$(APP_BUILD)/libgpg-error/ \</div><div>    --enable-digests="md5 rmd160 sha1 sha256 sha512 blake2" \</div><div>    --enable-ciphers="arcfour des aes cast5 chacha20" \</div><div>    --enable-pubkey-ciphers="rsa dsa ecc" \</div><div>    CFLAGS="-Wno-switch"</div></div><div><br></div><div>Is this a problem ? the busybox code seems no hardware support. why libgcrypt is slower so much  than busybox.</div><div><br></div><div>Thanks very much.</div><div><br></div></div></font></div><br></div></div><br><br><span title="neteasefooter"><p> </p></span>