This should probably be documented as returning an object that conforms to some ABC?  Maybe even just `CipherContext`?