Hi,

I link libgcrypt to calculate the sha256 checksum of router firmware. the code 
snippets of calcuate sha256 checksum looks like this:


uint8_t digest[32];
void *handle;
char buf[40960];


sha256_init(&handle)


    do {
        ret = read(fd, buf, sizeof(buf));
        if (ret < 0)
            return -ERR_READ;
        if (ret > 0)
            sha256_update(handle, buf, ret);
    } while (ret > 0);


    sha256_final(handle, digest);


Caculate the sha256 of a 6MB file need 3 secoands:
 # TIME=%e time ./fwtool check ipq4018.bin
3.23


but If i use the sha256sum command provided by busybox, only need 0.4s:
# TIME=%e time sha256sum ipq4018.bin
1b4807030b82f07815b7c34d3d32aa06b29081c15b8eb2a2284a5069b962c137  ipq4018.bin
0.43


the libgcrypt build configure in IPQ4018 (ARM cortext A7 soc):
conf := --disable-doc --enable-neon-support \
    --with-libgpg-error-prefix=$(APP_BUILD)/libgpg-error/ \
    --enable-digests="md5 rmd160 sha1 sha256 sha512 blake2" \
    --enable-ciphers="arcfour des aes cast5 chacha20" \
    --enable-pubkey-ciphers="rsa dsa ecc" \
    CFLAGS="-Wno-switch"


Is this a problem ? the busybox code seems no hardware support. why libgcrypt 
is slower so much  than busybox.


Thanks very much.



_______________________________________________
Gnupg-users mailing list
Gnupg-users@gnupg.org
http://lists.gnupg.org/mailman/listinfo/gnupg-users

Reply via email to