@Override
    final long computeLastPartSize(UploadPartRequest req) {
        return req.getPartSize()
             + (contentCryptoScheme.getTagLengthInBits() / 8);
    }
Adjusts the retrieved S3Object so that the object contents contain only the range of bytes
desired by the user.  Since encrypted contents can only be retrieved in CIPHER_BLOCK_SIZE
(16 bytes) chunks, the S3Object potentially contains more bytes than desired, so this method
adjusts the contents range.

@param s3object
     The S3Object retrieved from S3 that could possibly contain more bytes than desired
     by the user.
@param range
     A two-element array of longs corresponding to the start and finish (inclusive) of a desired
     range of bytes.
@param instruction
     Instruction file in JSON or null if no instruction file is involved
@return
     The S3Object with adjusted object contents containing only the range desired by the user.
     If the range specified is invalid, then the S3Object is returned without any modifications.
aws-java-sdk-s3/src/main/java/com/amazonaws/services/s3/internal/crypto/v2/S3CryptoModuleAE.java