public byte [] open(byte [] box) {
            if (box==null) return null;

            // prepare shared key
            if (this.sharedKey == null) before();

            return open_after(box, 0, box.length);
        }
public byte [ ] open ( byte [ ] box ) { if ( box == null ) return null ; if ( this . sharedKey == null ) before ( ) ; return open_after ( box , 0 , box . length ) ; }
/*
@description
Authenticates and decrypts the given box with peer's public key,
our secret key, and the given nonce.

Returns the original message, or null if authentication fails.