docs: public static byte[] computePubkey(byte[] seckey) throws AssertFailException {
          Preconditions.checkArgument(seckey.length == 32);
  
          ByteBuffer byteBuff = nativeECDSABuffer.get();
          if (byteBuff == null || byteBuff.capacity() < seckey.length) {
              byteBuff = ByteBuffer.allocateDirect(seckey.length);
              byteBuff.order(ByteOrder.nativeOrder());
              nativeECDSABuffer.set(byteBuff);
          }
          byteBuff.rewind();
          byteBuff.put(seckey);
  
          byte[][] retByteArray;
  
          r.lock();
          try {
              retByteArray = secp256k1_ec_pubkey_create(byteBuff, Secp256k1Context.getContext());
          } finally {
              r.unlock();
          }
  
          byte[] pubArr = retByteArray[0];
          int pubLen = new BigInteger(new byte[] { retByteArray[1][0] }).intValue();
          int retVal = new BigInteger(new byte[] { retByteArray[1][1] }).intValue();
  
          assertEquals(pubArr.length, pubLen, "Got bad pubkey length.");
  
          return retVal == 0 ? new byte[0] : pubArr;
      }