Daniel Pouzzner a3fb5029f8 clean up trailing whitespace and misplaced CRLFs, add missing final newlines, remove stray UTF8 nonprintables (BOMs) and ASCIIfy stray homoglyphs (spaces and apostrophes), guided by expanded coverage in wolfssl-multi-test check-source-text. | 3 kuukautta sitten | |
---|---|---|
.. | ||
README.md | 3 kuukautta sitten | |
include.am | 5 vuotta sitten |
Instructions for cross-compiling and running wolfSSL on the HiFive Unleashed board.
SiFive Freedom U540 SoC at 1.5GHz
Getting started guide: https://sifive.cdn.prismic.io/sifive%2Ffa3a584a-a02f-4fda-b758-a2def05f49f9_hifive-unleashed-getting-started-guide-v1p1.pdf
Make sure your ethernet is attached and power up board. You can connecct the micro-usb to get a UART console that will display the DHCP IP address. Default user is "root" and login password is "sifive".
git clone https://github.com/sifive/freedom-u-sdk.git
cd freedom-u-sdk
git submodule update --recursive --init
make
See freedom-u-sdk/README.md
file for instructions on updating the SD card U-Boot and Linux image.
Insert SD card from Unleashed into host and determine the assigned /dev/sdX
for the media.
From freedom-u-sdk
directory:
sudo make DISK=/dev/sdX format-boot-loader
# Copy U-Boot .fit image to first FAT partition (32MB)
sudo mkdir /media/hifiveu_boot
sudo mount -t vfat /dev/sdX1 /media/hifiveu_boot
cp ./work/image-<GITID>.fit /media/hifiveu_boot/hifiveu.fit
sudo umount /media/hifiveu_boot
# Copy Linux FS
sudo dd if=./work/hifive-unleashed-<ID>.gpt of=/dev/sdX2 bs=1M
Note: Make sure S1 Switch 5 (MSEL2) is OFF, rest ON (MSEL=1011) to boot from SD
Insert SD card from Unleashed into host and determine the assigned character sequence (X) for the media.
From freedom-u-sdk
directory:
sudo make DISK=/dev/sdX format-demo-image
Make sure you are using wolfSSL sources based on this PR https://github.com/wolfSSL/wolfssl/pull/2456
The PR 2456 includes a patch to wolfssl/wolfcrypt/types.h
to detect 64-bit types based on the __riscv_xlen
macro.
This example assumes the wolfssl
root directory is along side the freedom-u-sdk
directory. If not then adjust paths.
~\
wolfssl
freedom-u-sdk
./configure --host=riscv64 \
CC="`pwd`/../freedom-u-sdk/work/buildroot_initramfs/host/bin/riscv64-sifive-linux-gnu-gcc" \
--with-sysroot="`pwd`/../freedom-u-sdk/work/buildroot_initramfs_sysroot/" \
--disable-shared \
--enable-sp \
CFLAGS="-mabi=lp64d -march=rv64imafdc"
make
Copy files to device (replace IP address):
scp ./wolfcrypt/test/testwolfcrypt root@192.168.0.144:~
scp ./wolfcrypt/benchmark/benchmark root@192.168.0.144:~
scp ./examples/client/client root@192.168.0.144:~
scp ./examples/server/server root@192.168.0.144:~
# manually `mkdir certs` on target
scp ./certs/* root@192.168.0.144:~/certs
./configure --enable-sp
make
The following is running the wolfCrypt benchmark at 1.4GHz on a single thread (default CPU speed is 1.0GHz).
echo 1400000000 > /sys/devices/platform/soc/10000000.prci/rate
./benchmark
------------------------------------------------------------------------------
wolfSSL version 4.1.0
------------------------------------------------------------------------------
wolfCrypt Benchmark (block bytes 1048576, min 1.0 sec each)
RNG 10 MB took 1.165 seconds, 8.585 MB/s
AES-128-CBC-enc 15 MB took 1.346 seconds, 11.141 MB/s
AES-128-CBC-dec 15 MB took 1.380 seconds, 10.867 MB/s
AES-192-CBC-enc 10 MB took 1.002 seconds, 9.983 MB/s
AES-192-CBC-dec 10 MB took 1.020 seconds, 9.805 MB/s
AES-256-CBC-enc 10 MB took 1.100 seconds, 9.091 MB/s
AES-256-CBC-dec 10 MB took 1.117 seconds, 8.952 MB/s
AES-128-GCM-enc 10 MB took 1.809 seconds, 5.528 MB/s
AES-128-GCM-dec 10 MB took 1.810 seconds, 5.524 MB/s
AES-192-GCM-enc 10 MB took 1.911 seconds, 5.233 MB/s
AES-192-GCM-dec 10 MB took 1.911 seconds, 5.232 MB/s
AES-256-GCM-enc 5 MB took 1.013 seconds, 4.935 MB/s
AES-256-GCM-dec 5 MB took 1.014 seconds, 4.933 MB/s
CHACHA 25 MB took 1.181 seconds, 21.168 MB/s
CHA-POLY 20 MB took 1.188 seconds, 16.833 MB/s
MD5 80 MB took 1.025 seconds, 78.066 MB/s
POLY1305 85 MB took 1.032 seconds, 82.357 MB/s
SHA 40 MB took 1.033 seconds, 38.728 MB/s
SHA-256 20 MB took 1.023 seconds, 19.557 MB/s
SHA-384 25 MB took 1.059 seconds, 23.597 MB/s
SHA-512 25 MB took 1.059 seconds, 23.597 MB/s
HMAC-MD5 80 MB took 1.026 seconds, 77.950 MB/s
HMAC-SHA 40 MB took 1.034 seconds, 38.700 MB/s
HMAC-SHA256 20 MB took 1.023 seconds, 19.559 MB/s
HMAC-SHA384 25 MB took 1.059 seconds, 23.598 MB/s
HMAC-SHA512 25 MB took 1.059 seconds, 23.599 MB/s
RSA 2048 public 2000 ops took 1.032 sec, avg 0.516 ms, 1938.304 ops/sec
RSA 2048 private 100 ops took 1.713 sec, avg 17.132 ms, 58.370 ops/sec
DH 2048 key gen 133 ops took 1.003 sec, avg 7.544 ms, 132.552 ops/sec
DH 2048 agree 200 ops took 1.531 sec, avg 7.653 ms, 130.676 ops/sec
ECC 256 key gen 1330 ops took 1.001 sec, avg 0.752 ms, 1329.260 ops/sec
ECDHE 256 agree 400 ops took 1.243 sec, avg 3.107 ms, 321.830 ops/sec
ECDSA 256 sign 1000 ops took 1.043 sec, avg 1.043 ms, 958.539 ops/sec
ECDSA 256 verify 300 ops took 1.104 sec, avg 3.680 ms, 271.766 ops/sec
Benchmark complete
echo 1400000000 > /sys/devices/platform/soc/10000000.prci/rate
./examples/benchmark/tls_bench -p 8192 -m
Side Cipher Total Bytes Num Conns Rx ms Tx ms Rx MB/s Tx MB/s Connect Total ms Connect Avg ms
Server DHE-RSA-AES128-SHA 557056 18 94.722 34.548 2.804 7.689 915.005 50.834
Client DHE-RSA-AES128-SHA 557056 18 113.339 34.464 2.344 7.707 896.122 49.785
Server DHE-RSA-AES256-SHA 524288 17 102.691 37.624 2.434 6.645 866.921 50.995
Client DHE-RSA-AES256-SHA 524288 17 123.016 37.391 2.032 6.686 846.925 49.819
Server ECDHE-RSA-AES128-SHA 851968 27 144.719 52.871 2.807 7.684 828.128 30.671
Client ECDHE-RSA-AES128-SHA 851968 27 173.414 52.593 2.343 7.724 799.406 29.608
Server ECDHE-ECDSA-AES128-SHA 1245184 39 210.728 75.683 2.818 7.845 702.403 18.010
Client ECDHE-ECDSA-AES128-SHA 1245184 39 251.039 76.824 2.365 7.729 660.166 16.927
Server ECDHE-ECDSA-AES256-SHA 1179648 37 232.303 85.585 2.421 6.572 673.207 18.195
Client ECDHE-ECDSA-AES256-SHA 1179648 37 277.830 85.551 2.025 6.575 626.807 16.941
Server DHE-RSA-AES128-SHA256 524288 17 106.848 39.533 2.340 6.324 867.397 51.023
Client DHE-RSA-AES128-SHA256 524288 17 127.601 39.334 1.959 6.356 846.556 49.797
Server DHE-RSA-AES256-SHA256 524288 17 120.685 45.184 2.072 5.533 870.931 51.231
Client DHE-RSA-AES256-SHA256 524288 17 144.842 44.807 1.726 5.579 847.038 49.826
Server DHE-RSA-AES128-GCM-SHA256 524288 17 124.636 49.373 2.006 5.064 869.243 51.132
Client DHE-RSA-AES128-GCM-SHA256 524288 17 148.326 49.277 1.685 5.073 845.442 49.732
Server DHE-RSA-AES256-GCM-SHA384 491520 16 129.714 51.389 1.807 4.561 822.309 51.394
Client DHE-RSA-AES256-GCM-SHA384 491520 16 154.349 51.488 1.518 4.552 797.458 49.841
Server ECDHE-RSA-AES128-GCM-SHA256 753664 24 179.251 71.130 2.005 5.052 744.773 31.032
Client ECDHE-RSA-AES128-GCM-SHA256 753664 24 213.410 71.098 1.684 5.055 710.151 29.590
Server ECDHE-RSA-AES256-GCM-SHA384 753664 24 198.233 78.075 1.813 4.603 751.299 31.304
Client ECDHE-RSA-AES256-GCM-SHA384 753664 24 235.646 78.914 1.525 4.554 712.908 29.705
Server ECDHE-ECDSA-AES128-GCM-SHA256 1114112 35 263.646 103.830 2.015 5.117 641.739 18.335
Client ECDHE-ECDSA-AES128-GCM-SHA256 1114112 35 312.647 105.155 1.699 5.052 590.693 16.877
Server ECDHE-ECDSA-AES256-GCM-SHA384 1048576 33 275.753 117.824 1.813 4.244 615.062 18.638
Client ECDHE-ECDSA-AES256-GCM-SHA384 1048576 33 336.538 109.886 1.486 4.550 561.107 17.003
Server ECDHE-RSA-AES128-SHA256 786432 25 159.515 58.314 2.351 6.431 777.706 31.108
Client ECDHE-RSA-AES128-SHA256 786432 25 190.152 58.939 1.972 6.362 746.025 29.841
Server ECDHE-ECDSA-AES128-SHA256 1179648 37 239.776 87.656 2.346 6.417 675.020 18.244
Client ECDHE-ECDSA-AES128-SHA256 1179648 37 285.535 88.530 1.970 6.354 626.898 16.943
Server ECDHE-RSA-AES256-SHA384 786432 25 173.038 63.549 2.167 5.901 780.063 31.203
Client ECDHE-RSA-AES256-SHA384 786432 25 206.355 63.950 1.817 5.864 745.912 29.836
Server ECDHE-ECDSA-AES256-SHA384 1146880 36 252.686 94.012 2.164 5.817 666.287 18.508
Client ECDHE-ECDSA-AES256-SHA384 1146880 36 302.699 93.089 1.807 5.875 616.081 17.113
Server ECDHE-RSA-CHACHA20-POLY1305 983040 31 67.015 25.344 6.995 18.496 929.187 29.974
Client ECDHE-RSA-CHACHA20-POLY1305 983040 31 79.041 25.765 5.930 18.193 916.451 29.563
Server ECDHE-ECDSA-CHACHA20-POLY1305 1572864 49 110.132 40.284 6.810 18.618 848.004 17.306
Client ECDHE-ECDSA-CHACHA20-POLY1305 1572864 49 131.014 41.404 5.725 18.114 824.766 16.832
Server DHE-RSA-CHACHA20-POLY1305 589824 19 40.016 15.086 7.028 18.643 951.114 50.059
Client DHE-RSA-CHACHA20-POLY1305 589824 19 46.994 15.467 5.985 18.184 943.807 49.674
Server ECDHE-RSA-CHACHA20-POLY1305-OLD 983040 31 66.802 25.246 7.017 18.567 928.078 29.938
Client ECDHE-RSA-CHACHA20-POLY1305-OLD 983040 31 78.402 25.915 5.979 18.088 915.354 29.528
Server ECDHE-ECDSA-CHACHA20-POLY1305-OLD 1572864 49 106.853 40.000 7.019 18.750 844.887 17.243
Client ECDHE-ECDSA-CHACHA20-POLY1305-OLD 1572864 49 124.956 41.720 6.002 17.977 824.284 16.822
Server DHE-RSA-CHACHA20-POLY1305-OLD 589824 19 40.200 14.991 6.996 18.762 951.477 50.078
Client DHE-RSA-CHACHA20-POLY1305-OLD 589824 19 46.852 15.688 6.003 17.928 944.071 49.688
For questions please email us at support@wolfssl.com.