Revision control
Copy as Markdown
Other Tools
//! This module contains basic base64 functionality as used in Hawk.
use base64::engine::{
general_purpose::{GeneralPurpose, GeneralPurposeConfig},
DecodePaddingMode,
};
/// BEWIT_ENGINE encodes to a url-safe value with no padding, but is indifferent to padding on
/// decode. This is used to encode bewits, which often appear in URLs.
pub(crate) const BEWIT_ENGINE: GeneralPurpose = GeneralPurpose::new(
&base64::alphabet::URL_SAFE,
GeneralPurposeConfig::new()
.with_encode_padding(false)
.with_decode_padding_mode(DecodePaddingMode::Indifferent),
);
/// STANDARD_ENGINE encodes with the standard alphabet and includes padding. This is
/// used to encode MACs and hashes.
pub(crate) const STANDARD_ENGINE: GeneralPurpose = base64::engine::general_purpose::STANDARD;