@Override
  public Object getObjectToEncode(Object object) {
    if (object instanceof ChosenValue) {
      ChosenValue chosen = (ChosenValue) object;
      return chosen.getValue();
    }

    if (object instanceof ASN1Encodable) {
      Object[] value = new Object[1];
      ((ASN1Encodable) object).encodeValues(value);
      return getObjectToEncode(value[0]);
    }

    return ((Object[]) object)[1];
  }