Skip to content

Consider supporting buffer-to-buffer cipher operations #31

Description

@newpavlov

For some use-cases (e.g. in TLS implementations) you need to decrypt/encrypt data from read-only source and write result into provided buffer.

To prevent code duplication I think the best solution will be to implement algorithms over enum like this:

enumCryptoBuf<'a>{InBuf(&'amut[u8]),BufToBuf{in_buf:&'a[u8],out_buf:&'amut[u8]},}traitCipher:Sized{/// Users are heavily discouraged from using this methodfn_encrypt(self,data:CryptoBuf);fnencrypt(self,buf:&mut[u8]){self._encrypt(CryptoBuf::InBuf(buf));}fnencrypt_b2b(self,in_buf:&mut[u8],out_buf:&mut[u8]) -> Result<(),Error>{ifcheck_lengths(in_buf, out_buf){Err(Error)? }self._encrypt(CryptoBuf::BufToBuf{ in_buf, out_buf });Ok(())}}

Any thoughts?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions