Use weak but dependency-free entropy source in PhutilOpaqueEnvelope
Use weak but dependency-free entropy source in PhutilOpaqueEnvelope

Summary:
If PHP doesn't have access to /dev/urandom, we currently fatal here before we can get to the setup check for it.

To avoid this, use a weaker random source. This doesn't need to be a strong random source, since it's only protecting against accidental disclosure through logs, etc.

Test Plan:
  - Dumped the resulting key and verified it "looked" random.
  - Dumped a bunch of them to a file and gzipped it, verified it got larger.
  - Had user in question apply patch and verified he got to the /dev/urandom setup check ("open_basedir configured crazy").

Reviewers: vrana, btrahan, asherkin

Reviewed By: asherkin

CC: aran

Differential Revision: https://secure.phabricator.com/D4561

newbeess/libphutil,codelabs-ch/libphutil,uhd-urz/libphutil,yangshiqi/libphutil,uber/libphutil,wxstars/libphutil,memsql/libphutil,schlaile/libphutil,uber/libphutil,fivestars/libphutil,eSpark/libphutil,uber/libphutil,Automattic/libphutil,schlaile/libphutil,aik099/libphutil,devurandom/libphutil,Symplicity/libphutil,aik099/libphutil,Symplicity/libphutil,librewiki/libphutil,Khan/libphutil,Khan/libphutil,eSpark/libphutil,wikimedia/phabricator-libphutil,eSpark/libphutil,fivestars/libphutil,Symplicity/libphutil,wxstars/libphutil,schlaile/libphutil,christopher-johnson/libphutil,julkiewicz/libphutil,r4nt/libphutil,Khan/libphutil,yangshiqi/libphutil,r4nt/libphutil,r4nt/libphutil,wikimedia/phabricator-libphutil,devurandom/libphutil,librewiki/libphutil,memsql/libphutil,christopher-johnson/libphutil,christopher-johnson/libphutil,wikimedia/phabricator-libphutil,zhihu/libphutil,julkiewicz/libphutil,uhd-urz/libphutil,aik099/libphutil,zhihu/libphutil,uhd-urz/libphutil,newbeess/libphutil,fivestars/libphutil,wxstars/libphutil,memsql/libphutil,PageUpPeopleOrg/libphutil-patches,newbeess/libphutil,codelabs-ch/libphutil,yangshiqi/libphutil,codelabs-ch/libphutil,zhihu/libphutil,PageUpPeopleOrg/libphutil-patches,devurandom/libphutil,Automattic/libphutil,julkiewicz/libphutil,Automattic/libphutil,PageUpPeopleOrg/libphutil-patches,librewiki/libphutil