Crate web_bot_auth

Source
Expand description

§web-bot-auth library

web-bot-auth is a library provides a Rust implementation of HTTP Message Signatures as defined in RFC 9421, with additional support for verifying a web bot auth signed message.

§Features

  • Message Signing: Generate HTTP message signatures using Ed25519 cryptography
  • Message Verification: Verify signed HTTP messages against public keys
  • Web Bot Auth: Specialized verification for automated agents with additional security requirements

Modules§

components
HTTP message components that can be present in a given signed / unsigned message, and all the logic to parse it from an incoming message.

Structs§

MessageSigner
A struct that implements signing. The struct fields here are serialized into the Signature-Input header.
MessageVerifier
A MessageVerifier performs the verifications needed for a signed message.
ParameterDetails
Parsed values from Signature-Input header.
SignatureTiming
Micro-measurements of different parts of the process in a call to verify(). Useful for measuring overhead.
WebBotAuthVerifier
A verifier for Web Bot Auth messages specifically.

Enums§

Algorithm
Subset of HTTP signature algorithm implemented in this module. In the future, we may support more.
ImplementationError
Errors that may be thrown by this module.
WebBotAuthError
Errors thrown when verifying a Web Bot Auth-signed message specifically.

Traits§

SignedMessage
Trait that messages seeking verification should implement to facilitate looking up raw values from the underlying message.
UnsignedMessage
Trait that messages seeking signing should implement to generate Signature-Input and Signature header contents.
WebBotAuthSignedMessage
A trait that messages wishing to be verified as a web-bot-auth method specifically must implement.

Type Aliases§

KeyRing
A map from a thumbprint to the public key, to be used to map keyids to public keys.
PublicKey
Represents a public key to be consumed during the verification.
Thumbprint
Represents a JSON Web Key base64-encoded thumpprint as implemented per RFC 7638