identity_iota/
lib.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
// Copyright 2020-2023 IOTA Stiftung
// SPDX-License-Identifier: Apache-2.0

#![cfg_attr(docsrs, feature(doc_cfg))]
#![forbid(unsafe_code)]
#![doc = include_str!("./../README.md")]
#![allow(clippy::upper_case_acronyms)]
#![warn(
  rust_2018_idioms,
  unreachable_pub,
  missing_docs,
  rustdoc::missing_crate_level_docs,
  rustdoc::broken_intra_doc_links,
  rustdoc::private_intra_doc_links,
  rustdoc::private_doc_tests,
  clippy::missing_safety_doc,
  clippy::missing_errors_doc
)]

pub use identity_iota_interaction as iota_interaction;

pub mod core {
  //! Core Traits and Types

  pub use identity_core::common::*;
  pub use identity_core::convert::*;
  pub use identity_core::error::*;

  #[doc(inline)]
  pub use identity_core::json;
}

pub mod credential {
  //! Verifiable Credentials
  //!
  //! [Specification](https://www.w3.org/TR/vc-data-model/)

  pub use identity_credential::credential::*;
  #[cfg(feature = "domain-linkage")]
  pub use identity_credential::domain_linkage::*;
  pub use identity_credential::error::*;
  pub use identity_credential::presentation::*;
  #[cfg(feature = "revocation-bitmap")]
  pub use identity_credential::revocation::*;
  #[cfg(feature = "sd-jwt-vc")]
  pub use identity_credential::sd_jwt_vc;
  pub use identity_credential::validator::*;
}

pub mod did {
  //! Decentralized Identifiers
  //!
  //! [Specification](https://www.w3.org/TR/did-core/)
  pub use identity_did::*;
}
pub mod document {
  //! DID Documents
  //!
  //! [Specification](https://www.w3.org/TR/did-core/)

  pub use identity_document::document::*;
  pub use identity_document::error::*;

  pub use identity_document::service::*;
  pub use identity_document::utils::*;

  pub use identity_document::verifiable;
}

pub mod iota {
  //! The IOTA DID method implementation for the IOTA ledger.

  pub use identity_iota_core::*;
}

pub mod prelude {
  //! Prelude of commonly used types

  pub use identity_iota_core::IotaDID;
  pub use identity_iota_core::IotaDocument;

  #[cfg(all(feature = "resolver", not(target_arch = "wasm32")))]
  #[cfg_attr(docsrs, doc(cfg(all(feature = "resolver", not(target_arch = "wasm32")))))]
  pub use identity_iota_core::DidResolutionHandler;

  #[cfg(feature = "resolver")]
  #[cfg_attr(docsrs, doc(cfg(feature = "resolver")))]
  pub use identity_resolver::Resolver;
}

#[cfg(feature = "resolver")]
#[cfg_attr(docsrs, doc(cfg(feature = "resolver")))]
pub mod resolver {
  //! DID resolution utilities
  pub use identity_resolver::*;
}

pub mod verification {
  //! Types for verifiable data
  pub use identity_verification::*;
}

pub mod storage {
  //! Storage traits.
  /// KeyIdStorage types and functionalities.
  pub mod key_id_storage {
    pub use identity_storage::key_id_storage::*;
  }
  /// KeyStorage types and functionalities.
  pub mod key_storage {
    pub use identity_storage::key_storage::public_modules::*;
  }
  /// Storage types and functionalities.
  #[allow(clippy::module_inception)]
  pub mod storage {
    pub use identity_storage::storage::*;
  }
  pub use identity_storage::key_id_storage::*;
  pub use identity_storage::key_storage::*;
  pub use identity_storage::storage::*;
}

#[cfg(feature = "sd-jwt")]
pub mod sd_jwt_payload {
  //! Expose the selective disclosure crate.
  pub use identity_credential::sd_jwt_payload::*;
}

// Exposes the reworked version of the selective disclosure crate
// which is needed for selectively disclosable credentials.
#[cfg(feature = "sd-jwt-vc")]
pub use identity_credential::sd_jwt_v2 as sd_jwt_rework;