# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

[package]
name = "teaclave_types"
version = "0.5.0"
authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
description = "Teaclave types"
license = "Apache-2.0"
edition = "2021"

[features]
default = []
app = [
    "teaclave_crypto/app",
    "sgx_tprotected_fs/ufs",
]
mesalock_sgx = [
    "teaclave_crypto/mesalock_sgx",
    "sgx_tprotected_fs/tfs",
]
enclave_unit_test = ["teaclave_test_utils/mesalock_sgx"]

[dependencies]
log          = { version = "0.4.17", features = ["release_max_level_info"] }
anyhow       = { version = "1.0.26" }
rand         = { version = "0.8.5" }
hex          = { version = "0.4.0" }
serde        = { version = "1.0.92", features = ["derive"] }
serde_json   = { version = "1.0.39" }
toml         = { version = "0.5.3" }
ring         = { version = "0.16.5" }
thiserror    = { version = "1.0.9" }
url          = { version = "2.1.1", features = ["serde"]}
uuid         = { version = "0.8.1", features = ["v4", "v5", "serde"] }

sgx_tprotected_fs   = { version = "2.0.0", default-features = false, optional = true }
teaclave_test_utils = { path = "../tests/utils", optional = true }
teaclave_crypto     = { path = "../crypto" }

[target.'cfg(not(target_vendor = "teaclave"))'.dependencies]
sgx_types    = { version = "2.0.0" }
