# Copyright 2019 The Fuchsia 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("//build/unification/zx_library.gni")

zx_library("zircon-crypto") {
  shared = true
  sdk = "shared"
  sdk_headers = [
    "crypto/aead.h",
    "crypto/bytes.h",
    "crypto/cipher.h",
    "crypto/digest.h",
    "crypto/hkdf.h",
    "crypto/hmac.h",
    "crypto/secret.h",
  ]
  sources = [
    "aead.cc",
    "bytes.cc",
    "cipher.cc",
    "digest.cc",
    "error.cc",
    "hkdf.cc",
    "hmac.cc",
    "secret.cc",
  ]
  deps = [
    "//third_party/boringssl",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/zircon-internal",
    "//zircon/system/ulib/explicit-memory",
  ]
  configs += [ "//build/config/fuchsia:static_cpp_standard_library" ]
}

zx_library("zircon-crypto-static") {
  static = true
  sdk = "source"
  sdk_headers = [
    "crypto/aead.h",
    "crypto/bytes.h",
    "crypto/cipher.h",
    "crypto/digest.h",
    "crypto/hkdf.h",
    "crypto/hmac.h",
    "crypto/secret.h",
  ]
  sources = [
    "aead.cc",
    "bytes.cc",
    "cipher.cc",
    "digest.cc",
    "error.cc",
    "hkdf.cc",
    "hmac.cc",
    "secret.cc",
  ]
  deps = [
    "//third_party/boringssl",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/zircon-internal",
    "//zircon/system/ulib/explicit-memory",
  ]
  configs += [ "//build/config/fuchsia:static_cpp_standard_library" ]
}

group("tests") {
  testonly = true
  deps = [ "test:tests" ]
}
