Unverified Commit a8413b8b authored by Steven Fackler's avatar Steven Fackler Committed by GitHub
Browse files

Merge pull request #2100 from alex/symm-update-unchecked

Added `update_unchecked` to `symm::Crypter`
parents 2d9458e0 602d38dc
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -581,7 +581,8 @@ impl CipherCtxRef {
    /// output size check removed. It can be used when the exact
    /// buffer size control is maintained by the caller.
    ///
    /// SAFETY: The caller is expected to provide `output` buffer
    /// # Safety
    /// The caller is expected to provide `output` buffer
    /// large enough to contain correct number of bytes. For streaming
    /// ciphers the output buffer size should be at least as big as
    /// the input buffer. For block ciphers the size of the output
@@ -693,7 +694,8 @@ impl CipherCtxRef {
    /// This function is the same as [`Self::cipher_final`] but with
    /// the output buffer size check removed.
    ///
    /// SAFETY: The caller is expected to provide `output` buffer
    /// # Safety
    /// The caller is expected to provide `output` buffer
    /// large enough to contain correct number of bytes. For streaming
    /// ciphers the output buffer can be empty, for block ciphers the
    /// output buffer should be at least as big as the block.
+1 −1
Original line number Diff line number Diff line
@@ -119,7 +119,7 @@
//! ```
#![doc(html_root_url = "https://docs.rs/openssl/0.10")]
#![warn(rust_2018_idioms)]
#![allow(clippy::uninlined_format_args)]
#![allow(clippy::uninlined_format_args, clippy::needless_doctest_main)]

#[doc(inline)]
pub use ffi::init;
+21 −0
Original line number Diff line number Diff line
@@ -696,6 +696,27 @@ impl Crypter {
        self.ctx.cipher_update(input, Some(output))
    }

    /// Feeds data from `input` through the cipher, writing encrypted/decrypted
    /// bytes into `output`.
    ///
    /// The number of bytes written to `output` is returned. Note that this may
    /// not be equal to the length of `input`.
    ///
    /// # Safety
    ///
    /// The caller must provide an `output` buffer large enough to contain
    /// correct number of bytes. For streaming ciphers the output buffer size
    /// should be at least as big as the input buffer. For block ciphers the
    /// size of the output buffer depends on the state of partially updated
    /// blocks.
    pub unsafe fn update_unchecked(
        &mut self,
        input: &[u8],
        output: &mut [u8],
    ) -> Result<usize, ErrorStack> {
        self.ctx.cipher_update_unchecked(input, Some(output))
    }

    /// Finishes the encryption/decryption process, writing any remaining data
    /// to `output`.
    ///