package peergos.shared.crypto.random; import peergos.shared.crypto.*; public interface SafeRandom { void randombytes(byte[] b, int offset, int len); default byte[] randomBytes(int len) { byte[] res = new byte[len]; randombytes(res, 0, len); return res; } class Javascript implements SafeRandom { JSNaCl scriptJS = new JSNaCl(); @Override public void randombytes(byte[] b, int offset, int len) { byte[] r = scriptJS.randombytes(len); System.arraycopy(r, 0, b, offset, len); } } class Java implements SafeRandom { @Override public void randombytes(byte[] b, int offset, int len) { TweetNaCl.randomBytes(b, offset, len); } } }