def _non_framed_body_length(header, plaintext_length):
    """Calculates the length of a non-framed message body, given a complete header.

    :param header: Complete message header object
    :type header: aws_encryption_sdk.structures.MessageHeader
    :param int plaintext_length: Length of plaintext in bytes
    :rtype: int
    """
    body_length = header.algorithm.iv_len  # IV
    body_length += 8  # Encrypted Content Length
    body_length += plaintext_length  # Encrypted Content
    body_length += header.algorithm.auth_len  # Authentication Tag
    return body_length