blob: ff5bc46940c47bf132a802e44ddb904f46ccaf0d [file] [log] [blame]
# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//testing/libfuzzer/fuzzer_test.gni")
config("minizip_compiler_flags") {
if (is_clang) {
cflags = [ "-Wno-unused-function" ]
if (!is_nacl && (target_cpu == "x86" || target_cpu == "x64")) {
cflags += [
"-maes",
"-msse3",
"-msse4.1",
]
}
if (is_nacl) {
cflags += [ "-Wno-char-subscripts" ]
}
}
}
config("minizip_public_config") {
include_dirs = [
"src/lib/brg",
"//third_party/zlib",
]
defines = [
"HAVE_ZLIB",
"HAVE_PKCRYPT",
"HAVE_WZAES",
"HAVE_STDINT_H",
# This isn't actually low entropy. It just allows for an OS-specific
# random number generator.
"FORCE_LOWQUALITY_ENTROPY",
]
}
static_library("minizip") {
sources = [
"mz_os_chrome.cc",
"src/lib/brg/aes.h",
"src/lib/brg/aescrypt.c",
"src/lib/brg/aeskey.c",
"src/lib/brg/aesopt.h",
"src/lib/brg/aestab.c",
"src/lib/brg/aestab.h",
"src/lib/brg/brg_endian.h",
"src/lib/brg/brg_types.h",
"src/lib/brg/hmac.c",
"src/lib/brg/hmac.h",
"src/lib/brg/sha1.c",
"src/lib/brg/sha1.h",
"src/lib/brg/sha2.c",
"src/lib/brg/sha2.h",
"src/mz.h",
"src/mz_crypt.c",
"src/mz_crypt.h",
"src/mz_crypt_brg.c",
"src/mz_os.c",
"src/mz_os.h",
"src/mz_strm.c",
"src/mz_strm.h",
"src/mz_strm_mem.c",
"src/mz_strm_mem.h",
"src/mz_strm_pkcrypt.c",
"src/mz_strm_pkcrypt.h",
"src/mz_strm_wzaes.c",
"src/mz_strm_wzaes.h",
"src/mz_strm_zlib.c",
"src/mz_strm_zlib.h",
"src/mz_zip.c",
"src/mz_zip.h",
"src/mz_zip_rw.c",
"src/mz_zip_rw.h",
]
configs += [ ":minizip_compiler_flags" ]
public_configs = [ ":minizip_public_config" ]
deps = [
"//base",
"//third_party/zlib:zlib",
]
visibility = [
# NOTE: Modifying visibility list requires approval from security team.
":minizip_compress_fuzzer",
":minizip_uncompress_fuzzer",
"//chrome/browser/resources/chromeos/zip_archiver/cpp:zip_archiver_library",
]
}
fuzzer_test("minizip_compress_fuzzer") {
sources = [
"minizip_compress_fuzzer.cc",
]
deps = [
":minizip",
"//base",
"//base/test:test_support",
]
}
fuzzer_test("minizip_uncompress_fuzzer") {
sources = [
"minizip_uncompress_fuzzer.cc",
]
deps = [
":minizip",
]
seed_corpus = "minizip_uncompress_corpus"
}