docs: public static byte[] pubKeyTweakAdd(byte[] pubkey, byte[] tweak) throws AssertFailException {
          Preconditions.checkArgument(pubkey.length == 33 || pubkey.length == 65);
  
          ByteBuffer byteBuff = nativeECDSABuffer.get();
          if (byteBuff == null || byteBuff.capacity() < pubkey.length + tweak.length) {
              byteBuff = ByteBuffer.allocateDirect(pubkey.length + tweak.length);
              byteBuff.order(ByteOrder.nativeOrder());
              nativeECDSABuffer.set(byteBuff);
          }
          byteBuff.rewind();
          byteBuff.put(pubkey);
          byteBuff.put(tweak);
  
          byte[][] retByteArray;
          r.lock();
          try {
              retByteArray = secp256k1_pubkey_tweak_add(byteBuff, Secp256k1Context.getContext(), pubkey.length);
          } finally {
              r.unlock();
          }
  
          byte[] pubArr = retByteArray[0];
  
          int pubLen = (byte) new BigInteger(new byte[] { retByteArray[1][0] }).intValue() & 0xFF;
          int retVal = new BigInteger(new byte[] { retByteArray[1][1] }).intValue();
  
          assertEquals(pubArr.length, pubLen, "Got bad pubkey length.");
  
          assertEquals(retVal, 1, "Failed return value check.");
  
          return pubArr;
      }