```python
def line_tag(body):
    if not isinstance(body, str):
        raise ValueError("line_tag expects a string")
    return format(sum(ord(ch) for ch in body) % 256, "02x")


def check_line(line):
    if not isinstance(line, str):
        raise ValueError("check_line expects a string")
    if len(line) < 3:
        raise ValueError("line must be at least three characters long")
    if line[-3] != '~':
        raise ValueError("line must end with '~'")
    tag = line_tag(line[:-3])
    if line[-2:] != tag:
        raise ValueError("line tag does not match body")
    return line[:-3]
```