← Back to team overview

dolfin team mailing list archive

Re: Dependence on OpenSSL

 



Anders Logg wrote:
On Tue, Oct 06, 2009 at 10:05:24PM +0200, Johan Hake wrote:
On Tuesday 06 October 2009 21:58:29 Andy Ray Terrel wrote:
On Tue, Oct 6, 2009 at 2:43 PM, Anders Logg <logg@xxxxxxxxx> wrote:
On Tue, Oct 06, 2009 at 02:28:40PM -0500, Andy Ray Terrel wrote:
Sorry for being dense but computing the SHA1 hash for what essentially
is a string compare seems a bit overkill.
I want to avoid a call to strcmp in a piece of code that needs to be
fast. What I do (it seems to work now) is to compute the 20 byte SHA-1
hash from the ~40 byte finite element signature which is typically
something like

 FiniteElement('Lagrange', 'triangle', 1)

I then cast the SHA-1 hash to an 8 byte void* and use that for
comparison. This may not be very safe but this is not exactly
cryptography. The number of possible hashes is the same as the address
space so it should be fine.

Yes I guess if you have a large number of comparisons it might be
faster.  I forget there are a lot of signature checks for the function
space stuff.

Computing the hash is O(n) just like strcmp, it really depends on the
constants.  I would just do the timing before I said anything.
Would it be an idea to extend ufc::finite_element with a hash_signature()?
Then you can compute the hash using hashlib in python during code creation.

Johan

Sounds like a good idea. Only it requires changes to DOLFIN, UFC, FFC
and SyFi...

Are there any objections to this?


I'm not sure that this is a good idea. It complicates UFC.

Garth

--
Anders


I looked there are a lot of libraries out there for this but OpenSSL
is by far the most pervasive.

-- Andy

On Tue, Oct 6, 2009 at 2:18 PM, Anders Logg <logg@xxxxxxxxx> wrote:
I'm contemplating adding a dependency to OpenSSL for computing hashes
of things like element signatures.

This is what breaks Kristian's code. Comparing element pointers does
not work since the UFC class creates its own elements which are
different from the ones existing in FunctionSpace classes.

Would there be any difficulties with depending on OpenSSL? Are there
simpler alternatives for a function that takes a string a returns a
message digest like the SHA1 function in OpenSSL?


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkrLmCAACgkQTuwUCDsYZdEk3ACgl7+tHjclHzLesh+g/1vOzIo9
tJsAn1fHGu+dzyA/ndNpy88/RFWNTbEB
=24AA
-----END PGP SIGNATURE-----

_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev
_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkrLndAACgkQTuwUCDsYZdFlWACePT0FglJU+NTPnOBXi/h7WcHC
E5EAn2vinxerlg6jTNuA4T+0Kp+CFuhz
=68Dm
-----END PGP SIGNATURE-----

_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev
_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev

_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev

------------------------------------------------------------------------

_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev




Follow ups

References