fc2eedfc66
add offline ecash library minor changes in coconut benchmarks add ecash smart contract change contract traits from coconut to ecash first wave of andrew's suggestion first wave of andrew's suggestion second wave of andrew's suggestion for ecash lib andrew's suggestion for ecash contract licensing commit safety comments for most unwraps more unwrap handling change chrono crate for time latest cargo lock error revamp small visibility fix small fix remove indexedmap from contract + some tweaks add cw2 version in ecash contract remove envryption key from contract change types from coconut to ecash types adapt api model for credential issuance adapt issued credential storage on API add signatures cache on API change API routes for new blind signing modify issued_credential table add issuance logic client-side credential and signature storage client side utils for credential issuance first wave of fix some of andrew's suggestions remove encryption key from deposit freepass issuance client side freepass issuance API side andrew's suggested fixes other suggested fix adapt change from PR below allow offline verification flag credential spending models credential spending models for client credential preperation for the client credential preperation for the client credential storage for spending on client bloom filter for API spent credential storage on validators API route for spending online and offline ecash API routes in the client lib credential storage on gateway ecash verifier to replace coconut verifier accept credentials on gateway bandwidth expiration for gateways client ask for more bandwidth if it runs out credential import adapt nym validator rewarder and sdk fix tests api tests and add constants cargo fmt and lock and small test fix cargo fmt and lock and small test fix cargo lock move stuff where they belong in ecash and static parameters move some constants, error handling and phase out time crate error revamp part 2 secret key by ref instead of clone change l in wallet and v visibility rework payinfo rework monster tuples fix expiration date signature cloning minor fixes final bits and bobs fixes final bits and bobs fixes rename l accessor to tickets_spent wave of fixes second wave of fixes change hash domain value removed benchmark flag remove useless stringification in storage nuke Bandwidth voucher change timestamps to offsetdatetime key name change post-rebase fixes update nym-connect 'time' dep due to broken semver upload ecash contract to the build server make wasm zknym-lib compile but it won't work properly just yet make wasm zknym-lib compile but it won't work properly just yet fix typo in ecash contract deps make sure to use 0.1.0 sphinx packet optimise pairings in 'check_vk_pairing' derive serde for ecash types simplified g1 tuple byte conversion further optimise the pairing unified signature type + renamed nym-api coconut module to ecash using bincode serialiser for more complex binary types using multimiller loop instead of rayon for verifying coin indices signatures batching signature verification wherever possible feature-locked rayon clippy refactor ecash contract a bit + introduce deposit storage reworked find_proposal_id various minor fixed add offline_zk_nyms to nym-node everywhere add missing #query change test value to fit new serialization optimised deposits storage removed duplicate decompression code using deposit_id instead of transaction hash removed freepasses split up ecash handling unified shared state fixed deposit_id parsing log recovered deposit id removed online verification add detailed build info to ecash contract fixed deserialisation of deposit amount received from nyxd queries changed deposit to only persist attached pubkey first iteration of split of verification and redemption basic tool for setting up new network expanded the tool with the option to bypass DKG rename + init network without DKG setting up locally running apis ecash key migration more local functionalities wip fixing sql schemas gateway immediately submitting redemption proposal and getting it passed if valid most of the gateway logic for split redemption with error recovery fixed gateway not persisting ecash signers simplify creation of compatible client create properly serialised ecash key from the beginning rebuild missing tickets and proposals on startup stop ticket issuance during DKG transition fixing build issues split out ecash storage on nym-api side master-verification-key route caching all the signatures and keys implemented aggregated routes for nym-apis swagger UI for ecash endpoints added explicit annotation for index and expiration signatures revamped client ticketbook storage save all recovery information in the same underlying storage wrapper for bloomfilter being more aggressive with marking tickets as used ensure client has correct signatures before making deposit fix deserialisation of AggregatedExpirationDateSignatureResponse + add ticketbook table split nym-api ecash routes handlers into multiple files fixed deserialisation of encoded expiration date add tt_gamma1 to challenge and change naming for paper consistency rotating double spending bloomfilter nym-api test fixes + make sure to insert initial BF params fixed ecash benchmark code updated contract schema updated CI to not upload gateway/mixnode binaries ticket bandwidth revocation added default deserialisation for zk nym config post-rebase fixes
282 lines
12 KiB
TOML
282 lines
12 KiB
TOML
# This template contains all of the possible sections and their default values
|
|
|
|
# Note that all fields that take a lint level have these possible values:
|
|
# * deny - An error will be produced and the check will fail
|
|
# * warn - A warning will be produced, but the check will not fail
|
|
# * allow - No warning or error will be produced, though in some cases a note
|
|
# will be
|
|
|
|
# The values provided in this template are the default values that will be used
|
|
# when any section or field is not specified in your own configuration
|
|
|
|
# Root options
|
|
|
|
# If 1 or more target triples (and optionally, target_features) are specified,
|
|
# only the specified targets will be checked when running `cargo deny check`.
|
|
# This means, if a particular package is only ever used as a target specific
|
|
# dependency, such as, for example, the `nix` crate only being used via the
|
|
# `target_family = "unix"` configuration, that only having windows targets in
|
|
# this list would mean the nix crate, as well as any of its exclusive
|
|
# dependencies not shared by any other crates, would be ignored, as the target
|
|
# list here is effectively saying which targets you are building for.
|
|
targets = [
|
|
# The triple can be any string, but only the target triples built in to
|
|
# rustc (as of 1.40) can be checked against actual config expressions
|
|
#{ triple = "x86_64-unknown-linux-musl" },
|
|
# You can also specify which target_features you promise are enabled for a
|
|
# particular target. target_features are currently not validated against
|
|
# the actual valid features supported by the target architecture.
|
|
#{ triple = "wasm32-unknown-unknown", features = ["atomics"] },
|
|
]
|
|
# When creating the dependency graph used as the source of truth when checks are
|
|
# executed, this field can be used to prune crates from the graph, removing them
|
|
# from the view of cargo-deny. This is an extremely heavy hammer, as if a crate
|
|
# is pruned from the graph, all of its dependencies will also be pruned unless
|
|
# they are connected to another crate in the graph that hasn't been pruned,
|
|
# so it should be used with care. The identifiers are [Package ID Specifications]
|
|
# (https://doc.rust-lang.org/cargo/reference/pkgid-spec.html)
|
|
#exclude = []
|
|
# If true, metadata will be collected with `--all-features`. Note that this can't
|
|
# be toggled off if true, if you want to conditionally enable `--all-features` it
|
|
# is recommended to pass `--all-features` on the cmd line instead
|
|
all-features = false
|
|
# If true, metadata will be collected with `--no-default-features`. The same
|
|
# caveat with `all-features` applies
|
|
no-default-features = false
|
|
# If set, these feature will be enabled when collecting metadata. If `--features`
|
|
# is specified on the cmd line they will take precedence over this option.
|
|
#features = []
|
|
# When outputting inclusion graphs in diagnostics that include features, this
|
|
# option can be used to specify the depth at which feature edges will be added.
|
|
# This option is included since the graphs can be quite large and the addition
|
|
# of features from the crate(s) to all of the graph roots can be far too verbose.
|
|
# This option can be overridden via `--feature-depth` on the cmd line
|
|
feature-depth = 1
|
|
|
|
# This section is considered when running `cargo deny check advisories`
|
|
# More documentation for the advisories section can be found here:
|
|
# https://embarkstudios.github.io/cargo-deny/checks/advisories/cfg.html
|
|
[advisories]
|
|
# The path where the advisory database is cloned/fetched into
|
|
db-path = "~/.cargo/advisory-db"
|
|
# The url(s) of the advisory databases to use
|
|
db-urls = ["https://github.com/rustsec/advisory-db"]
|
|
# The lint level for security vulnerabilities
|
|
vulnerability = "deny"
|
|
# The lint level for unmaintained crates
|
|
unmaintained = "allow"
|
|
# The lint level for crates that have been yanked from their source registry
|
|
yanked = "warn"
|
|
# The lint level for crates with security notices. Note that as of
|
|
# 2019-12-17 there are no security notice advisories in
|
|
# https://github.com/rustsec/advisory-db
|
|
notice = "warn"
|
|
# A list of advisory IDs to ignore. Note that ignored advisories will still
|
|
# output a note when they are encountered.
|
|
ignore = [
|
|
"RUSTSEC-2020-0159",
|
|
"RUSTSEC-2020-0071",
|
|
"RUSTSEC-2021-0145",
|
|
]
|
|
# Threshold for security vulnerabilities, any vulnerability with a CVSS score
|
|
# lower than the range specified will be ignored. Note that ignored advisories
|
|
# will still output a note when they are encountered.
|
|
# * None - CVSS Score 0.0
|
|
# * Low - CVSS Score 0.1 - 3.9
|
|
# * Medium - CVSS Score 4.0 - 6.9
|
|
# * High - CVSS Score 7.0 - 8.9
|
|
# * Critical - CVSS Score 9.0 - 10.0
|
|
#severity-threshold =
|
|
|
|
# If this is true, then cargo deny will use the git executable to fetch advisory database.
|
|
# If this is false, then it uses a built-in git library.
|
|
# Setting this to true can be helpful if you have special authentication requirements that cargo-deny does not support.
|
|
# See Git Authentication for more information about setting up git authentication.
|
|
#git-fetch-with-cli = true
|
|
|
|
# This section is considered when running `cargo deny check licenses`
|
|
# More documentation for the licenses section can be found here:
|
|
# https://embarkstudios.github.io/cargo-deny/checks/licenses/cfg.html
|
|
[licenses]
|
|
# The lint level for crates which do not have a detectable license
|
|
unlicensed = "deny"
|
|
# List of explicitly allowed licenses
|
|
# See https://spdx.org/licenses/ for list of possible licenses
|
|
# [possible values: any SPDX 3.11 short identifier (+ optional exception)].
|
|
allow = [
|
|
"MIT",
|
|
"Apache-2.0",
|
|
"BSD-2-Clause",
|
|
"BSD-3-Clause",
|
|
"ISC",
|
|
"0BSD",
|
|
"MPL-2.0",
|
|
"CC0-1.0",
|
|
"Unicode-DFS-2016",
|
|
"OpenSSL",
|
|
"Zlib",
|
|
"Unicode-3.0",
|
|
]
|
|
# List of explicitly disallowed licenses
|
|
# See https://spdx.org/licenses/ for list of possible licenses
|
|
# [possible values: any SPDX 3.11 short identifier (+ optional exception)].
|
|
deny = [
|
|
#"Nokia",
|
|
]
|
|
# Lint level for licenses considered copyleft
|
|
copyleft = "warn"
|
|
# Blanket approval or denial for OSI-approved or FSF Free/Libre licenses
|
|
# * both - The license will be approved if it is both OSI-approved *AND* FSF
|
|
# * either - The license will be approved if it is either OSI-approved *OR* FSF
|
|
# * osi-only - The license will be approved if is OSI-approved *AND NOT* FSF
|
|
# * fsf-only - The license will be approved if is FSF *AND NOT* OSI-approved
|
|
# * neither - This predicate is ignored and the default lint level is used
|
|
allow-osi-fsf-free = "neither"
|
|
# Lint level used when no other predicates are matched
|
|
# 1. License isn't in the allow or deny lists
|
|
# 2. License isn't copyleft
|
|
# 3. License isn't OSI/FSF, or allow-osi-fsf-free = "neither"
|
|
default = "deny"
|
|
# The confidence threshold for detecting a license from license text.
|
|
# The higher the value, the more closely the license text must be to the
|
|
# canonical license text of a valid SPDX license file.
|
|
# [possible values: any between 0.0 and 1.0].
|
|
confidence-threshold = 0.8
|
|
# Allow 1 or more licenses on a per-crate basis, so that particular licenses
|
|
# aren't accepted for every possible crate as with the normal allow list
|
|
exceptions = [
|
|
# Each entry is the crate and version constraint, and its specific allow
|
|
# list
|
|
#{ allow = ["Zlib"], name = "adler32", version = "*" },
|
|
]
|
|
|
|
# Some crates don't have (easily) machine readable licensing information,
|
|
# adding a clarification entry for it allows you to manually specify the
|
|
# licensing information
|
|
[[licenses.clarify]]
|
|
# The name of the crate the clarification applies to
|
|
name = "ring"
|
|
# The optional version constraint for the crate
|
|
version = "*"
|
|
# The SPDX expression for the license requirements of the crate
|
|
expression = "MIT AND ISC AND OpenSSL"
|
|
# One or more files in the crate's source used as the "source of truth" for
|
|
# the license expression. If the contents match, the clarification will be used
|
|
# when running the license check, otherwise the clarification will be ignored
|
|
# and the crate will be checked normally, which may produce warnings or errors
|
|
# depending on the rest of your configuration
|
|
license-files = [
|
|
# Each entry is a crate relative path, and the (opaque) hash of its contents
|
|
{ path = "LICENSE", hash = 0xbd0eed23 }
|
|
]
|
|
|
|
[licenses.private]
|
|
# If true, ignores workspace crates that aren't published, or are only
|
|
# published to private registries.
|
|
# To see how to mark a crate as unpublished (to the official registry),
|
|
# visit https://doc.rust-lang.org/cargo/reference/manifest.html#the-publish-field.
|
|
ignore = false
|
|
# One or more private registries that you might publish crates to, if a crate
|
|
# is only published to private registries, and ignore is true, the crate will
|
|
# not have its license(s) checked
|
|
registries = [
|
|
#"https://sekretz.com/registry
|
|
]
|
|
|
|
# This section is considered when running `cargo deny check bans`.
|
|
# More documentation about the 'bans' section can be found here:
|
|
# https://embarkstudios.github.io/cargo-deny/checks/bans/cfg.html
|
|
[bans]
|
|
# Lint level for when multiple versions of the same crate are detected
|
|
multiple-versions = "warn"
|
|
# Lint level for when a crate version requirement is `*`
|
|
wildcards = "allow"
|
|
# The graph highlighting used when creating dotgraphs for crates
|
|
# with multiple versions
|
|
# * lowest-version - The path to the lowest versioned duplicate is highlighted
|
|
# * simplest-path - The path to the version with the fewest edges is highlighted
|
|
# * all - Both lowest-version and simplest-path are used
|
|
highlight = "all"
|
|
# The default lint level for `default` features for crates that are members of
|
|
# the workspace that is being checked. This can be overriden by allowing/denying
|
|
# `default` on a crate-by-crate basis if desired.
|
|
workspace-default-features = "allow"
|
|
# The default lint level for `default` features for external crates that are not
|
|
# members of the workspace. This can be overriden by allowing/denying `default`
|
|
# on a crate-by-crate basis if desired.
|
|
external-default-features = "allow"
|
|
# List of crates that are allowed. Use with care!
|
|
allow = [
|
|
#{ name = "ansi_term", version = "=0.11.0" },
|
|
]
|
|
# List of crates to deny
|
|
deny = [
|
|
# Each entry the name of a crate and a version range. If version is
|
|
# not specified, all versions will be matched.
|
|
#{ name = "ansi_term", version = "=0.11.0" },
|
|
#
|
|
# Wrapper crates can optionally be specified to allow the crate when it
|
|
# is a direct dependency of the otherwise banned crate
|
|
#{ name = "ansi_term", version = "=0.11.0", wrappers = [] },
|
|
{ name = "openssl" },
|
|
]
|
|
|
|
# List of features to allow/deny
|
|
# Each entry the name of a crate and a version range. If version is
|
|
# not specified, all versions will be matched.
|
|
#[[bans.features]]
|
|
#name = "reqwest"
|
|
# Features to not allow
|
|
#deny = ["json"]
|
|
# Features to allow
|
|
#allow = [
|
|
# "rustls",
|
|
# "__rustls",
|
|
# "__tls",
|
|
# "hyper-rustls",
|
|
# "rustls",
|
|
# "rustls-pemfile",
|
|
# "rustls-tls-webpki-roots",
|
|
# "tokio-rustls",
|
|
# "webpki-roots",
|
|
#]
|
|
# If true, the allowed features must exactly match the enabled feature set. If
|
|
# this is set there is no point setting `deny`
|
|
#exact = true
|
|
|
|
# Certain crates/versions that will be skipped when doing duplicate detection.
|
|
skip = [
|
|
#{ name = "ansi_term", version = "=0.11.0" },
|
|
]
|
|
# Similarly to `skip` allows you to skip certain crates during duplicate
|
|
# detection. Unlike skip, it also includes the entire tree of transitive
|
|
# dependencies starting at the specified crate, up to a certain depth, which is
|
|
# by default infinite.
|
|
skip-tree = [
|
|
#{ name = "ansi_term", version = "=0.11.0", depth = 20 },
|
|
]
|
|
|
|
# This section is considered when running `cargo deny check sources`.
|
|
# More documentation about the 'sources' section can be found here:
|
|
# https://embarkstudios.github.io/cargo-deny/checks/sources/cfg.html
|
|
[sources]
|
|
# Lint level for what to happen when a crate from a crate registry that is not
|
|
# in the allow list is encountered
|
|
unknown-registry = "warn"
|
|
# Lint level for what to happen when a crate from a git repository that is not
|
|
# in the allow list is encountered
|
|
unknown-git = "warn"
|
|
# List of URLs for allowed crate registries. Defaults to the crates.io index
|
|
# if not specified. If it is specified but empty, no registries are allowed.
|
|
allow-registry = ["https://github.com/rust-lang/crates.io-index"]
|
|
# List of URLs for allowed Git repositories
|
|
allow-git = []
|
|
|
|
[sources.allow-org]
|
|
# 1 or more github.com organizations to allow git sources for
|
|
github = [""]
|
|
# 1 or more gitlab.com organizations to allow git sources for
|
|
gitlab = [""]
|
|
# 1 or more bitbucket.org organizations to allow git sources for
|
|
bitbucket = [""]
|