protected PrincipalCollection convertBytesToPrincipals(byte[] bytes, SubjectContext subjectContext) {
        if (getCipherService() != null) {
            bytes = decrypt(bytes);
        }
        return deserialize(bytes);
    }
If a {@link #getCipherService() cipherService} is available, it will be used to first decrypt the byte array.
Then the bytes are then {@link #deserialize(byte[]) deserialized} and then returned.

@param bytes          the bytes to decrypt if necessary and then deserialize.
@param subjectContext the contextual data, usually provided by a {@link Subject.Builder} implementation, that
                      is being used to construct a {@link Subject} instance.
@return the deserialized and possibly decrypted principals
core/src/main/java/org/apache/shiro/mgt/AbstractRememberMeManager.java