browserify / browserify/randombytes
Implement browser getRandomValues without depending on crypto
- Dominant language
- JavaScript
- Stars
- 102
- Forks
- 47
- PR merge metrics
- No merged PRs in 30d
Description
This is based on this [discussion](https://github.com/browserify/crypto-browserify/issues/232)
TL;DR: I propose having an implementation of `getRandomValues` that does not depend on a native implementation of crypto.
I am having an issue with bundling my code and running it in a non-browser environment, using modules that depend on `crypto`, which depends on `randombytes`' implementation of `getRandomValues`. If I bundle my code in "browser" mode, I get the error `'Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11'`.
If I don't bundle it in browser mode but force browser fallback for `crypto-browserify` (which is necessary in my use-case, the javascript VM I'm using does not implement `crypto`), then I get a circular dependency and getRandomBytes is never implemented.
Is it possible to implement it in this package? If not is there any particular reason? And can I help in some way?
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing this package's browser getRandomValues implementation and the linked crypto-browserify discussion. Trace how randombytes is selected in browser mode and how the crypto-browserify fallback creates the reported circular dependency. Done means a supported implementation works in the described non-browser JavaScript VM without relying on a native crypto implementation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- cryptography
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100