Jump to content

ODROID-C2 with ovpn and AES instruction set


dolphs

Recommended Posts

Hi - I am trying to find out from the fora topics here as well the technical details page if the ODROID-C2 has an extension to the ARMv8 instruction set to improve the speed of applications, like openssl/openvpn, performing encryption and decryption. On the intel platforms this feature is known as AES-NI. Therefore is similar hardware on board and if so, which kernel module enables this feature please?

Also when will " Armbian " stretch be available ( 17 July just like debian 9? ). Cheers

 

Link to comment
Share on other sites

https://en.wikipedia.org/wiki/AES_instruction_set

"

AES support with unprivileged processor instructions is also available in the latest SPARC processors (T3, T4, T5, M5, and forward) and in latest ARM processors. The SPARC T4processor, introduced in 2011, has user-level instructions implementing AES rounds.[13] These instructions are in addition to higher level encryption commands. The ARMv8-Aprocessor architecture, announced in 2011, including the ARM Cortex-A53 and A57 (but not previous v7 processors like the Cortex A5, 7, 8, 9, 11, 15[citation needed]) also have user-level instructions which implement AES rounds

"

 

You can upgrade Armbian to Debian testing by adding a new repository with Synaptic, by clicking Reload and by updating all packages. You can change the country code (de):

deb http://ftp.de.debian.org/debian testing main 

Debian testing Xfce works fine with Sunvell T95Z Plus AmLogic S912. Use Chromium, Iceaweasel plays youtube videos really slow and without sound. Use Wicd and QasMixer and remove networkmanager, systemd networking.service and pulseaudio to speed up system and increasing system stability.

 

Link to comment
Share on other sites

compiled today " ARMBIAN 5.32 user-built Debian GNU/Linux 8 (jessie) 4.12.0-odroidc2 " and  outpur of " openssl speed -elapsed -evp aes-128-cbc " was a bit disappointing as it seems it does not use the hardware encryption. Just built the default, however might check later if module needs to be compiled in ( or modprobed )

 

root@odroidc2:~# openssl speed -elapsed -evp aes-128-cbc
You have chosen to measure elapsed time instead of user CPU time.
Doing aes-128-cbc for 3s on 16 size blocks: 9017781 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 64 size blocks: 2785443 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 256 size blocks: 746427 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 1024 size blocks: 189960 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 8192 size blocks: 23811 aes-128-cbc's in 3.00s
OpenSSL 1.0.1t  3 May 2016
built on: Fri Jan 27 00:08:40 2017
options:bn(64,64) rc4(ptr,char) des(idx,cisc,16,int) aes(partial) blowfish(ptr)
compiler: gcc -I. -I.. -I../include  -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wa,--noexecstack -Wall
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-128-cbc      48094.83k    59422.78k    63695.10k    64839.68k    65019.90k

 

 

root@odroidc2:~# openssl speed -elapsed  aes-128-cbc
You have chosen to measure elapsed time instead of user CPU time.
Doing aes-128 cbc for 3s on 16 size blocks: 10634655 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 64 size blocks: 2917504 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 256 size blocks: 753598 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 1024 size blocks: 190469 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 8192 size blocks: 23818 aes-128 cbc's in 3.00s
OpenSSL 1.0.1t  3 May 2016
built on: Fri Jan 27 00:08:40 2017
options:bn(64,64) rc4(ptr,char) des(idx,cisc,16,int) aes(partial) blowfish(ptr)
compiler: gcc -I. -I.. -I../include  -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wa,--noexecstack -Wall
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-128 cbc      56718.16k    62240.09k    64307.03k    65013.42k    65039.02k

 

 


root@odroidc2:~$ lsmod
Module                  Size  Used by
cfg80211              282624  0
rfkill                 32768  1 cfg80211
cpufreq_powersave      16384  0
cpufreq_userspace      16384  0
cpufreq_conservative    16384  0
meson_drm              45056  0
drm_kms_helper        172032  1 meson_drm
drm                   393216  2 meson_drm,drm_kms_helper
meson_rng              16384  0
meson_gxbb_wdt         16384  0
rng_core               16384  1 meson_rng
fuse                   98304  1
ipv6                  401408  26
btrfs                 962560  0
xor                    20480  1 btrfs
zlib_deflate           28672  1 btrfs
raid6_pq              106496  1 btrfs
dwmac_generic          16384  0
realtek                16384  1
dwmac_meson8b          16384  0
stmmac_platform        20480  2 dwmac_generic,dwmac_meson8b
stmmac                110592  3 stmmac_platform,dwmac_generic,dwmac_meson8b

 

 

According to my info crypto engine has AES block cipher with 128/192/256 bits keys, standard 16 bytes block size and streaming ECB, CBC and CTR modes.

( Paragraph 3.3  Crypto Engine ). So I upgraded debian jessie to stretch ( which has openssl1.1.0f instead of openssl1.0.1t ) and yet the hardware seems to do some acceleration but still hoped for more ...

 

openssl speed -elapsed -evp aes-128-cbc
You have chosen to measure elapsed time instead of user CPU time.
Doing aes-128-cbc for 3s on 16 size blocks: 8240239 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 64 size blocks: 2872650 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 256 size blocks: 802740 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 1024 size blocks: 206766 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 8192 size blocks: 26072 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 16384 size blocks: 13041 aes-128-cbc's in 3.00s
OpenSSL 1.1.0f  25 May 2017
built on: reproducible build, date unspecified
options:bn(64,64) rc4(char) des(int) aes(partial) blowfish(ptr)
compiler: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/lib/ssl\"" -DENGINESDIR="\"/usr/lib/aarch64-linux-gnu/engines-1.1\""
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-cbc      43947.94k    61283.20k    68500.48k    70576.13k    71193.94k    71221.25k

 


root@odroidc2:/home/ykoot# openssl speed -elapsed aes-128-cbc
You have chosen to measure elapsed time instead of user CPU time.
Doing aes-128 cbc for 3s on 16 size blocks: 9273969 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 64 size blocks: 2507648 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 256 size blocks: 645224 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 1024 size blocks: 162484 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 8192 size blocks: 20352 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 16384 size blocks: 10176 aes-128 cbc's in 3.00s
OpenSSL 1.1.0f  25 May 2017
built on: reproducible build, date unspecified
options:bn(64,64) rc4(char) des(int) aes(partial) blowfish(ptr)
compiler: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/lib/ssl\"" -DENGINESDIR="\"/usr/lib/aarch64-linux-gnu/engines-1.1\""
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128 cbc      49461.17k    53496.49k    55059.11k    55461.21k    55574.53k    55574.53k

 

 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines