#include "pa_tz_internal.h"

PaTzResult ConvertAuthenticateResult(
    const PaDriverCommandAuthenticateResponse_t *authenticate_response) {
  if (!authenticate_response) {
    return PA_TZ_AUTHENTICATION_FAILED;
  }

  PaDriverAuthenticateResult_t result = authenticate_response->result;
  switch (result) {
      case PaDriverAuthenticateResult_paAuthenticated: return PA_TZ_SUCCESS;
      case PaDriverAuthenticateResult_paTaskIsNotFound: return PA_TZ_AF_TASK_IS_NOT_FOUND;
      case PaDriverAuthenticateResult_paIntegrityIsNone: return PA_TZ_AF_INTEGRITY_IS_NONE;
      case PaDriverAuthenticateResult_paIntegrityIsNotready: return PA_TZ_AF_INTEGRITY_IS_NOT_READY;
      case PaDriverAuthenticateResult_paCertificateIsAbsent: return PA_TZ_AF_CERTIFICATE_IS_ABSENT;
      case PaDriverAuthenticateResult_paCertificateIsIncorrect: return PA_TZ_AF_CERTIFICATE_IS_INCORRECT;
      case PaDriverAuthenticateResult_paCertificateIsNotMatch: return PA_TZ_AF_CERTIFICATE_IS_NOT_MATCH;
      case PaDriverAuthenticateResult_paAppNameIsIncorrect: return PA_TZ_AF_APPNAME_IS_INCORRECT;
      case PaDriverAuthenticateResult_paNotSupported: return PA_TZ_PROCA_NOT_SUPPORTED;
      case PaDriverAuthenticateResult_paAppNameIsNotUnique: return PA_TZ_AF_TASK_HAS_DUPLICATE;
      default: return PA_TZ_AUTHENTICATION_FAILED;
    }
}
