Several updates to fuzz tests, including http://go/wvgerrit/124043 Add documentation for partners to run fuzzing http://go/wvgerrit/128224 Fix generic verify fuzz script http://go/wvgerrit/120507 Fuzzing: Add fuzzer for reportusage API http://go/wvgerrit/120503 Fuzzing: Add fuzzer for deactivate usageentry API http://go/wvgerrit/120463 Fuzzing: Add logic to exit fuzzer script http://go/wvgerrit/120444 Fuzzing: Add fuzzer for loadusageentry API Bug: 183154879 Bug: 202994773 Bug: 186785830 Test: test only code Change-Id: I877681461824c51bc82f0766a9973378aafadba7
63 lines
1.6 KiB
C++
63 lines
1.6 KiB
C++
#include <stdio.h>
|
|
#include <string.h>
|
|
|
|
#include "opk_dispatcher.h"
|
|
#include "opk_init.h"
|
|
#include "tos_transport_interface.h"
|
|
|
|
namespace wvoec {
|
|
|
|
void OpenOEMCryptoTASession() {
|
|
ODK_Message request;
|
|
ODK_Message response;
|
|
uint8_t response_buffer[0x1000];
|
|
uint8_t request_body[] = {
|
|
0x06, // TAG_UINT32
|
|
0x09, 0x00, 0x00, 0x00, // API value (0x09)
|
|
0x01, // TAG_BOOL
|
|
0x00, // value (false)
|
|
0x0a // TAG_EOM
|
|
};
|
|
request = ODK_Message_Create(request_body, sizeof(request_body));
|
|
OPK_DispatchMessage(&request, &response);
|
|
}
|
|
|
|
void InitializeOEMCryptoTA() {
|
|
ODK_Message init_request;
|
|
ODK_Message init_response;
|
|
uint8_t response_buffer[0x1000];
|
|
uint8_t init_request_body[] = {
|
|
0x06, // TAG_UINT32
|
|
0x01, 0x00, 0x00, 0x00, // API value(0x01)
|
|
0x0a // TAG_EOM
|
|
};
|
|
|
|
init_request =
|
|
ODK_Message_Create(init_request_body, sizeof(init_request_body));
|
|
OPK_DispatchMessage(&init_request, &init_response);
|
|
}
|
|
|
|
extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) {
|
|
OPK_Initialize();
|
|
InitializeOEMCryptoTA();
|
|
OpenOEMCryptoTASession();
|
|
return 0;
|
|
}
|
|
|
|
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
|
|
ODK_Message request;
|
|
ODK_Message response;
|
|
unsigned char response_buffer[0x1000];
|
|
|
|
uint8_t* input = new uint8_t[size];
|
|
memcpy(input, data, size);
|
|
|
|
request = ODK_Message_Create(input, size);
|
|
OPK_DispatchMessage(&request, &response);
|
|
|
|
delete[] input;
|
|
return 0;
|
|
}
|
|
|
|
} // namespace wvoec
|