Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 2 Feb 2003 19:41:45 -0500 (EST)
From:      Don <don@calis.blacksun.org>
To:        current@FreeBSD.ORG
Subject:   Re: rand() is broken
Message-ID:  <20030202193215.E2519@calis.blacksun.org>
In-Reply-To: <200302030026.33781.ejb@lythe.org.uk>
References:  <200302021848.NAA19508@agamemnon.cnchost.com> <200302030007.01718.ejb@lythe.org.uk> <20030202190827.K2458@calis.blacksun.org> <200302030026.33781.ejb@lythe.org.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
> > It isn't a question of the API. It's a question of expected function
> > output.
>
> Then it's applicable not only to binary packages as Terry states, but any
> source that uses rand().
I think Terry mentioned binary packages simply because it is harder to fix
them than something available as source but I could be mistaken.

> I would say that depending on the internal algorithm used by rand() (or
> random()) is a bad idea;  however, I don't know what the relevant standards
> say about this, so I won't say any further.
>
> (Why is it a bad idea?  Because I'm not going to write software which makes
> this assumption; I'm sure that even if at some point in time all systems use
> an identical algorithm, at some point my software will have to run on a
> system which uses something different.  So if I really need it, I will take
> rand() from libc and place it in my own code.)
If only all developers were as good as you we would not have a problem.

> > A seperate function for those who need cryptographic randomness seems like
> > a _much_ better idea.
>
> I'm not sure Yet Another RNG API (of course arc4random() already exists) gains
> anything unless rand()/random() absolutely cannot be changed; and as I say
> I'm not convinced this is the case.
I am by no means convinced either. I do, however, think this is something
that should not be changed without a lot of consideration and testing.

Your point about arc4random() is a good one. Why depend on rand() for
cryptographic randomness when we already have arc4random()?

> Doesn't even the 0 / RAND_MAX fix change
> the algorithm?  Software which relies on that behaviour will break ..
Any software which always needs to get back maxint when it calls rand() is
hopelessly broken :) Besides which, I don't recall advocating that change
either.

-Don

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030202193215.E2519>