pub trait Verifiable {
// Required methods
fn id(&self) -> CredentialId;
fn info(&self) -> CredentialInfo;
fn message(&self) -> Binary;
fn validate(&self) -> Result<(), AuthError>;
// Provided method
fn message_digest(&self) -> Result<Vec<u8>, AuthError> { ... }
}