Crate verse_session_id

Source
Expand description

§verse-session-id

crates.io docs.rs MIT MIT

ID with signature/verification functions.
Used as session ID in @VerseEngine/verse-core.

§Usage

§Signature Verification

use verse_session_id::*;

...
pub fn verify_string(session_id: &str, signature: &str, data: &str) -> bool {
  let Ok(sid) = session_id.parse::<SessionId>() else {
     return false;
  };
  let Ok(ss) = signature.parse::<SignatureSet>() else {
     return false;
  };

  sid.verify(vec![data.as_bytes()], &ss).is_ok()
}

§Generate ID

let id_pair = new_session_id_pair()?;
let session_id = id_pair.get_id();
// to string
let s = format!("{}", session_id);

§Create a signature

pub fn sign_string(&self, data: &str) -> Result<String> {
    let id_pair = ...;
    Ok(id_pair
        .sign(vec![data.as_bytes()])?
        .to_string())
}

Macros§

convert
required
signature

Structs§

SessionId
Session ID The session ID is the public key for ED25519.
SignatureSet
Signature

Constants§

SESSION_ID_SIZE
Bytes of Session ID
SIGNATURE_SALT_SIZE
Signature Salt Size
SIGNATURE_SIZE
Signature Size

Traits§

ISessionIdPair
SessionIdCompatible
SessionIdPublic
Session ID as public key

Functions§

new_session_id_pair
Generate SessionIdPair

Type Aliases§

RawSessionId
Session ID data
SessionIdPair
Session ID and private key pair (ED25519).