# Copyright 2019 The Fuchsia Authors
#
# Use of this source code is governed by a MIT-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/MIT

zx_library("crypto") {
  kernel = true
  sources = [
    "global_prng.cc",
    "global_prng_unittest.cc",
    "prng.cc",
    "prng_unittest.cc",
  ]
  deps = [
    "$zx/kernel/lib/cmdline",
    "$zx/kernel/lib/fbl",
    "$zx/kernel/lib/ktl",
    "$zx/kernel/lib/unittest",
    "$zx/system/ulib/explicit-memory",
    "$zx/third_party/ulib/boringssl",
    "entropy",
  ]
  public_deps = [
    # <lib/crypto/prng.h> has #include <ktl/atomic.h>.
    "$zx/kernel/lib/ktl:headers",

    # lib/crypto/prng.h has #include <openssl/sha.h>.
    "$zx/third_party/ulib/boringssl:headers",

    # <lib/crypto/entropy/jitterentropy_collector.h> has #include <lib/jitterentropy/jitterentropy.h>.
    "$zx/third_party/lib/jitterentropy:headers",
  ]
}
