docs: protected ByteBuffer toBytes(BigInteger value, int significantBytes) {
      byte[] rawBytes = value.toByteArray();
      byte[] result;
      if (rawBytes.length == significantBytes) {
        result = rawBytes;
      } else {
        result = new byte[significantBytes];
        int start, length;
        if (rawBytes[0] == 0) {
          // that's a sign byte, ignore (it can cause rawBytes.length == significantBytes + 1)
          start = 1;
          length = rawBytes.length - 1;
        } else {
          start = 0;
          length = rawBytes.length;
        }
        System.arraycopy(rawBytes, start, result, significantBytes - length, length);
      }
      return ByteBuffer.wrap(result);
    }