#![forbid(unsafe_code)]
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
#![cfg_attr(all(not(feature = "std"), not(test)), no_std)]
#![warn(clippy::arithmetic_side_effects)]
#![warn(missing_docs)]
extern crate alloc;
mod authenticode_digest;
mod pe;
mod signature;
mod win_cert;
#[cfg(feature = "object")]
mod pe_object;
use core::convert::TryInto;
pub use authenticode_digest::authenticode_digest;
pub use pe::{PeOffsetError, PeOffsets, PeTrait};
pub use signature::{
AuthenticodeSignature, AuthenticodeSignatureParseError, DigestInfo,
SPC_INDIRECT_DATA_OBJID, SpcAttributeTypeAndOptionalValue,
SpcIndirectDataContent,
};
pub use win_cert::{
AttributeCertificate, AttributeCertificateAuthenticodeError,
AttributeCertificateError, AttributeCertificateIterator,
WIN_CERT_REVISION_2_0, WIN_CERT_TYPE_PKCS_SIGNED_DATA,
};
fn usize_from_u32(val: u32) -> usize {
val.try_into().unwrap()
}