### Question:
CertificateVerify { public static boolean verify( final byte[] signature, final byte[] data, final PublicKey publicKey, final boolean isClient) { final byte[] prefix = isClient ? CLIENT_PREFIX : SERVER_PREFIX; final byte[] toVerify = Bytes.concat(prefix, data); try { final Signature sig = Signature.getInstance(ALGORITHM); sig.setParameter(PARAMETER_SPEC); sig.initVerify(publicKey); sig.update(toVerify); return sig.verify(signature); } catch (final GeneralSecurityException e) { throw new RuntimeException(e); } }  static byte[] sign(final byte[] data, final PrivateKey key, final boolean isClient); static boolean verify(
      final byte[] signature,
      final byte[] data,
      final PublicKey publicKey,
      final boolean isClient);  }### Answer:
@Test public void verifyKnown() { final byte[] sign = Hex.dehex( "868b5cae8578cbb3a5e4f2290e164623565bf8671eda69c2f225c138429f32b29e99dcb284bd0b1926579682a5130c79e5657d375e3f92bcf4ac7f8f47f999e1e5034c91f569a6fe908b1b9b8bc6064201359640f9e5dfd290dc8a3450f4dd474bac948c3bb09a016bbd01f25b19e8d305ccfb690e1030331d5769fcd89eba8522deda6f070ca476f416eecb44f3996c1a7be07243f8fbf04ea5baef55ebbf8fa2d037d1b032796d99e4dc44194a99e3c2e93d0dc6bb365c3685070ba4aea94693aa73811cfcb5d56ea3295779562d23bba5838eee1121b9851bb795862f1b060b7a6611577ada8f76da34ff11a65c1380985e47996363726a2d739ac84754a1"); final byte[] hash = Hex.dehex("173322914473dfc8651a3f549eb7118a706be48f305aa738429d9af647f7722b"); final PublicKey publicKey = KeyUtil.getPublicKey("src/test/resources/quic-go.der"); Assert.assertTrue(CertificateVerify.verify(sign, hash, publicKey, false)); }