On Wed, Mar 01, 2000 at 11:57:27AM +0100, Andy Polyakov wrote:
> Well, one can also eliminate code which is never referenced (can be
> explicitely added with +Oprocelim at +O3 level) and rearrange code
> snippets in order to minimize page faults and tlb misses.

There is this nice +Oall switch, that will enable several (even aggressive)
optimizations (including +Oprocelim). I did apply it and OpenSSL did not
break (neither did the compiler :-).

[Hint to fix DSA hang problem]

After having applied the patch and recompiled the necessary items,
I am now proud owner of both a +O3 +Oall and a +O4 +Oall share library
set.
I have attached the outputs of "openssl speed". I did run it more than
once on an unloaded HP9000 Series 700 Model C160 (they really know how
to name machines, don't they :-), a 160MHz PA8000 box (256MB RAM, so
openssl speed won't be influenced). The results were perfectly reproducable.

As you can see, the +O4 advantage is not that large. It makes sense with
regard to your comment and the code structuring. It contradicts my experience
with "normal" code (e.g. Finite Elements) where +O2 -> +O3 -> +O4 -> (profile
based optimization) typically yields around 10-15% per level. This rule of
thumb is actually shared by other people running HP-UX.

As you will see, +O4 is for some test even slower than +O3. I have never
seen that before. And I run HP-UX for roughly a decade and 10.X with this
+O4 optimization since 96 :-)

> > There is another warning about building shared libraries
> > with optimization > +O2 anyway :-)
> Which is... Just curious...
Ok, I was lazy yesterday evening. And the warning is: .... (tattoo)
ucomp :
   Warning at line 0  : Do not use optimization levels higher than 2 to generate
 a shared library if a user of that library may redefine a routine within that library 
(8006)

It means, that within the shared library optimizations may take place (like
function inlining) such that redefining routines in you program will not
affect library internal routines as expected.
If you don't do this (and as far as I have seen, OpenSSL based applications
typically don't do it), you can ignore this warning.

As for the library sizes: The ".a" libraries are of same size, since they
are compiled +O3 anyway. The "pic.a" libraries at +O4 are only pre-compiled
but not optimized, yet. The .so.1 libraries are the actual shared libraries
build with +O4 or +O3, respectively.

# ls -al /usr/local/ssl/lib
total 21240
drwxr-xr-x   2 root       sys           1024 Mar  1 14:49 .
drwxr-xr-x   9 root       sys           1024 Feb 28 19:30 ..
-rw-r--r--   1 root       sys        1782156 Feb 28 20:08 libcrypto.a
lrwxr-xr-x   1 root       sys             14 Mar  1 14:49 libcrypto.sl -> 
libcrypto.so.1
-r-xr-xr-x   1 root       sys        2823051 Feb 28 18:52 libcrypto.so.1
-r--r--r--   1 root       sys        4490092 Feb 28 17:56 libcrypto_pic.a
-rw-r--r--   1 root       sys         310820 Feb 28 20:11 libssl.a
lrwxr-xr-x   1 root       sys             11 Mar  1 14:49 libssl.sl -> libssl.so.1
-r-xr-xr-x   1 root       sys         341310 Feb 28 18:55 libssl.so.1
-r--r--r--   1 root       sys        1055480 Feb 28 17:57 libssl_pic.a
# ls -al /usr/local/ssl.O3/lib
total 11976
drwxr-xr-x   2 root       sys           1024 Mar  1 14:41 .
drwxr-xr-x   9 root       sys           1024 Mar  1 14:32 ..
-rw-r--r--   1 root       sys        1782152 Mar  1 14:32 libcrypto.a
lrwxr-xr-x   1 root       sys             14 Mar  1 14:41 libcrypto.sl -> 
libcrypto.so.1
-r-xr-xr-x   1 root       sys        1432628 Mar  1 13:38 libcrypto.so.1
-r--r--r--   1 root       sys        1916108 Mar  1 13:35 libcrypto_pic.a
-rw-r--r--   1 root       sys         310820 Mar  1 14:32 libssl.a
lrwxr-xr-x   1 root       sys             11 Mar  1 14:41 libssl.sl -> libssl.so.1
-r-xr-xr-x   1 root       sys         283806 Mar  1 13:38 libssl.so.1
-r--r--r--   1 root       sys         341268 Mar  1 13:38 libssl_pic.a

Best regards,
        Lutz
-- 
Lutz Jaenicke                             [EMAIL PROTECTED]
BTU Cottbus               http://www.aet.TU-Cottbus.DE/personen/jaenicke/
Lehrstuhl Allgemeine Elektrotechnik                  Tel. +49 355 69-4129
Universitaetsplatz 3-4, D-03044 Cottbus              Fax. +49 355 69-4153
Doing md2 for 3s on 8 size blocks: 53239 md2's in 2.91s
Doing md2 for 3s on 64 size blocks: 19020 md2's in 2.90s
Doing md2 for 3s on 256 size blocks: 6526 md2's in 2.91s
Doing md2 for 3s on 1024 size blocks: 1800 md2's in 2.92s
Doing md2 for 3s on 8192 size blocks: 232 md2's in 2.92s
Doing mdc2 for 3s on 8 size blocks: 177706 mdc2's in 2.91s
Doing mdc2 for 3s on 64 size blocks: 25122 mdc2's in 2.91s
Doing mdc2 for 3s on 256 size blocks: 6136 mdc2's in 2.82s
Doing mdc2 for 3s on 1024 size blocks: 1488 mdc2's in 2.72s
Doing mdc2 for 3s on 8192 size blocks: 195 mdc2's in 2.84s
Doing md5 for 3s on 8 size blocks: 506120 md5's in 2.87s
Doing md5 for 3s on 64 size blocks: 318591 md5's in 2.91s
Doing md5 for 3s on 256 size blocks: 165615 md5's in 2.91s
Doing md5 for 3s on 1024 size blocks: 57362 md5's in 2.91s
Doing md5 for 3s on 8192 size blocks: 8045 md5's in 2.91s
Doing hmac(md5) for 3s on 8 size blocks: 190429 hmac(md5)'s in 2.88s
Doing hmac(md5) for 3s on 64 size blocks: 157110 hmac(md5)'s in 2.91s
Doing hmac(md5) for 3s on 256 size blocks: 108463 hmac(md5)'s in 2.91s
Doing hmac(md5) for 3s on 1024 size blocks: 47828 hmac(md5)'s in 2.88s
Doing hmac(md5) for 3s on 8192 size blocks: 7830 hmac(md5)'s in 2.90s
Doing sha1 for 3s on 8 size blocks: 442817 sha1's in 2.92s
Doing sha1 for 3s on 64 size blocks: 273196 sha1's in 2.87s
Doing sha1 for 3s on 256 size blocks: 139108 sha1's in 2.91s
Doing sha1 for 3s on 1024 size blocks: 44705 sha1's in 2.79s
Doing sha1 for 3s on 8192 size blocks: 6293 sha1's in 2.83s
Doing rmd160 for 3s on 8 size blocks: 283057 rmd160's in 2.86s
Doing rmd160 for 3s on 64 size blocks: 162013 rmd160's in 2.87s
Doing rmd160 for 3s on 256 size blocks: 70321 rmd160's in 2.80s
Doing rmd160 for 3s on 1024 size blocks: 21685 rmd160's in 2.78s
Doing rmd160 for 3s on 8192 size blocks: 3053 rmd160's in 2.89s
Doing rc4 for 3s on 8 size blocks: 3376529 rc4's in 2.93s
Doing rc4 for 3s on 64 size blocks: 808272 rc4's in 2.93s
Doing rc4 for 3s on 256 size blocks: 223012 rc4's in 2.89s
Doing rc4 for 3s on 1024 size blocks: 53751 rc4's in 2.73s
Doing rc4 for 3s on 8192 size blocks: 7206 rc4's in 2.89s
Doing des cbc for 3s on 8 size blocks: 801212 des cbc's in 2.78s
Doing des cbc for 3s on 64 size blocks: 124777 des cbc's in 2.85s
Doing des cbc for 3s on 256 size blocks: 32213 des cbc's in 2.88s
Doing des cbc for 3s on 1024 size blocks: 8222 des cbc's in 2.92s
Doing des cbc for 3s on 8192 size blocks: 1023 des cbc's in 2.90s
Doing des ede3 for 3s on 8 size blocks: 356797 des ede3's in 2.92s
Doing des ede3 for 3s on 64 size blocks: 48723 des ede3's in 2.91s
Doing des ede3 for 3s on 256 size blocks: 12311 des ede3's in 2.91s
Doing des ede3 for 3s on 1024 size blocks: 3089 des ede3's in 2.92s
Doing des ede3 for 3s on 8192 size blocks: 369 des ede3's in 2.79s
Doing idea cbc for 3s on 8 size blocks: 415913 idea cbc's in 2.87s
Doing idea cbc for 3s on 64 size blocks: 58369 idea cbc's in 2.82s
Doing idea cbc for 3s on 256 size blocks: 14799 idea cbc's in 2.83s
Doing idea cbc for 3s on 1024 size blocks: 3224 idea cbc's in 2.45s
Doing idea cbc for 3s on 8192 size blocks: 459 idea cbc's in 2.79s
Doing rc2 cbc for 3s on 8 size blocks: 769224 rc2 cbc's in 2.91s
Doing rc2 cbc for 3s on 64 size blocks: 102450 rc2 cbc's in 2.89s
Doing rc2 cbc for 3s on 256 size blocks: 26091 rc2 cbc's in 2.90s
Doing rc2 cbc for 3s on 1024 size blocks: 6469 rc2 cbc's in 2.88s
Doing rc2 cbc for 3s on 8192 size blocks: 810 rc2 cbc's in 2.88s
Doing rc5-32/12 cbc for 3s on 8 size blocks: 1492622 rc5-32/12 cbc's in 2.90s
Doing rc5-32/12 cbc for 3s on 64 size blocks: 266804 rc5-32/12 cbc's in 2.77s
Doing rc5-32/12 cbc for 3s on 256 size blocks: 73057 rc5-32/12 cbc's in 2.87s
Doing rc5-32/12 cbc for 3s on 1024 size blocks: 18867 rc5-32/12 cbc's in 2.92s
Doing rc5-32/12 cbc for 3s on 8192 size blocks: 2339 rc5-32/12 cbc's in 2.89s
Doing blowfish cbc for 3s on 8 size blocks: 1446705 blowfish cbc's in 2.87s
Doing blowfish cbc for 3s on 64 size blocks: 259342 blowfish cbc's in 2.87s
Doing blowfish cbc for 3s on 256 size blocks: 67962 blowfish cbc's in 2.86s
Doing blowfish cbc for 3s on 1024 size blocks: 17242 blowfish cbc's in 2.86s
Doing blowfish cbc for 3s on 8192 size blocks: 2145 blowfish cbc's in 2.84s
Doing cast cbc for 3s on 8 size blocks: 1406853 cast cbc's in 2.88s
Doing cast cbc for 3s on 64 size blocks: 246379 cast cbc's in 2.87s
Doing cast cbc for 3s on 256 size blocks: 65242 cast cbc's in 2.91s
Doing cast cbc for 3s on 1024 size blocks: 16546 cast cbc's in 2.91s
Doing cast cbc for 3s on 8192 size blocks: 2048 cast cbc's in 2.87s
Doing 512 bit private rsa's for 10s: 308 512 bit private RSA's in 9.56s
Doing 512 bit public rsa's for 10s: 2718 512 bit public RSA's in 9.52s
Doing 1024 bit private rsa's for 10s: 48 1024 bit private RSA's in 9.42s
Doing 1024 bit public rsa's for 10s: 815 1024 bit public RSA's in 9.65s
Doing 2048 bit private rsa's for 10s: 8 2048 bit private RSA's in 10.68s
Doing 2048 bit public rsa's for 10s: 225 2048 bit public RSA's in 9.65s
Doing 4096 bit private rsa's for 10s: 2 4096 bit private RSA's in 19.21s
Doing 4096 bit public rsa's for 10s: 61 4096 bit public RSA's in 9.75s
Doing 512 bit sign dsa's for 10s: 289 512 bit DSA signs in 9.69s
Doing 512 bit verify dsa's for 10s: 234 512 bit DSA verify in 9.70s
Doing 1024 bit sign dsa's for 10s: 87 1024 bit DSA signs in 9.74s
Doing 1024 bit verify dsa's for 10s: 70 1024 bit DSA verify in 9.79s
Doing 2048 bit sign dsa's for 10s: 24 2048 bit DSA signs in 9.64s
Doing 2048 bit verify dsa's for 10s: 20 2048 bit DSA verify in 9.72s
OpenSSL 0.9.5 28 Feb 2000
built on: Wed Mar  1 12:57:51 MET 2000
options:bn(64,32) md2(int) rc4(ptr,int) des(ptr,risc1,16,long) idea(int) blowfish(idx) 
compiler: cc -DTHREADS  +z -D_REENTRANT +Oall +DAportable +w1 -Ae +O3 +ESlit -z 
-DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY
The 'numbers' are in 1000s of bytes per second processed.
type              8 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
md2                146.36k      419.75k      574.11k      631.23k      650.87k
mdc2               488.54k      552.51k      557.03k      560.19k      562.48k
md5               1410.79k     7006.81k    14569.57k    20185.12k    22647.64k
hmac(md5)          528.97k     3455.34k     9541.76k    17005.51k    22118.40k
sha1              1213.20k     6092.18k    12237.68k    16407.86k    18216.34k
rmd160             791.77k     3612.83k     6429.35k     7987.57k     8654.04k
rc4               9219.19k    17655.09k    19754.70k    20161.55k    20426.14k
des cbc           2305.65k     2802.01k     2863.38k     2883.33k     2889.80k
des ede3           977.53k     1071.57k     1083.03k     1083.27k     1083.46k
idea cbc          1159.34k     1324.69k     1338.71k     1347.50k     1347.72k
rc2 cbc           2114.71k     2268.79k     2303.21k     2300.09k     2304.00k
rc5-32/12 cbc     4117.58k     6164.42k     6516.58k     6616.37k     6630.13k
blowfish cbc      4032.63k     5783.24k     6083.31k     6173.36k     6187.27k
cast cbc          3907.93k     5494.17k     5739.50k     5822.37k     5845.72k
                  sign    verify    sign/s verify/s
rsa  512 bits   0.0310s   0.0035s     32.2    285.5
rsa 1024 bits   0.1962s   0.0118s      5.1     84.5
rsa 2048 bits   1.3350s   0.0429s      0.7     23.3
rsa 4096 bits   9.6050s   0.1598s      0.1      6.3
                  sign    verify    sign/s verify/s
dsa  512 bits   0.0335s   0.0415s     29.8     24.1
dsa 1024 bits   0.1120s   0.1399s      8.9      7.2
dsa 2048 bits   0.4017s   0.4860s      2.5      2.1
Doing md2 for 3s on 8 size blocks: 53285 md2's in 2.84s
Doing md2 for 3s on 64 size blocks: 19236 md2's in 2.92s
Doing md2 for 3s on 256 size blocks: 6642 md2's in 2.97s
Doing md2 for 3s on 1024 size blocks: 1745 md2's in 2.84s
Doing md2 for 3s on 8192 size blocks: 231 md2's in 2.92s
Doing mdc2 for 3s on 8 size blocks: 187726 mdc2's in 2.87s
Doing mdc2 for 3s on 64 size blocks: 24979 mdc2's in 2.73s
Doing mdc2 for 3s on 256 size blocks: 6797 mdc2's in 2.93s
Doing mdc2 for 3s on 1024 size blocks: 1686 mdc2's in 2.90s
Doing mdc2 for 3s on 8192 size blocks: 199 mdc2's in 2.74s
Doing md5 for 3s on 8 size blocks: 551258 md5's in 2.93s
Doing md5 for 3s on 64 size blocks: 338412 md5's in 2.93s
Doing md5 for 3s on 256 size blocks: 167047 md5's in 2.84s
Doing md5 for 3s on 1024 size blocks: 57662 md5's in 2.90s
Doing md5 for 3s on 8192 size blocks: 8001 md5's in 2.89s
Doing hmac(md5) for 3s on 8 size blocks: 205848 hmac(md5)'s in 2.84s
Doing hmac(md5) for 3s on 64 size blocks: 170905 hmac(md5)'s in 2.93s
Doing hmac(md5) for 3s on 256 size blocks: 112490 hmac(md5)'s in 2.87s
Doing hmac(md5) for 3s on 1024 size blocks: 48748 hmac(md5)'s in 2.87s
Doing hmac(md5) for 3s on 8192 size blocks: 7912 hmac(md5)'s in 2.92s
Doing sha1 for 3s on 8 size blocks: 442409 sha1's in 2.91s
Doing sha1 for 3s on 64 size blocks: 262362 sha1's in 2.76s
Doing sha1 for 3s on 256 size blocks: 130985 sha1's in 2.76s
Doing sha1 for 3s on 1024 size blocks: 40464 sha1's in 2.55s
Doing sha1 for 3s on 8192 size blocks: 6445 sha1's in 2.92s
Doing rmd160 for 3s on 8 size blocks: 302819 rmd160's in 2.93s
Doing rmd160 for 3s on 64 size blocks: 166802 rmd160's in 2.88s
Doing rmd160 for 3s on 256 size blocks: 75309 rmd160's in 2.95s
Doing rmd160 for 3s on 1024 size blocks: 23163 rmd160's in 2.94s
Doing rmd160 for 3s on 8192 size blocks: 3018 rmd160's in 2.86s
Doing rc4 for 3s on 8 size blocks: 3355071 rc4's in 2.92s
Doing rc4 for 3s on 64 size blocks: 782777 rc4's in 2.84s
Doing rc4 for 3s on 256 size blocks: 155973 rc4's in 2.40s
Doing rc4 for 3s on 1024 size blocks: 55248 rc4's in 2.79s
Doing rc4 for 3s on 8192 size blocks: 7045 rc4's in 2.83s
Doing des cbc for 3s on 8 size blocks: 761735 des cbc's in 2.76s
Doing des cbc for 3s on 64 size blocks: 122038 des cbc's in 2.92s
Doing des cbc for 3s on 256 size blocks: 31155 des cbc's in 2.90s
Doing des cbc for 3s on 1024 size blocks: 7852 des cbc's in 2.91s
Doing des cbc for 3s on 8192 size blocks: 985 des cbc's in 2.91s
Doing des ede3 for 3s on 8 size blocks: 353273 des ede3's in 2.93s
Doing des ede3 for 3s on 64 size blocks: 48957 des ede3's in 2.96s
Doing des ede3 for 3s on 256 size blocks: 12197 des ede3's in 2.93s
Doing des ede3 for 3s on 1024 size blocks: 3071 des ede3's in 2.94s
Doing des ede3 for 3s on 8192 size blocks: 376 des ede3's in 2.88s
Doing idea cbc for 3s on 8 size blocks: 383108 idea cbc's in 2.72s
Doing idea cbc for 3s on 64 size blocks: 54605 idea cbc's in 2.86s
Doing idea cbc for 3s on 256 size blocks: 13410 idea cbc's in 2.79s
Doing idea cbc for 3s on 1024 size blocks: 3504 idea cbc's in 2.91s
Doing idea cbc for 3s on 8192 size blocks: 434 idea cbc's in 2.88s
Doing rc2 cbc for 3s on 8 size blocks: 744034 rc2 cbc's in 2.94s
Doing rc2 cbc for 3s on 64 size blocks: 96184 rc2 cbc's in 2.93s
Doing rc2 cbc for 3s on 256 size blocks: 24020 rc2 cbc's in 2.93s
Doing rc2 cbc for 3s on 1024 size blocks: 6000 rc2 cbc's in 2.93s
Doing rc2 cbc for 3s on 8192 size blocks: 756 rc2 cbc's in 2.95s
Doing rc5-32/12 cbc for 3s on 8 size blocks: 1437931 rc5-32/12 cbc's in 2.94s
Doing rc5-32/12 cbc for 3s on 64 size blocks: 246532 rc5-32/12 cbc's in 2.85s
Doing rc5-32/12 cbc for 3s on 256 size blocks: 67511 rc5-32/12 cbc's in 2.96s
Doing rc5-32/12 cbc for 3s on 1024 size blocks: 16867 rc5-32/12 cbc's in 2.93s
Doing rc5-32/12 cbc for 3s on 8192 size blocks: 2121 rc5-32/12 cbc's in 2.93s
Doing blowfish cbc for 3s on 8 size blocks: 1392104 blowfish cbc's in 2.92s
Doing blowfish cbc for 3s on 64 size blocks: 242212 blowfish cbc's in 2.95s
Doing blowfish cbc for 3s on 256 size blocks: 63279 blowfish cbc's in 2.96s
Doing blowfish cbc for 3s on 1024 size blocks: 15709 blowfish cbc's in 2.90s
Doing blowfish cbc for 3s on 8192 size blocks: 1965 blowfish cbc's in 2.90s
Doing cast cbc for 3s on 8 size blocks: 1328635 cast cbc's in 2.93s
Doing cast cbc for 3s on 64 size blocks: 227604 cast cbc's in 2.93s
Doing cast cbc for 3s on 256 size blocks: 57142 cast cbc's in 2.82s
Doing cast cbc for 3s on 1024 size blocks: 15042 cast cbc's in 2.93s
Doing cast cbc for 3s on 8192 size blocks: 1827 cast cbc's in 2.84s
Doing 512 bit private rsa's for 10s: 326 512 bit private RSA's in 9.58s
Doing 512 bit public rsa's for 10s: 2731 512 bit public RSA's in 9.36s
Doing 1024 bit private rsa's for 10s: 48 1024 bit private RSA's in 9.11s
Doing 1024 bit public rsa's for 10s: 812 1024 bit public RSA's in 9.54s
Doing 2048 bit private rsa's for 10s: 8 2048 bit private RSA's in 10.44s
Doing 2048 bit public rsa's for 10s: 221 2048 bit public RSA's in 9.38s
Doing 4096 bit private rsa's for 10s: 2 4096 bit private RSA's in 18.86s
Doing 4096 bit public rsa's for 10s: 62 4096 bit public RSA's in 9.79s
Doing 512 bit sign dsa's for 10s: 301 512 bit DSA signs in 9.80s
Doing 512 bit verify dsa's for 10s: 242 512 bit DSA verify in 9.62s
Doing 1024 bit sign dsa's for 10s: 88 1024 bit DSA signs in 9.66s
Doing 1024 bit verify dsa's for 10s: 73 1024 bit DSA verify in 9.78s
Doing 2048 bit sign dsa's for 10s: 24 2048 bit DSA signs in 9.45s
Doing 2048 bit verify dsa's for 10s: 20 2048 bit DSA verify in 9.75s
OpenSSL 0.9.5 28 Feb 2000
built on: Mon Feb 28 17:48:04 MET 2000
options:bn(64,32) md2(int) rc4(ptr,int) des(ptr,risc1,16,long) idea(int) blowfish(idx) 
compiler: cc -DTHREADS  +z -D_REENTRANT +Oall +DAportable +w1 -Ae +O4 +ESlit -z 
-DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY
The 'numbers' are in 1000s of bytes per second processed.
type              8 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
md2                150.10k      421.61k      572.51k      629.18k      648.07k
mdc2               523.28k      585.59k      593.87k      595.33k      594.97k
md5               1505.14k     7391.93k    15057.76k    20360.65k    22679.65k
hmac(md5)          579.85k     3733.08k    10033.95k    17393.01k    22196.95k
sha1              1216.24k     6083.76k    12149.33k    16249.07k    18081.32k
rmd160             826.81k     3706.71k     6535.29k     8067.66k     8644.57k
rc4               9191.98k    17640.05k    19573.08k    20277.40k    20393.16k
des cbc           2207.93k     2674.81k     2750.23k     2763.04k     2772.89k
des ede3           964.57k     1058.53k     1065.68k     1069.63k     1069.51k
idea cbc          1126.79k     1221.93k     1230.45k     1233.02k     1234.49k
rc2 cbc           2024.58k     2100.95k     2098.68k     2096.93k     2099.37k
rc5-32/12 cbc     3912.74k     5536.16k     5838.79k     5894.82k     5930.11k
blowfish cbc      3813.98k     5254.77k     5472.78k     5546.90k     5550.79k
cast cbc          3627.67k     4971.55k     5187.36k     5257.00k     5269.99k
                  sign    verify    sign/s verify/s
rsa  512 bits   0.0294s   0.0034s     34.0    291.8
rsa 1024 bits   0.1898s   0.0117s      5.3     85.1
rsa 2048 bits   1.3050s   0.0424s      0.8     23.6
rsa 4096 bits   9.4300s   0.1579s      0.1      6.3
                  sign    verify    sign/s verify/s
dsa  512 bits   0.0326s   0.0398s     30.7     25.2
dsa 1024 bits   0.1098s   0.1340s      9.1      7.5
dsa 2048 bits   0.3938s   0.4875s      2.5      2.1

Reply via email to