1// cc_fuzz_target test for sshsig verification.
2
3#include <stddef.h>
4#include <stdio.h>
5#include <stdint.h>
6#include <stdlib.h>
7#include <string.h>
8
9extern "C" {
10
11#include "includes.h"
12#include "sshkey.h"
13#include "ssherr.h"
14#include "sshbuf.h"
15#include "sshsig.h"
16#include "log.h"
17
18int LLVMFuzzerTestOneInput(const uint8_t* sig, size_t slen)
19{
20  static const char *data = "If everyone started announcing his nose had "
21      "run away, I don���t know how it would all end";
22  struct sshbuf *signature = sshbuf_from(sig, slen);
23  struct sshbuf *message = sshbuf_from(data, strlen(data));
24  struct sshkey *k = NULL;
25  struct sshkey_sig_details *details = NULL;
26  extern char *__progname;
27
28  log_init(__progname, SYSLOG_LEVEL_QUIET, SYSLOG_FACILITY_USER, 1);
29  sshsig_verifyb(signature, message, "castle", &k, &details);
30  sshkey_sig_details_free(details);
31  sshkey_free(k);
32  sshbuf_free(signature);
33  sshbuf_free(message);
34  return 0;
35}
36
37} // extern
38