Skip to content

Can not pass padding as an argument anymore #260

@avalon1610

Description

@avalon1610

It's very inconvenient after this PR #244 when I want to pass some padding through argument.
I tried

fn foo(padding: &dyn PaddingScheme) {}  // error, PaddingScheme is not object safe
fn foo<P: PaddingScheme>(padding: P) {} // I need get padding method in runtime, not suitable

enum MyPaddingScheme {
    Oaep(Oaep),
    Pkcs1(Pkcs1v15Encrypt)
}

impl rsa::PaddingScheme for MyPaddingScheme {
    fn decrypt(Rng: CryptoRngCore, Priv: PrivateKey>(    // error, trait PrivateKey is private
        self,
        rng: Option<&mut Rng>,
        priv_key: &Priv,
        ciphertext: &[u8]
    ) -> rsa::errors::Result<Vec<u8>> {
        todo!()
    }
}

Any workaround will be appreciated

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions