# 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("//third_party/protobuf/proto_library.gni")

static_library("encrypted_messages") {
  sources = [
    "encrypted_message.proto",
    "message_encrypter.cc",
    "message_encrypter.h",
  ]

  public_deps = [
    ":encrypted_message_proto",
  ]

  deps = [
    "//base",
    "//crypto",
    "//third_party/boringssl:boringssl",
  ]
}

proto_library("encrypted_message_proto") {
  sources = [
    "encrypted_message.proto",
  ]
}

source_set("unit_tests") {
  testonly = true

  sources = [
    "message_encrypter_unittest.cc",
  ]

  deps = [
    ":encrypted_messages",
    "//base",
    "//testing/gtest",
    "//third_party/boringssl:boringssl",
  ]
}
