Updated certificate_provisioning_fuzzer

Implemented google c++ code style changes for certificate_provisioning_fuzzer

exec/s: 97
Test: ./certificate_provisioning_fuzzer
Bug: 312374669

Change-Id: I5501a2c2237ea5f2d2931465b4391c29c4500ce3
This commit is contained in:
Onkar Shinde
2023-11-28 12:14:13 +00:00
committed by Aditya Wazir
parent f3c22ff3f1
commit 32acc95f8f

View File

@@ -44,147 +44,147 @@ static constexpr uint8_t kProvisioningType[] = {
SignedProvisioningMessage_ProvisioningType_INTEL_SIGMA_210}; SignedProvisioningMessage_ProvisioningType_INTEL_SIGMA_210};
class CertificateProvisioningFuzzer { class CertificateProvisioningFuzzer {
public: public:
CertificateProvisioningFuzzer(const uint8_t *data, size_t size) CertificateProvisioningFuzzer(const uint8_t *data, size_t size)
: mFdp(data, size){}; : fdp_(data, size){};
void process(); void Process();
private: private:
FuzzedDataProvider mFdp; FuzzedDataProvider fdp_;
}; };
void createResponseMessage(std::string &responseMessage, void CreateResponseMessage(std::string &response_message,
FuzzedDataProvider &mFdp) { FuzzedDataProvider &fdp) {
if (mFdp.ConsumeBool()) { if (fdp.ConsumeBool()) {
DrmCertificate drmCertificate; DrmCertificate drm_certificate;
DrmCertificate_Algorithm algorithm = DrmCertificate_Algorithm algorithm =
(DrmCertificate_Algorithm)mFdp.ConsumeIntegralInRange<int32_t>( (DrmCertificate_Algorithm)fdp.ConsumeIntegralInRange<int32_t>(
DrmCertificate_Algorithm:: DrmCertificate_Algorithm::
DrmCertificate_Algorithm_UNKNOWN_ALGORITHM, DrmCertificate_Algorithm_UNKNOWN_ALGORITHM,
DrmCertificate_Algorithm::DrmCertificate_Algorithm_ECC_SECP521R1); DrmCertificate_Algorithm::DrmCertificate_Algorithm_ECC_SECP521R1);
drmCertificate.set_algorithm(algorithm); drm_certificate.set_algorithm(algorithm);
std::string setDrm; std::string set_drm;
if (mFdp.ConsumeBool()) { if (fdp.ConsumeBool()) {
drmCertificate.SerializeToString(&setDrm); drm_certificate.SerializeToString(&set_drm);
} else { } else {
setDrm = mFdp.ConsumeRandomLengthString(kMaxByte); set_drm = fdp.ConsumeRandomLengthString(kMaxByte);
} }
SignedDrmCertificate signedDrmCertificate; SignedDrmCertificate signed_drm_certificate;
signedDrmCertificate.set_drm_certificate(setDrm); signed_drm_certificate.set_drm_certificate(set_drm);
std::string setDevice; std::string set_device;
if (mFdp.ConsumeBool()) { if (fdp.ConsumeBool()) {
signedDrmCertificate.SerializeToString(&setDevice); signed_drm_certificate.SerializeToString(&set_device);
} else { } else {
setDevice = mFdp.ConsumeRandomLengthString(kMaxByte); set_device = fdp.ConsumeRandomLengthString(kMaxByte);
} }
ProvisioningResponse provisioningResponse; ProvisioningResponse provisioning_response;
ProvisioningResponse_ProvisioningStatus status = ProvisioningResponse_ProvisioningStatus status =
(ProvisioningResponse_ProvisioningStatus)mFdp.ConsumeIntegralInRange< (ProvisioningResponse_ProvisioningStatus)fdp.ConsumeIntegralInRange<
int32_t>( int32_t>(
ProvisioningResponse_ProvisioningStatus:: ProvisioningResponse_ProvisioningStatus::
ProvisioningResponse_ProvisioningStatus_NO_ERROR, ProvisioningResponse_ProvisioningStatus_NO_ERROR,
ProvisioningResponse_ProvisioningStatus:: ProvisioningResponse_ProvisioningStatus::
ProvisioningResponse_ProvisioningStatus_REVOKED_DEVICE_SERIES); ProvisioningResponse_ProvisioningStatus_REVOKED_DEVICE_SERIES);
provisioningResponse.set_status(status); provisioning_response.set_status(status);
if (mFdp.ConsumeBool()) { if (fdp.ConsumeBool()) {
provisioningResponse.set_device_certificate(setDevice); provisioning_response.set_device_certificate(set_device);
} }
std::string setMessage; std::string set_message;
if (mFdp.ConsumeBool()) { if (fdp.ConsumeBool()) {
provisioningResponse.SerializeToString(&setMessage); provisioning_response.SerializeToString(&set_message);
} else { } else {
setMessage = mFdp.ConsumeRandomLengthString(kMaxByte); set_message = fdp.ConsumeRandomLengthString(kMaxByte);
} }
SignedProvisioningMessage signedProvisioningMessage; SignedProvisioningMessage signed_provisioning_message;
if (mFdp.ConsumeBool()) { if (fdp.ConsumeBool()) {
signedProvisioningMessage.set_message(setMessage); signed_provisioning_message.set_message(set_message);
} else { } else {
signedProvisioningMessage.set_message( signed_provisioning_message.set_message(
mFdp.ConsumeRandomLengthString(kMaxByte)); fdp.ConsumeRandomLengthString(kMaxByte));
} }
signedProvisioningMessage.set_signature( signed_provisioning_message.set_signature(
mFdp.ConsumeRandomLengthString(kMaxByte)); fdp.ConsumeRandomLengthString(kMaxByte));
if (mFdp.ConsumeBool()) { if (fdp.ConsumeBool()) {
signedProvisioningMessage.set_provisioning_type( signed_provisioning_message.set_provisioning_type(
(SignedProvisioningMessage_ProvisioningType)mFdp.PickValueInArray( (SignedProvisioningMessage_ProvisioningType)fdp.PickValueInArray(
kProvisioningType)); kProvisioningType));
} else { } else {
signedProvisioningMessage.set_provisioning_type( signed_provisioning_message.set_provisioning_type(
(SignedProvisioningMessage_ProvisioningType) (SignedProvisioningMessage_ProvisioningType)
mFdp.ConsumeIntegral<uint8_t>()); fdp.ConsumeIntegral<uint8_t>());
} }
signedProvisioningMessage.set_oemcrypto_core_message( signed_provisioning_message.set_oemcrypto_core_message(
mFdp.ConsumeRandomLengthString(kMaxByte)); fdp.ConsumeRandomLengthString(kMaxByte));
if (mFdp.ConsumeBool()) { if (fdp.ConsumeBool()) {
signedProvisioningMessage.SerializeToString(&responseMessage); signed_provisioning_message.SerializeToString(&response_message);
} else { } else {
responseMessage = mFdp.ConsumeRandomLengthString(kMaxByte); response_message = fdp.ConsumeRandomLengthString(kMaxByte);
} }
} }
responseMessage = response_message =
(mFdp.ConsumeBool() ? "\"signedResponse\": \"" : "") + (fdp.ConsumeBool() ? "\"signedResponse\": \"" : "") +
(mFdp.ConsumeBool() ? Base64SafeEncode(responseMessage) : "") + (fdp.ConsumeBool() ? Base64SafeEncode(response_message) : "") +
(mFdp.ConsumeBool() ? "\"" : ""); (fdp.ConsumeBool() ? "\"" : "");
} }
void CertificateProvisioningFuzzer::process() { void CertificateProvisioningFuzzer::Process() {
FileSystem fileSystem; FileSystem file_system;
metrics::CryptoMetrics cryptoMetrics; metrics::CryptoMetrics crypto_metrics;
CertificateProvisioning certificateProvisioning(&cryptoMetrics); CertificateProvisioning certificateProvisioning(&crypto_metrics);
certificateProvisioning.Init( certificateProvisioning.Init(
mFdp.ConsumeRandomLengthString(kMaxByte) /* service_certificate */ fdp_.ConsumeRandomLengthString(kMaxByte) /* service_certificate */
); );
while (mFdp.remaining_bytes()) { while (fdp_.remaining_bytes()) {
auto invokeCertificateProvisioningAPI = auto invokeCertificateProvisioningAPI =
mFdp.PickValueInArray<const std::function<void()>>( fdp_.PickValueInArray<const std::function<void()>>(
{[&]() { {[&]() {
CdmProvisioningRequest request; CdmProvisioningRequest request;
std::string defaultUrl; std::string default_url;
certificateProvisioning.GetProvisioningRequest( certificateProvisioning.GetProvisioningRequest(
&fileSystem, &file_system,
(RequestedSecurityLevel)mFdp.ConsumeBool() (RequestedSecurityLevel)fdp_.ConsumeBool()
? kLevelDefault ? kLevelDefault
: kLevel3, /* requested_security_level */ : kLevel3, /* requested_security_level */
(CdmCertificateType)mFdp.ConsumeIntegralInRange<int32_t>( (CdmCertificateType)fdp_.ConsumeIntegralInRange<int32_t>(
kMinCdmCertificateType, kMinCdmCertificateType,
kMaxCdmCertificateType), /* cert_type */ kMaxCdmCertificateType), /* cert_type */
mFdp.ConsumeRandomLengthString( fdp_.ConsumeRandomLengthString(
kMaxByte), /* cert_authority */ kMaxByte), /* cert_authority */
mFdp.ConsumeRandomLengthString(kMaxByte), /* origin */ fdp_.ConsumeRandomLengthString(kMaxByte), /* origin */
mFdp.ConsumeRandomLengthString(kMaxByte), /* spoid */ fdp_.ConsumeRandomLengthString(kMaxByte), /* spoid */
mFdp.ConsumeBool() ? &request : nullptr, &defaultUrl); fdp_.ConsumeBool() ? &request : nullptr, &default_url);
}, },
[&]() { [&]() {
CdmProvisioningResponse responseMessage; CdmProvisioningResponse response_message;
createResponseMessage(responseMessage, mFdp); CreateResponseMessage(response_message, fdp_);
std::string cert; std::string cert;
std::string wrappedKey; std::string wrapped_key;
certificateProvisioning.HandleProvisioningResponse( certificateProvisioning.HandleProvisioningResponse(
&fileSystem, responseMessage, &cert, &wrappedKey); &file_system, response_message, &cert, &wrapped_key);
}, },
[&]() { [&]() {
std::string defaultUrl; std::string default_url;
CertificateProvisioning::GetProvisioningServerUrl( CertificateProvisioning::GetProvisioningServerUrl(
mFdp.ConsumeBool() ? &defaultUrl : nullptr); fdp_.ConsumeBool() ? &default_url : nullptr);
}}); }});
invokeCertificateProvisioningAPI(); invokeCertificateProvisioningAPI();
@@ -192,7 +192,7 @@ void CertificateProvisioningFuzzer::process() {
} }
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
CertificateProvisioningFuzzer certificateProvisioningFuzzer(data, size); CertificateProvisioningFuzzer certificate_provisioning_fuzzer(data, size);
certificateProvisioningFuzzer.process(); certificate_provisioning_fuzzer.Process();
return 0; return 0;
} }