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 de-serialized and possibly decrypted principals
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 de-serialized and possibly decrypted principals