2023-05-30 16:08:18 +01:00
|
|
|
[package]
|
|
|
|
name = "tor-keymgr"
|
2023-08-01 15:51:25 +01:00
|
|
|
version = "0.2.0"
|
2023-05-30 16:08:18 +01:00
|
|
|
authors = ["The Tor Project, Inc.", "Gabriela Moldovan <gabi@torproject.org>"]
|
|
|
|
edition = "2021"
|
|
|
|
rust-version = "1.65"
|
|
|
|
license = "MIT OR Apache-2.0"
|
|
|
|
homepage = "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home"
|
|
|
|
description = "Key management for the Arti Tor implementation"
|
|
|
|
keywords = ["tor", "arti"]
|
|
|
|
categories = ["cryptography"]
|
|
|
|
repository = "https://gitlab.torproject.org/tpo/core/arti.git/"
|
|
|
|
|
2023-06-21 01:02:32 +01:00
|
|
|
[features]
|
2023-06-29 17:43:12 +01:00
|
|
|
default = []
|
2023-06-21 01:02:32 +01:00
|
|
|
# Enable experimental APIs that are not yet officially supported.
|
|
|
|
#
|
|
|
|
# These APIs are not covered by semantic versioning. Using this
|
|
|
|
# feature voids your "semver warrantee".
|
2023-06-29 22:09:52 +01:00
|
|
|
|
tor-keymgr: Add ArtiNativeKeystoreConfig.
Previously, the keystore config consisted of a single field in
`StorageConfig`, which encoded 2 bits of information: whether the
keystore is enabled, and its root directory:
```
[storage]
# use this path, fail if compiled out
# keystore = "/path/to/arti/keystore"
#
# use default path, fail if compiled out
# keystore = true
#
# disable
# keystore = false
```
This commit adds `ArtiNativeKeystoreConfig`, which will replace the
multi-purpose `keystore` field. The new config will look like this:
```
#[storage.keystore]
# Whether the keystore is enabled.
#
# If the `keymgr` feature is enabled and this option is:
# * set to false, we will ignore the configured keystore path.
# * set to "auto", the configured keystore, or the default keystore, if the
# keystore path is not specified, will be used
# * set to true, the configured keystore, or the default keystore, if the
# keystore path is not specified, will be used
#
# If the `keymgr` feature is disabled and this option is:
# * set to false, we will ignore the configured keystore path.
# * set to "auto", we will ignore the configured keystore path.
#
# Setting this option to true when the `keymgr` feature is disabled is a
# configuration error.
#enabled = "auto"
# The root directory of the arti keystore
#path = "${ARTI_LOCAL_DATA}/keystore"
```
While `ArtiNativeKeystoreConfig` currently only has 2 fields, `enabled`
and `path`, future versions of the keystore might require additional
config options.
2023-07-12 19:07:13 +01:00
|
|
|
keymgr = ["__is_experimental", "tor-error/experimental", "tor-config/experimental"]
|
2023-06-21 01:02:32 +01:00
|
|
|
__is_experimental = []
|
2023-08-01 13:32:20 +01:00
|
|
|
full = ["fs-mistrust/full", "tor-error/full", "tor-hscrypto/full", "tor-llcrypto/full", "tor-config/full"]
|
2023-06-29 22:09:52 +01:00
|
|
|
experimental = ["keymgr"]
|
2023-06-21 01:02:32 +01:00
|
|
|
|
2023-05-30 16:08:18 +01:00
|
|
|
[dependencies]
|
tor-keymgr: Add ArtiNativeKeystoreConfig.
Previously, the keystore config consisted of a single field in
`StorageConfig`, which encoded 2 bits of information: whether the
keystore is enabled, and its root directory:
```
[storage]
# use this path, fail if compiled out
# keystore = "/path/to/arti/keystore"
#
# use default path, fail if compiled out
# keystore = true
#
# disable
# keystore = false
```
This commit adds `ArtiNativeKeystoreConfig`, which will replace the
multi-purpose `keystore` field. The new config will look like this:
```
#[storage.keystore]
# Whether the keystore is enabled.
#
# If the `keymgr` feature is enabled and this option is:
# * set to false, we will ignore the configured keystore path.
# * set to "auto", the configured keystore, or the default keystore, if the
# keystore path is not specified, will be used
# * set to true, the configured keystore, or the default keystore, if the
# keystore path is not specified, will be used
#
# If the `keymgr` feature is disabled and this option is:
# * set to false, we will ignore the configured keystore path.
# * set to "auto", we will ignore the configured keystore path.
#
# Setting this option to true when the `keymgr` feature is disabled is a
# configuration error.
#enabled = "auto"
# The root directory of the arti keystore
#path = "${ARTI_LOCAL_DATA}/keystore"
```
While `ArtiNativeKeystoreConfig` currently only has 2 fields, `enabled`
and `path`, future versions of the keystore might require additional
config options.
2023-07-12 19:07:13 +01:00
|
|
|
derive_builder = { version = "0.11.2", package = "derive_builder_fork_arti" }
|
2023-05-30 16:08:18 +01:00
|
|
|
derive_more = "0.99.3"
|
2023-07-10 14:20:17 +01:00
|
|
|
downcast-rs = "1.2.0"
|
2023-06-20 15:29:15 +01:00
|
|
|
dyn-clone = "1.0.11"
|
2023-08-01 15:57:55 +01:00
|
|
|
fs-mistrust = { path = "../fs-mistrust", version = "0.7.3", features = ["serde", "walkdir"] }
|
2023-07-17 15:08:38 +01:00
|
|
|
itertools = "0.11.0"
|
2023-07-24 12:01:59 +01:00
|
|
|
rand = "0.8"
|
tor-keymgr: Add ArtiNativeKeystoreConfig.
Previously, the keystore config consisted of a single field in
`StorageConfig`, which encoded 2 bits of information: whether the
keystore is enabled, and its root directory:
```
[storage]
# use this path, fail if compiled out
# keystore = "/path/to/arti/keystore"
#
# use default path, fail if compiled out
# keystore = true
#
# disable
# keystore = false
```
This commit adds `ArtiNativeKeystoreConfig`, which will replace the
multi-purpose `keystore` field. The new config will look like this:
```
#[storage.keystore]
# Whether the keystore is enabled.
#
# If the `keymgr` feature is enabled and this option is:
# * set to false, we will ignore the configured keystore path.
# * set to "auto", the configured keystore, or the default keystore, if the
# keystore path is not specified, will be used
# * set to true, the configured keystore, or the default keystore, if the
# keystore path is not specified, will be used
#
# If the `keymgr` feature is disabled and this option is:
# * set to false, we will ignore the configured keystore path.
# * set to "auto", we will ignore the configured keystore path.
#
# Setting this option to true when the `keymgr` feature is disabled is a
# configuration error.
#enabled = "auto"
# The root directory of the arti keystore
#path = "${ARTI_LOCAL_DATA}/keystore"
```
While `ArtiNativeKeystoreConfig` currently only has 2 fields, `enabled`
and `path`, future versions of the keystore might require additional
config options.
2023-07-12 19:07:13 +01:00
|
|
|
serde = { version = "1.0.103", features = ["derive"] }
|
2023-05-30 16:08:18 +01:00
|
|
|
ssh-key = { version = "0.5.1", features = ["std"] }
|
|
|
|
thiserror = "1"
|
2023-08-01 15:57:55 +01:00
|
|
|
tor-config = { path = "../tor-config", version = "0.9.3" }
|
|
|
|
tor-error = { path = "../tor-error", version = "0.5.3" }
|
2023-06-30 13:38:16 +01:00
|
|
|
tor-hscrypto = { path = "../tor-hscrypto", version = "0.3.0" }
|
2023-06-30 13:42:21 +01:00
|
|
|
tor-llcrypto = { path = "../tor-llcrypto", version = "0.5.2", features = ["keymgr"] }
|
2023-06-16 17:03:53 +01:00
|
|
|
zeroize = "1"
|
2023-06-21 01:02:32 +01:00
|
|
|
|
2023-06-28 19:40:20 +01:00
|
|
|
[dev-dependencies]
|
|
|
|
tempfile = "3"
|
2023-08-01 15:57:55 +01:00
|
|
|
tor-basic-utils = { path = "../tor-basic-utils", version = "0.7.3" }
|
2023-06-28 19:40:20 +01:00
|
|
|
|
2023-06-21 01:02:32 +01:00
|
|
|
[package.metadata.docs.rs]
|
|
|
|
all-features = true
|
|
|
|
rustdoc-args = ["--cfg", "docsrs"]
|