[package]
name = "ic-auth"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
readme.workspace = true
repository.workspace = true
description = "Application authentication encoding and optional IC signature, token and local session machinery"
publish = ["crates-io"]
[features]
default = []
chain-key-verification = ["dep:k256"]
canister-signature-preparation = [
"dep:ic-canister-sig-creation",
"dep:ic-certification",
"dep:serde",
"dep:serde_bytes",
"dep:serde_cbor",
]
sessions = ["token-verification"]
token-verification = ["canister-signature-verification", "chain-key-verification"]
canister-signature-verification = [
"dep:ic-canister-sig-creation",
"dep:ic-certification",
"dep:ic-signature-verification",
"dep:leb128",
"dep:serde",
"dep:serde_bytes",
"dep:serde_cbor",
]
[dependencies]
ic-auth-protocol-types.workspace = true
ic-canister-sig-creation = { workspace = true, optional = true }
ic-certification = { workspace = true, optional = true }
ic-signature-verification = { workspace = true, optional = true }
k256 = { workspace = true, optional = true }
leb128 = { workspace = true, optional = true }
serde = { workspace = true, optional = true }
serde_bytes = { workspace = true, optional = true }
serde_cbor = { workspace = true, optional = true }
sha2.workspace = true
thiserror.workspace = true
[dev-dependencies]
ic-verify-bls-signature.workspace = true
[lints]
workspace = true