package peergos.shared.crypto.symmetric; import peergos.shared.crypto.*; import peergos.shared.crypto.random.JSNaCl; public interface Salsa20Poly1305 { byte[] secretbox(byte[] data, byte[] nonce, byte[] key); byte[] secretbox_open(byte[] cipher, byte[] nonce, byte[] key); class Javascript implements Salsa20Poly1305 { JSNaCl scriptJS = new JSNaCl(); @Override public byte[] secretbox(byte[] data, byte[] nonce, byte[] key) { return scriptJS.secretbox(data, nonce, key); } @Override public byte[] secretbox_open(byte[] cipher, byte[] nonce, byte[] key) { return scriptJS.secretbox_open(cipher, nonce, key); } } class Java implements Salsa20Poly1305 { @Override public byte[] secretbox(byte[] data, byte[] nonce, byte[] key) { return TweetNaCl.secretbox(data, nonce, key); } @Override public byte[] secretbox_open(byte[] cipher, byte[] nonce, byte[] key) { return TweetNaCl.secretbox_open(cipher, nonce, key); } } }