Sigil documentation
ReferenceRust referencesigil-sdk

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.

On this page