Makes sense to me. The user will have to know the type of the object to know whether encryption or decryption is occurring, but given that they can check isinstance or look at their code that doesn't seem unreasonable? I guess it slightly reduces at-a-glance readability.