# Copyright 2017 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.

source_set("clock") {
  sources = [
    "clock.h",
  ]
}

static_library("encrypted_message_util") {
  sources = [
    "encrypted_message_util.cc",
    "encrypted_message_util.h",
  ]
  configs += [ "//third_party/cobalt:cobalt_config" ]

  deps = [
    "//garnet/public/lib/fxl",
    "//third_party/cobalt:cobalt_proto",
  ]
}

static_library("datetime_util") {
  sources = [
    "datetime_util.cc",
    "datetime_util.h",
  ]
  configs += [ "//third_party/cobalt:cobalt_config" ]
  deps = [
    "//third_party/cobalt/config:cobalt_config_proto",
  ]
}

static_library("pem_util") {
  sources = [
    "pem_util.cc",
    "pem_util.h",
  ]
  configs += [ "//third_party/cobalt:cobalt_config" ]
  deps = [
    "//garnet/public/lib/fxl",
    "//third_party/cobalt/util/crypto_util",
  ]
}

static_library("status") {
  sources = [
    "status.cc",
    "status_codes.h",
    "status.h",
  ]
  configs += [ "//third_party/cobalt:cobalt_config" ]
}
