On 21 March 2013 06:54, wren ng thornton <w...@freegeek.org> wrote:
> One concern with the above approach: is "siphash" a sufficiently generic
> name, or is it just one hashing method that happens to deflect this DoS
> issue? I haven't read the paper, so...

One could of course generalize the above method using something like:

-- A type hashed as h
newtype Hashed h a = Hashed a

instance (HashableAs h a) => Hashable (Hashed h a) where
  hashWithSalt = hashWithSaltAs

class HashableAs h a where
  hashWithSaltAs :: Int -> Hashed h a -> Int

data Sip

sip :: a -> Hashed Sip a
sip = Hashed

instance HashableAs Sip Text where
  hashWithSaltAs salt (Hashed x) = sipHashWithSalt salt x

instance HashableAs Sip ByteString where
  ...

Regards,

Bas

_______________________________________________
Haskell-platform mailing list
Haskell-platform@projects.haskell.org
http://projects.haskell.org/cgi-bin/mailman/listinfo/haskell-platform

Reply via email to