[package] name = "ssi" version = "0.10.1" authors = ["Spruce Systems, Inc."] edition = "2021" license = "Apache-2.0" description = "Core library for Verifiable Credentials and Decentralized Identifiers." repository = "https://github.com/spruceid/ssi/" documentation = "https://docs.rs/ssi/" keywords = ["ssi", "did", "vc", "vp", "jsonld"] rust-version = "1.80" [workspace] members = [ "crates/*", "crates/verification-methods/core", "crates/dids/core", "crates/dids/methods/*", "crates/claims/core", "crates/claims/crates/*", "crates/claims/crates/data-integrity/core", "crates/claims/crates/data-integrity/suites", ] [workspace.dependencies] ssi-core = { path = "./crates/core", version = "0.2.2", default-features = false } ssi-multicodec = { path = "./crates/multicodec", version = "0.2", default-features = false } ssi-crypto = { path = "./crates/crypto", version = "0.2.1", default-features = false } ssi-verification-methods-core = { path = "./crates/verification-methods/core", version = "0.1.1", default-features = false } ssi-verification-methods = { path = "./crates/verification-methods", version = "0.1.1", default-features = false } ssi-jwk = { path = "./crates/jwk", version = "0.3.1", default-features = false } ssi-tzkey = { path = "./crates/tzkey", version = "0.2.1", default-features = false } ssi-eip712 = { path = "./crates/eip712", version = "0.1", default-features = false } ssi-rdf = { path = "./crates/rdf", version = "0.1", default-features = false } ssi-contexts = { path = "./crates/contexts", version = "0.1.7", default-features = false } ssi-json-ld = { path = "./crates/json-ld", version = "0.3", default-features = false } ssi-security = { path = "./crates/security", version = "0.1", default-features = false } ssi-caips = { path = "./crates/caips", version = "0.2.1", default-features = false } ssi-ucan = { path = "./crates/ucan", version = "0.2.1", default-features = false } ssi-zcap-ld = { path = "./crates/zcap-ld", version = "0.3.0", default-features = false } ssi-ssh = { path = "./crates/ssh", version = "0.2.1", default-features = false } ssi-status = { path = "./crates/status", version = "0.3.0", default-features = false } ssi-bbs = { path = "./crates/bbs", version = "0.1.1", default-features = false } # Verifiable Claims ssi-claims-core = { path = "./crates/claims/core", version = "0.1.2", default-features = false } ssi-jws = { path = "./crates/claims/crates/jws", version = "0.3", default-features = false } ssi-jwt = { path = "./crates/claims/crates/jwt", version = "0.3", default-features = false } ssi-sd-jwt = { path = "./crates/claims/crates/sd-jwt", version = "0.3", default-features = false } ssi-cose = { path = "./crates/claims/crates/cose", version = "0.1", default-features = false } ssi-vc = { path = "./crates/claims/crates/vc", version = "0.4.0", default-features = false } ssi-vc-jose-cose = { path = "./crates/claims/crates/vc-jose-cose", version = "0.2.0", default-features = false } ssi-data-integrity-core = { path = "./crates/claims/crates/data-integrity/core", version = "0.2", default-features = false } ssi-di-sd-primitives = { path = "./crates/claims/crates/data-integrity/sd-primitives", version = "0.2", default-features = false } ssi-data-integrity-suites = { path = "./crates/claims/crates/data-integrity/suites", version = "0.1.1", default-features = false } ssi-data-integrity = { path = "./crates/claims/crates/data-integrity", version = "0.1.1", default-features = false } ssi-claims = { path = "./crates/claims", version = "0.2.0", default-features = false } # DID methods ssi-dids-core = { path = "./crates/dids/core", version = "0.1.2", default-features = false } did-ethr = { path = "./crates/dids/methods/ethr", version = "0.3.1", default-features = false } did-ion = { path = "./crates/dids/methods/ion", version = "0.3.1", default-features = false } did-jwk = { path = "./crates/dids/methods/jwk", version = "0.2.1", default-features = false } did-method-key = { path = "./crates/dids/methods/key", version = "0.3.1", default-features = false } did-pkh = { path = "./crates/dids/methods/pkh", version = "0.3.1", default-features = false } did-tz = { path = "./crates/dids/methods/tz", version = "0.3.1", default-features = false } did-web = { path = "./crates/dids/methods/web", version = "0.3.2", default-features = false } ssi-dids = { path = "./crates/dids", version = "0.2.1", default-features = false } # crypto digest = "0.10" k256 = "0.13.1" p256 = "0.13.2" p384 = "0.13.0" ed25519-dalek = "2.0" blake2 = "0.10" sha2 = "0.10.0" sha3 = "0.10.8" rsa = "0.6" zkryptium = "0.2.2" # BBS # other common dependencies log = "0.4.21" async-std = "1.9" async-trait = "0.1.68" thiserror = "1.0.40" chrono = "0.4.24" iref = "3.2.2" static-iref = "3.0" rdf-types = "0.22.3" xsd-types = "0.9.5" locspan = "0.8" json-syntax = "0.12.5" nquads-syntax = "0.19" multibase = "0.9.1" serde = "1.0" serde_json = { version = "1.0", features = ["arbitrary_precision"] } serde_jcs = "0.1.0" ciborium = "0.2.2" bs58 = "0.4" base64 = "0.22" hex = "0.4.3" derivative = "2.2.0" educe = "0.4.22" pin-project = "1.1.3" futures = "0.3.28" linked-data = "0.1.2" rand = "0.8" rand_chacha = "0.3.1" getrandom = "0.2" contextual = "0.1.6" lazy_static = "1.4.0" indexmap = "2.0.0" uuid = "1.9" [features] default = [ "w3c", "rsa", "ed25519", "secp256k1", "secp256r1", "ripemd-160", "eip712", ] ## Signature suites specified by the W3C. ## ## This will enable the following Data-Integrity suites: ## - `JsonWebSignature2020` ## - `RsaSignature2018` (requires `rsa`) ## - `Ed25519Signature2018` (requires `ed25519`) ## - `Ed25519Signature2020` (requires `ed25519`) ## - `EdDsa2022` (requires `ed25519`) ## - `EcdsaSecp256k1Signature2019` (requires `secp256k1`) ## - `EcdsaSecp256r1Signature2019` (requires `secp256r1`) ## - `EthereumEip712Signature2021` (requires `eip712`) w3c = ["ssi-claims/w3c"] ## Signature suites specified by the Decentralized Identify Foundation (DIF). ## ## This includes: ## - `EcdsaSecp256k1RecoverySignature2020` (requires `secp256k1`) dif = ["ssi-claims/dif"] ## Signature suites based on ED25519 (EdDSA). ## ## This includes: ## - `Ed25519Signature2018` (requires `w3c`) ## - `Ed25519Signature2020` (requires `w3c`) ## - `EdDsa2022` (requires `w3c`) ed25519 = ["ssi-claims/ed25519"] ## Signature suites based on secp256k1. ## ## This includes: ## - `EcdsaSecp256k1Signature2019` (requires `w3c`) ## - `EcdsaSecp256k1RecoverySignature2020` (requires `dif`) secp256k1 = ["ssi-claims/secp256k1", "ssi-dids/secp256k1"] ## Signature suites based on secp256r1. ## ## This includes: ## - `EcdsaSecp256r1Signature2019` (requires `w3c`) ## - `EcdsaRdfc2019` (requires `w3c`) secp256r1 = ["ssi-claims/secp256r1", "ssi-dids/secp256r1"] ## Enable secp384r1 keys and signature suites based on secp384r1. ## ## This includes: ## - `EcdsaRdfc2019` (requires `w3c`) secp384r1 = ["ssi-claims/secp384r1", "ssi-dids/secp384r1"] ## Signature suites based on RSA. ## ## This includes: ## - `RsaSignature2018` (requires `w3c`) rsa = ["ssi-claims/rsa"] ## Tezos signatures suites. ## ## This includes: ## - `TezosJcsSignature2021` ## - `TezosSignature2021` ## - `Ed25519BLAKE2BDigestSize20Base58CheckEncodedSignature2021` (requires `ed25519`) ## - `P256BLAKE2BDigestSize20Base58CheckEncodedSignature2021` (requires `secp256r1`) tezos = ["ssi-claims/tezos", "ssi-caips/tezos", "ssi-dids/tezos"] ## Enables `AleoSignature2021`. aleo = ["ssi-claims/aleo", "ssi-caips/aleo", "ssi-dids/aleo"] ## Signature suites based on Ethereum EIP-712. ## ## This includes: ## - `Eip712Signature2021` (requires `ethereum`). ## - `EthereumEip712Signature2021` (requires `w3c`) eip712 = ["ssi-claims/eip712"] # Enables `SolanaSignature2021` solana = ["ssi-claims/solana", "ssi-dids/solana"] ## Ethereum signature suites. ## ## This includes: ## - `EthereumPersonalSignature2021` ## - `Eip712Signature2021` (requires `eip712`) ethereum = ["ssi-claims/ethereum", "ssi-jwk/eip", "ssi-dids/eip"] ## Enable ripemd hashes. ripemd-160 = ["ssi-jwk/ripemd-160", "ssi-dids/ripemd-160"] ## Enable bbs. bbs = ["ssi-crypto/bbs", "ssi-claims/bbs", "ssi-bbs"] ## Use the Ring crate for crypto operations ring = ["ssi-jwk/ring", "ssi-jws/ring", "ssi-crypto/ring"] ## Enable DID resolution tests using [hyper](https://crates.io/crates/hyper) and [tokio](https://crates.io/crates/tokio). http-did = ["ssi-dids/http"] # ## Enable resolving example HTTPS Verifiable credential Issuer URL, for [VC Test Suite](https://github.com/w3c/vc-test-suite/). # example-http-issuer = ["ssi-ldp/example-http-issuer"] ## Enable example DIDs. example = ["ssi-dids/example"] [dependencies] ssi-core.workspace = true ssi-crypto.workspace = true ssi-jwk.workspace = true ssi-jws.workspace = true ssi-rdf.workspace = true ssi-json-ld.workspace = true ssi-security.workspace = true ssi-claims.workspace = true ssi-status.workspace = true ssi-verification-methods.workspace = true ssi-dids.workspace = true ssi-eip712.workspace = true ssi-caips.workspace = true ssi-ucan.workspace = true ssi-zcap-ld.workspace = true ssi-multicodec.workspace = true ssi-ssh.workspace = true ssi-bbs = { workspace = true, optional = true } xsd-types.workspace = true # public reexport document-features = "0.2" [dev-dependencies] async-std = { workspace = true, features = ["attributes"] } uuid = { workspace = true, features = ["v4", "serde"] } iref.workspace = true static-iref.workspace = true serde = { workspace = true, features = ["derive"] } serde_json.workspace = true json-syntax.workspace = true ssi-dids = { workspace = true, features = ["example"] } [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] # $cargo release [workspace.metadata.release] sign-tag = true tag-prefix = "{{crate_name}}/" tag-message = "Release {{crate_name}} version {{version}}." pre-release-commit-message = "Release"