sigil-sdk · sign_in
Source declarations, signatures and documentation for sign_in.
Source: sigil/node/sigil-sdk/src/sign_in.rs. SHA-256: d8fdb78f0b0ae7ab23d8998b49e4c5852eabe56f5a3c44f0e4578f3b9f2414bc.
This reference follows declared source modules, retains conditional attributes, and includes public declarations and implementation methods. Private-module re-exports and trait resolution require the compiler; this is a source reference, not a claim that every listed item is a root import. Function bodies and constant values are omitted.
Module condition:
#[cfg(feature = "gal")]sign_in::SIGN_IN_KIND
#[cfg(feature = "gal")]
pub const SIGN_IN_KIND: &str;Source line: 18.
sign_in::SIGN_MESSAGE_METHOD
#[cfg(feature = "gal")]
pub const SIGN_MESSAGE_METHOD: &str;Source line: 19.
sign_in::SIGN_MESSAGE_TRANSCRIPT_VERSION
#[cfg(feature = "gal")]
pub const SIGN_MESSAGE_TRANSCRIPT_VERSION: u8;Source line: 20.
sign_in::DEFAULT_MAX_SIGN_IN_CHALLENGE_TTL_MS
#[cfg(feature = "gal")]
pub const DEFAULT_MAX_SIGN_IN_CHALLENGE_TTL_MS: i64;Source line: 21.
sign_in::MAX_SIGN_IN_MESSAGE_BYTES
#[cfg(feature = "gal")]
pub const MAX_SIGN_IN_MESSAGE_BYTES: usize;Source line: 22.
sign_in::MAX_SIGN_IN_TRANSCRIPT_BYTES
#[cfg(feature = "gal")]
pub const MAX_SIGN_IN_TRANSCRIPT_BYTES: usize;Source line: 23.
sign_in::MAX_SIGN_IN_URL_BYTES
#[cfg(feature = "gal")]
pub const MAX_SIGN_IN_URL_BYTES: usize;Source line: 24.
sign_in::MAX_SIGN_IN_FIELD_BYTES
#[cfg(feature = "gal")]
pub const MAX_SIGN_IN_FIELD_BYTES: usize;Source line: 25.
sign_in::MAX_SIGN_IN_DID_BYTES
#[cfg(feature = "gal")]
pub const MAX_SIGN_IN_DID_BYTES: usize;Source line: 26.
sign_in::SignInChallenge
#[cfg(feature = "gal")]
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SignInChallenge {
pub kind: String,
pub version: u8,
pub origin: String,
pub audience: String,
pub chain_id: String,
pub nonce: String,
pub request_id: String,
pub hmr_did: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub root_did: Option<String>,
pub issued_at_ms: i64,
pub expires_at_ms: i64
}Source line: 30.
sign_in::SignInChallengeInput
#[cfg(feature = "gal")]
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct SignInChallengeInput {
pub origin: String,
pub audience: String,
pub chain_id: String,
pub nonce: String,
pub request_id: String,
pub hmr_did: String,
pub root_did: Option<String>,
pub issued_at_ms: i64,
pub expires_at_ms: i64
}Source line: 46.
sign_in::SignInChallenge::new
#[cfg(feature = "gal")]
pub fn new(input: SignInChallengeInput) -> Self;Source line: 59.
sign_in::SignInChallenge::canonical_message
#[cfg(feature = "gal")]
pub fn canonical_message(&self) -> Result<String, SignInVerifyError>;Source line: 75.
sign_in::SignedSignInResponse
#[cfg(feature = "gal")]
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SignedSignInResponse {
pub kind: String,
pub origin: String,
pub chain_id: String,
pub signer_did: String,
pub message: String,
pub signature: String,
pub signer_public_key: String,
pub digest: String,
pub transcript: String
}Source line: 82.
sign_in::SignInVerifyOptions
#[cfg(feature = "gal")]
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct SignInVerifyOptions {
pub expected_origin: String,
pub expected_chain_id: String,
pub expected_nonce: String,
pub expected_request_id: Option<String>,
pub expected_audience: String,
pub now_ms: i64,
pub max_clock_skew_ms: i64,
pub max_challenge_ttl_ms: i64
}Source line: 95.
sign_in::SignInVerifyOptions::new
#[cfg(feature = "gal")]
pub fn new(
expected_origin: impl Into<String>,
expected_chain_id: impl Into<String>,
expected_nonce: impl Into<String>,
expected_audience: impl Into<String>,
now_ms: i64,
) -> Self;Source line: 107.
sign_in::SignInVerifyOptions::with_expected_request_id
#[cfg(feature = "gal")]
pub fn with_expected_request_id(mut self, expected_request_id: impl Into<String>) -> Self;Source line: 126.
sign_in::SignInVerifyOptions::with_max_challenge_ttl_ms
#[cfg(feature = "gal")]
pub fn with_max_challenge_ttl_ms(mut self, max_challenge_ttl_ms: i64) -> Self;Source line: 131.
sign_in::SignInRootKind
#[cfg(feature = "gal")]
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum SignInRootKind {
Hmr,
Mhr,
Enr,
}Source line: 138.
sign_in::VerifiedSignIn
#[cfg(feature = "gal")]
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct VerifiedSignIn {
pub hmr_did: String,
pub root_did: String,
pub root_kind: SignInRootKind,
pub signer_public_key: String,
pub chain_id: String,
pub origin: String,
pub audience: String,
pub nonce: String,
pub request_id: String,
pub expires_at_ms: i64
}Source line: 145.
sign_in::SignInVerifyError
#[cfg(feature = "gal")]
#[derive(Debug, Error)]
pub enum SignInVerifyError {
#[error("malformed sign-in payload: {0}")]
Malformed(String),
#[error("transcript mismatch")]
TranscriptMismatch,
#[error("digest mismatch")]
DigestMismatch,
#[error("invalid signature")]
InvalidSignature,
#[error("challenge mismatch: {0}")]
ChallengeMismatch(String),
#[error("challenge already consumed or missing: {0}")]
ChallengeConsumedOrMissing(String),
#[error("challenge store error: {0}")]
ChallengeStore(String),
#[error("challenge expired")]
Expired,
#[error("challenge issued too far in the future")]
IssuedInFuture,
#[error("GAL lookup failed: {0}")]
GalLookup(String),
#[error("GAL root missing: {0}")]
GalRootMissing(String),
#[error("GAL root inactive: {0}")]
GalRootInactive(String),
#[error("GAL root revoked: {0}")]
GalRootRevoked(String),
#[error("HMR controller public key does not match signer")]
HmrControllerMismatch,
#[error("root policy does not authorize signer HMR")]
RootPolicyMismatch,
}Source line: 159.
sign_in::SignInChallengeStore
#[cfg(feature = "gal")]
pub trait SignInChallengeStore {
fn insert_challenge(&self, challenge: SignInChallenge) -> Result<(), SignInVerifyError>;
fn take_challenge(
&self,
request_id: &str,
) -> Result<Option<SignInChallenge>, SignInVerifyError>;
}Source line: 192.
sign_in::InMemorySignInChallengeStore
#[cfg(feature = "gal")]
#[derive(Debug, Clone, Default)]
pub struct InMemorySignInChallengeStore {
}Source line: 201.
sign_in::InMemorySignInChallengeStore::new
#[cfg(feature = "gal")]
pub fn new() -> Self;Source line: 206.
sign_in::canonical_sign_in_message
#[cfg(feature = "gal")]
pub fn canonical_sign_in_message(challenge: &SignInChallenge) -> Result<String, SignInVerifyError>;Source line: 237.
sign_in::build_sign_in_transcript
#[cfg(feature = "gal")]
pub fn build_sign_in_transcript(
origin: &str,
chain_id: &str,
signer_did: &str,
message: &str,
) -> Result<String, SignInVerifyError>;Source line: 243.
sign_in::verify_sign_in_response_with_store
#[cfg(feature = "gal")]
pub async fn verify_sign_in_response_with_store<C, S>(
client: &C,
response: &SignedSignInResponse,
store: &S,
now_ms: i64,
) -> Result<VerifiedSignIn, SignInVerifyError>
where
C: SigilAnchorClient + ?Sized,
S: SignInChallengeStore + ?Sized,;Source line: 260.
sign_in::verify_sign_in_response
#[cfg(feature = "gal")]
pub async fn verify_sign_in_response<C: SigilAnchorClient + ?Sized>(
client: &C,
response: &SignedSignInResponse,
options: &SignInVerifyOptions,
) -> Result<VerifiedSignIn, SignInVerifyError>;Source line: 304.