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 9 extern "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 18 int 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