fn i2osp(input: &str) -> String {
    let width = if input.len() % 2 == 0 {
        input.len()
    } else {
        input.len() + 1
    };
    format!("{:0>width$}", input, width = width)
}
/// add one leading zero to string if necessary
/// "Efficient Noninteractive Certification of RSA Moduli and Beyond" by Goldberg et al. 2019 suggests using I2OSP from https://tools.ietf.org/html/rfc8017#section-4.1
/// and our .tostring() and .to_hex() implementations may miss one zero
add one leading zero to string if necessary
"Efficient Noninteractive Certification of RSA Moduli and Beyond" by Goldberg et al.
add one leading zero to string if necessary " Efficient Noninteractive Certification of RSA Moduli and Beyond " by Goldberg et al .
fn i2osp(input: &str) -> String {
    let width = if input.len() % 2 == 0 {
        input.len()
    } else {
        input.len() + 1
    };
    format!("{:0>width$}", input, width = width)
}
fn i2osp ( input : & str ) -> String { let width = if input . len ( ) % 2 == 0 { input . len ( ) } else { input . len ( ) + 1 } ; format ! ( " " input width width ) }
add one leading zero to string if necessary
"Efficient Noninteractive Certification of RSA Moduli and Beyond" by Goldberg et al.
add one leading zero to string if necessary " Efficient Noninteractive Certification of RSA Moduli and Beyond " by Goldberg et al .
input
&str