# Copyright 2015 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/test.gni")

source_set("webcrypto") {
  sources = [
    "algorithm_dispatch.cc",
    "algorithm_dispatch.h",
    "algorithm_implementation.cc",
    "algorithm_implementation.h",
    "algorithm_implementations.h",
    "algorithm_registry.cc",
    "algorithm_registry.h",
    "algorithms/aes.cc",
    "algorithms/aes.h",
    "algorithms/aes_cbc.cc",
    "algorithms/aes_ctr.cc",
    "algorithms/aes_gcm.cc",
    "algorithms/aes_kw.cc",
    "algorithms/asymmetric_key_util.cc",
    "algorithms/asymmetric_key_util.h",
    "algorithms/ec.cc",
    "algorithms/ec.h",
    "algorithms/ecdh.cc",
    "algorithms/ecdsa.cc",
    "algorithms/hkdf.cc",
    "algorithms/hmac.cc",
    "algorithms/pbkdf2.cc",
    "algorithms/rsa.cc",
    "algorithms/rsa.h",
    "algorithms/rsa_oaep.cc",
    "algorithms/rsa_pss.cc",
    "algorithms/rsa_sign.cc",
    "algorithms/rsa_sign.h",
    "algorithms/rsa_ssa.cc",
    "algorithms/secret_key_util.cc",
    "algorithms/secret_key_util.h",
    "algorithms/sha.cc",
    "algorithms/util.cc",
    "algorithms/util.h",
    "blink_key_handle.cc",
    "blink_key_handle.h",
    "crypto_data.cc",
    "crypto_data.h",
    "generate_key_result.cc",
    "generate_key_result.h",
    "jwk.cc",
    "jwk.h",
    "status.cc",
    "status.h",
    "webcrypto_impl.cc",
    "webcrypto_impl.h",
  ]

  deps = [
    "//base",
    "//crypto",
    "//crypto:platform",
    "//third_party/WebKit/public:blink",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "algorithms/aes_cbc_unittest.cc",
    "algorithms/aes_ctr_unittest.cc",
    "algorithms/aes_gcm_unittest.cc",
    "algorithms/aes_kw_unittest.cc",
    "algorithms/ecdh_unittest.cc",
    "algorithms/ecdsa_unittest.cc",
    "algorithms/hmac_unittest.cc",
    "algorithms/rsa_oaep_unittest.cc",
    "algorithms/rsa_pss_unittest.cc",
    "algorithms/rsa_ssa_unittest.cc",
    "algorithms/sha_unittest.cc",
    "algorithms/test_helpers.cc",
    "algorithms/test_helpers.h",
    "status_unittest.cc",
  ]

  deps = [
    ":webcrypto",
    "//base/test:test_support",
    "//components/test_runner:test_runner",
    "//crypto",
    "//crypto:platform",
    "//testing/gtest",
    "//testing/perf",
    "//third_party/WebKit/public:blink",
    "//third_party/re2",
  ]
}
