1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Multiply-included param traits file, so no include guard. 6 // Disabling the presubmit warning with: 7 // no-include-guard-because-multiply-included 8 9 #include "build/build_config.h" 10 #include "chrome/common/safe_browsing/archive_analyzer_results.h" 11 #include "chrome/common/safe_browsing/ipc_protobuf_message_macros.h" 12 #include "components/safe_browsing/buildflags.h" 13 #include "ipc/ipc_message_macros.h" 14 #include "ipc/ipc_message_protobuf_utils.h" 15 16 #if !BUILDFLAG(FULL_SAFE_BROWSING) 17 #error BUILDFLAG(FULL_SAFE_BROWSING) should be set. 18 #endif 19 20 IPC_ENUM_TRAITS_VALIDATE( 21 safe_browsing::ClientDownloadRequest_DownloadType, 22 safe_browsing::ClientDownloadRequest_DownloadType_IsValid(value)) 23 24 IPC_PROTOBUF_MESSAGE_TRAITS_BEGIN(safe_browsing::ClientDownloadRequest_Digests) 25 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_COMPLEX_MEMBER(sha256) 26 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_COMPLEX_MEMBER(sha1) 27 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_COMPLEX_MEMBER(md5) 28 IPC_PROTOBUF_MESSAGE_TRAITS_END() 29 30 IPC_PROTOBUF_MESSAGE_TRAITS_BEGIN( 31 safe_browsing::ClientDownloadRequest_CertificateChain_Element) 32 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_COMPLEX_MEMBER(certificate) 33 IPC_PROTOBUF_MESSAGE_TRAITS_END() 34 35 IPC_PROTOBUF_MESSAGE_TRAITS_BEGIN( 36 safe_browsing::ClientDownloadRequest_CertificateChain) 37 IPC_PROTOBUF_MESSAGE_TRAITS_REPEATED_COMPLEX_MEMBER(element) 38 IPC_PROTOBUF_MESSAGE_TRAITS_END() 39 40 IPC_PROTOBUF_MESSAGE_TRAITS_BEGIN( 41 safe_browsing::ClientDownloadRequest_SignatureInfo) 42 IPC_PROTOBUF_MESSAGE_TRAITS_REPEATED_COMPLEX_MEMBER(certificate_chain) 43 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_FUNDAMENTAL_MEMBER(trusted) 44 IPC_PROTOBUF_MESSAGE_TRAITS_REPEATED_COMPLEX_MEMBER(signed_data) 45 IPC_PROTOBUF_MESSAGE_TRAITS_END() 46 47 IPC_PROTOBUF_MESSAGE_TRAITS_BEGIN( 48 safe_browsing::ClientDownloadRequest_PEImageHeaders_DebugData) 49 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_COMPLEX_MEMBER(directory_entry) 50 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_COMPLEX_MEMBER(raw_data) 51 IPC_PROTOBUF_MESSAGE_TRAITS_END() 52 53 IPC_PROTOBUF_MESSAGE_TRAITS_BEGIN( 54 safe_browsing::ClientDownloadRequest_PEImageHeaders) 55 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_COMPLEX_MEMBER(dos_header) 56 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_COMPLEX_MEMBER(file_header) 57 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_COMPLEX_MEMBER(optional_headers32) 58 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_COMPLEX_MEMBER(optional_headers64) 59 IPC_PROTOBUF_MESSAGE_TRAITS_REPEATED_COMPLEX_MEMBER(section_header) 60 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_COMPLEX_MEMBER(export_section_data) 61 IPC_PROTOBUF_MESSAGE_TRAITS_REPEATED_COMPLEX_MEMBER(debug_data) 62 IPC_PROTOBUF_MESSAGE_TRAITS_END() 63 64 IPC_PROTOBUF_MESSAGE_TRAITS_BEGIN( 65 safe_browsing::ClientDownloadRequest_MachOHeaders_LoadCommand) 66 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_FUNDAMENTAL_MEMBER(command_id) 67 IPC_PROTOBUF_MESSAGE_TRAITS_REPEATED_COMPLEX_MEMBER(command) 68 IPC_PROTOBUF_MESSAGE_TRAITS_END() 69 70 IPC_PROTOBUF_MESSAGE_TRAITS_BEGIN( 71 safe_browsing::ClientDownloadRequest_MachOHeaders) 72 IPC_PROTOBUF_MESSAGE_TRAITS_REPEATED_COMPLEX_MEMBER(mach_header) 73 IPC_PROTOBUF_MESSAGE_TRAITS_REPEATED_COMPLEX_MEMBER(load_commands) 74 IPC_PROTOBUF_MESSAGE_TRAITS_END() 75 76 IPC_PROTOBUF_MESSAGE_TRAITS_BEGIN( 77 safe_browsing::ClientDownloadRequest_ImageHeaders) 78 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_COMPLEX_MEMBER(pe_headers) 79 IPC_PROTOBUF_MESSAGE_TRAITS_REPEATED_COMPLEX_MEMBER(mach_o_headers) 80 IPC_PROTOBUF_MESSAGE_TRAITS_END() 81 82 IPC_PROTOBUF_MESSAGE_TRAITS_BEGIN( 83 safe_browsing::ClientDownloadRequest_ArchivedBinary) 84 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_COMPLEX_MEMBER(file_basename) 85 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_FUNDAMENTAL_MEMBER(download_type) 86 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_COMPLEX_MEMBER(digests) 87 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_FUNDAMENTAL_MEMBER(length) 88 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_COMPLEX_MEMBER(signature) 89 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_COMPLEX_MEMBER(image_headers) 90 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_FUNDAMENTAL_MEMBER(is_encrypted) 91 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_FUNDAMENTAL_MEMBER(is_executable) 92 IPC_PROTOBUF_MESSAGE_TRAITS_OPTIONAL_FUNDAMENTAL_MEMBER(is_archive) 93 IPC_PROTOBUF_MESSAGE_TRAITS_END() 94 95 IPC_PROTOBUF_MESSAGE_TRAITS_BEGIN( 96 safe_browsing::ClientDownloadRequest_DetachedCodeSignature) 97 IPC_PROTOBUF_MESSAGE_TRAITS_REPEATED_COMPLEX_MEMBER(file_name) 98 IPC_PROTOBUF_MESSAGE_TRAITS_REPEATED_COMPLEX_MEMBER(contents) 99 IPC_PROTOBUF_MESSAGE_TRAITS_END() 100 101 IPC_STRUCT_TRAITS_BEGIN(safe_browsing::ArchiveAnalyzerResults) 102 IPC_STRUCT_TRAITS_MEMBER(success) 103 IPC_STRUCT_TRAITS_MEMBER(has_executable) 104 IPC_STRUCT_TRAITS_MEMBER(has_archive) 105 IPC_STRUCT_TRAITS_MEMBER(archived_binary) 106 IPC_STRUCT_TRAITS_MEMBER(archived_archive_filenames) 107 #if defined(OS_MAC) 108 IPC_STRUCT_TRAITS_MEMBER(signature_blob) 109 IPC_STRUCT_TRAITS_MEMBER(detached_code_signatures) 110 #endif // OS_MAC 111 IPC_STRUCT_TRAITS_MEMBER(file_count) 112 IPC_STRUCT_TRAITS_MEMBER(directory_count) 113 IPC_STRUCT_TRAITS_END() 114