Skip to main content

Module collab

Module collab 

Source
Expand description

Collaboration layer for void

This module provides:

  • Identity management (Ed25519 signing, X25519 encryption)
  • ECIES encryption for key wrapping
  • Contributor manifest for multi-user repositories
  • PIN-based identity key encryption
  • BIP-39 seed derivation for identity recovery

See docs/COLLABORATION.md for the collaboration design.

Re-exports§

pub use invite::is_invite_blob;
pub use invite::parse_invite;
pub use invite::Invite;
pub use invite::INVITE_TYPE_V1;
pub use manifest::Contributor;
pub use manifest::Delegation;
pub use manifest::KeyRotationRecord;
pub use manifest::Manifest;
pub use manifest::OwnerDelegation;
pub use manifest::OwnershipRecord;
pub use manifest::ReadKeyConfig;
pub use manifest::delete_manifest;
pub use manifest::detect_repo_mode;
pub use manifest::load_manifest;
pub use manifest::manifest_exists;
pub use manifest::save_manifest;
pub use manifest::RepoMode;
pub use manifest::check_contributor_namespace_access;
pub use manifest::check_write_access;
pub use manifest::default_contributor_namespace;
pub use manifest::AuthResult;
pub use manifest::extract_signer;
pub use manifest::verify_commit;
pub use manifest::verify_commits;
pub use manifest::verify_signature_only;
pub use manifest::VerifyResult;

Modules§

ecies
ECIES operations — re-exported from void-crypto.
identity
Identity management — re-exported from void-crypto.
invite
Invite format for contributor onboarding.
manifest
Contributor manifest for multi-user collaboration.
pin
PIN-based identity key encryption — re-exported from void-crypto.
seed
BIP-39 seed derivation — re-exported from void-crypto.

Structs§

CommitSignature
Ed25519 signature over commit signable bytes (64 bytes).
ContributorId
Full contributor identity combining signing and recipient public keys.
Identity
An identity containing signing, recipient, and optional Nostr keys
IdentitySeed
BIP-39 seed bytes (64 bytes). Zeroed on drop.
NostrPubKey
Secp256k1 x-only (schnorr) public key for Nostr transport (32 bytes).
NostrSecretKey
Secp256k1 secret key for Nostr transport (32 bytes). Zeroed on drop.
ParsedIdentity
Parsed identity containing public keys and optional username.
RecipientPubKey
X25519 public key for ECIES encryption (32 bytes).
RecipientSecretKey
X25519 secret key for ECIES decryption (32 bytes). Zeroed on drop.
SigningPubKey
Ed25519 public key for verifying signatures (32 bytes).
SigningSecretKey
Ed25519 secret key for signing (32 bytes). Zeroed on drop.
WrappedKey
ECIES-wrapped key blob (variable length).

Enums§

IdentityError
Errors that can occur in identity operations
ManifestParseError
Error parsing key types from strings.
PinError
Errors during PIN encryption/decryption.
SeedError
Errors during seed/mnemonic operations.

Functions§

decrypt_identity_keys
Decrypt identity keys using a PIN.
derive_nostr_key
Derive a secp256k1 Nostr secret key from an identity seed.
derive_recipient_key
Derive an X25519 recipient secret key from an identity seed.
derive_repo_owner_key
Derive a per-repo Ed25519 owner signing key from an identity seed and repo ID.
derive_repo_owner_signing_key
Derive a per-repo owner Ed25519 signing key from an identity seed and repo ID.
derive_signing_key
Derive an Ed25519 signing secret key from an identity seed.
encrypt_identity_keys
Encrypt signing, recipient, and Nostr keys using a PIN (v2 format).
generate_mnemonic
Generate a new 24-word BIP-39 mnemonic.
mnemonic_to_seed
Convert a BIP-39 mnemonic phrase to a 64-byte seed.