<div dir="ltr"><div>Also it is good to make a new generator in function which</div><div>produces a nonce? E.g.</div><div><br></div><div>generateNonce :: forall (m :: * -> *). (MonadIO m, Functor m) => m Text</div><div>generateNonce =</div><div>  do g <- new</div><div>     nonce128urlT g</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">вс, 7 июня 2015 г. в 13:26, Geraldus <<a href="mailto:heraldhoi@gmail.com">heraldhoi@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi, Felipe! Thank you for sharing!<br><br><div>The one question I have is there some good way to generate unique nonces?</div></div><br><div class="gmail_quote"><div dir="ltr">сб, 23 мая 2015 г. в 22:01, Tobias Dammers <<a href="mailto:tdammers@gmail.com" target="_blank">tdammers@gmail.com</a>>:<br></div></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Looks useful; feature request: something like<br>
<br>
    nonce :: MonadIO => Int -> Generator<br>
<br>
(plus -url and -T flavors, obviously). I believe allowing the programmer<br>
to balance security vs. usability demands would be a good thing overall<br>
and worth a knob.<br>
<br>
-> m ByteString<br>
On Fri, May 22, 2015 at 08:06:18PM -0300, Felipe Lessa wrote:<br>
> (Please forgive me if you received multiple copies of this e-mail.)<br>
><br>
> Hello,<br>
><br>
> The nonce package [1] contains functions to easily generate<br>
> cryptographic nonces for many situations.  Some places where these<br>
> generated nonces can be used include:<br>
><br>
>   - Password recovery e-mail tokens.<br>
><br>
>   - XSRF protection tokens.<br>
><br>
>   - Session IDs sent on cookies.<br>
><br>
>   - Initialization vectors.<br>
><br>
> It uses an AES CPRNG periodically reseeded from /dev/urandom (or<br>
> equivalent).  It has no frills, no knobs, so it's hard to misuse.  It's<br>
> been available for an year but I just realized I've never properly<br>
> announced it.<br>
><br>
> Regrettably, I've seen many uses of the random package (System.Random)<br>
> when generating nonces.  It's a bad choice: it is not a<br>
> cryptographically secure PRNG, contains low entropy (64-bit state), and<br>
> its default usage is seeded predictably (using a constant seed).  Please<br>
> avoid using the random package for generating nonces at all costs.  In<br>
> its stead, use the nonce package or something similar.<br>
><br>
> Cheers,<br>
><br>
> [1] <a href="http://hackage.haskell.org/package/nonce" target="_blank">http://hackage.haskell.org/package/nonce</a><br>
><br>
> --<br>
> Felipe.<br>
><br>
<br>
<br>
<br>
> _______________________________________________<br>
> Haskell mailing list<br>
> <a href="mailto:Haskell@haskell.org" target="_blank">Haskell@haskell.org</a><br>
> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell</a><br>
<br>
<br>
--<br>
Tobias Dammers - <a href="mailto:tdammers@gmail.com" target="_blank">tdammers@gmail.com</a><br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
</blockquote></div></blockquote></div>