moq-secure 0.1.3

Encryption and signing for Media over Quic (MoQ)
Documentation
use thiserror::Error;

#[derive(Debug, Error)]
pub enum MoqSecureError {
    #[error("invalid magic bytes")]
    InvalidMagic,

    #[error("unsupported version: {0}")]
    UnsupportedVersion(u8),

    #[error("not enough bytes in frame")]
    TruncatedFrame,

    #[error("ciphertext too short for AEAD tag")]
    CiphertextTooShort,

    #[error("invalid padding length")]
    InvalidPadLength,

    #[error("encrypted flag must be 0 or 1, got {0}")]
    InvalidEncryptedFlag(u8),

    #[error("sigFlag must be 0 or 1, got {0}")]
    InvalidSigFlag(u8),

    #[error("AEAD authentication failed")]
    AeadAuthFailed,

    #[error("signature invalid or signature verification failed")]
    InvalidSignature,

    #[error(
        "signing is disabled but sigFlag indicates signature or sigSlot is non-zero"
    )]
    SigningMismatch,

    #[error(
        "signing enabled but sigFlag indicates signature while sigSlot is missing or zero"
    )]
    MissingSigSlot,

    #[error("signature present (sigFlag=1) but nSigned is 0")]
    SignatureNotAllowedByNSigned,

    #[error("decryption failed")]
    DecryptFailed,

    #[error("unknown or not-loaded key_id: {0}")]
    InvalidKeyId(u8),
}