← Back to team overview

dolfin team mailing list archive

Re: Dependence on OpenSSL

 

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.
> >
> > --
> > Anders
> 
> 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

> 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
> 


Follow ups

References