276 lines
9.8 KiB
C#
276 lines
9.8 KiB
C#
using Azure;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using VPKI.Library.Model;
|
|
using VPKI.Library.Packet;
|
|
using VPKI.Web.Api.Services;
|
|
|
|
namespace VPKI.Web.Api.Controllers
|
|
{
|
|
[ApiController()]
|
|
[Route("api/v2")]
|
|
public class VPKIv2_Controller : VPKIBaseController
|
|
{
|
|
public VPKIv2_Controller(IServiceProvider serviceProvider, IHttpContextAccessor _httpContextAccessor)
|
|
: base(serviceProvider, _httpContextAccessor)
|
|
{
|
|
}
|
|
|
|
#region prov
|
|
/// <summary>
|
|
/// CSR 생성 요청 (ISO15118-20) prov
|
|
/// </summary>
|
|
[Tags("VPKI API v2 prov")]
|
|
[HttpPost]
|
|
[Route("prov/tbscsr")]
|
|
public async Task<IResult> ProvTbscsr([FromBody] Request_Tbscsr _request)
|
|
{
|
|
Response_Tbscsr response = new Response_Tbscsr();
|
|
|
|
Guid guid = Guid.NewGuid();
|
|
Log4net.WriteLine(GetRequestLog(_request).LogModelToString($"Request ({guid})"));
|
|
|
|
var service = _serviceProvider.GetService<ISO15118_20Service>();
|
|
if(service != null)
|
|
{
|
|
response = await service.RequestTbscsr(_request, Library.Enums.VpkiType.prov_cert);
|
|
}
|
|
|
|
Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
|
|
|
|
return Results.Ok(response);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 인증서 발급 요청 (ISO15118-20) prov
|
|
/// </summary>
|
|
[Tags("VPKI API v2 prov")]
|
|
[HttpPost]
|
|
[Route("prov/certificate")]
|
|
public async Task<IResult> ProvCertificate([FromBody] Request_Certificate _request)
|
|
{
|
|
Response_Certificate response = new Response_Certificate();
|
|
|
|
Guid guid = Guid.NewGuid();
|
|
Log4net.WriteLine(GetRequestLog(_request).LogModelToString($"Request ({guid})"));
|
|
|
|
var service = _serviceProvider.GetService<ISO15118_20Service>();
|
|
if(service != null)
|
|
{
|
|
response = await service.RequestCertificate(_request, Library.Enums.VpkiType.prov_cert);
|
|
}
|
|
|
|
Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
|
|
|
|
return Results.Ok(response);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 인증서 검증 결과 전송 (ISO15118-20) prov
|
|
/// </summary>
|
|
[Tags("VPKI API v2 prov")]
|
|
[HttpPost]
|
|
[Route("prov/verifyresult")]
|
|
public async Task<IResult> ProvVerifyresult([FromBody] Request_Verifyresult request)
|
|
{
|
|
Response_Verifyresult response = new Response_Verifyresult();
|
|
|
|
Guid guid = Guid.NewGuid();
|
|
Log4net.WriteLine(GetRequestLog(request).LogModelToString($"Request ({guid})"));
|
|
|
|
var service = _serviceProvider.GetService<ISO15118_20Service>();
|
|
if (service != null)
|
|
{
|
|
response = await service.RequestVerifyresult(request);
|
|
}
|
|
|
|
Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
|
|
|
|
return Results.Ok(response);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 인증서 재발급 (ISO15118-20)
|
|
/// </summary>
|
|
[Tags("VPKI API v2 prov")]
|
|
[HttpPost]
|
|
[Route("prov/reissue")]
|
|
[ApiExplorerSettings(IgnoreApi = true)]
|
|
public async Task<IResult> ProvReissue([FromBody] Request_Certificate request)
|
|
{
|
|
//Response_Certificate response = new Response_Certificate();
|
|
|
|
//Guid guid = Guid.NewGuid();
|
|
//Log4net.WriteLine(GetRequestLog(request).LogModelToString($"Request ({guid})"));
|
|
|
|
//var service = _serviceProvider.GetService<ISO15118_20Service>();
|
|
//if (service != null)
|
|
//{
|
|
// response = await service.RequestCertificateReissue(request, Library.Enums.VpkiType.prov_cert);
|
|
//}
|
|
|
|
//Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
|
|
|
|
//return Results.Ok(response);
|
|
await Task.CompletedTask;
|
|
return Results.NotFound();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 인증서 폐기 (ISO15118-20)
|
|
/// </summary>
|
|
[Tags("VPKI API v2 prov")]
|
|
[HttpPost]
|
|
[Route("prov/revoke")]
|
|
[ApiExplorerSettings(IgnoreApi = true)]
|
|
public async Task<IResult> ProvRevoke([FromBody] Request_CertificateRevokeOEM request)
|
|
{
|
|
//Response_CertificateRevokeOEM response = new Response_CertificateRevokeOEM();
|
|
|
|
//Guid guid = Guid.NewGuid();
|
|
//Log4net.WriteLine(GetRequestLog(request).LogModelToString($"Request ({guid})"));
|
|
|
|
//var service = _serviceProvider.GetService<ISO15118_20Service>();
|
|
//if (service != null)
|
|
//{
|
|
// response = await service.RequestCertificateRevoke(request, Library.Enums.VpkiType.prov_cert);
|
|
//}
|
|
|
|
//Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
|
|
|
|
//return Results.Ok(response);
|
|
await Task.CompletedTask;
|
|
return Results.NotFound();
|
|
}
|
|
#endregion
|
|
|
|
#region vehicle
|
|
/// <summary>
|
|
/// CSR 생성 요청 (ISO15118-20) vehicle
|
|
/// </summary>
|
|
[Tags("VPKI API v2 vehicle")]
|
|
[HttpPost]
|
|
[Route("vehicle/tbscsr")]
|
|
public async Task<IResult> VehicleTbscsr([FromBody] Request_Tbscsr _request)
|
|
{
|
|
Response_Tbscsr response = new Response_Tbscsr();
|
|
|
|
Guid guid = Guid.NewGuid();
|
|
Log4net.WriteLine(GetRequestLog(_request).LogModelToString($"Request ({guid})"));
|
|
|
|
var service = _serviceProvider.GetService<ISO15118_20Service>();
|
|
if (service != null)
|
|
{
|
|
response = await service.RequestTbscsr(_request, Library.Enums.VpkiType.vehicle_cert);
|
|
}
|
|
|
|
Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
|
|
|
|
return Results.Ok(response);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 인증서 발급 요청 (ISO15118-20) vehicle
|
|
/// </summary>
|
|
[Tags("VPKI API v2 vehicle")]
|
|
[HttpPost]
|
|
[Route("vehicle/certificate")]
|
|
public async Task<IResult> VehicleCertificate([FromBody] Request_Certificate _request)
|
|
{
|
|
Response_Certificate response = new Response_Certificate();
|
|
|
|
Guid guid = Guid.NewGuid();
|
|
Log4net.WriteLine(GetRequestLog(_request).LogModelToString($"Request ({guid})"));
|
|
|
|
var service = _serviceProvider.GetService<ISO15118_20Service>();
|
|
if (service != null)
|
|
{
|
|
response = await service.RequestCertificate(_request, Library.Enums.VpkiType.vehicle_cert);
|
|
}
|
|
|
|
Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
|
|
|
|
return Results.Ok(response);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 인증서 검증 결과 전송 (ISO15118-20) vehicle
|
|
/// </summary>
|
|
[Tags("VPKI API v2 vehicle")]
|
|
[HttpPost]
|
|
[Route("vehicle/verifyresult")]
|
|
public async Task<IResult> VehicleVerifyresult([FromBody] Request_Verifyresult request)
|
|
{
|
|
Response_Verifyresult response = new Response_Verifyresult();
|
|
|
|
Guid guid = Guid.NewGuid();
|
|
Log4net.WriteLine(GetRequestLog(request).LogModelToString($"Request ({guid})"));
|
|
|
|
var service = _serviceProvider.GetService<ISO15118_20Service>();
|
|
if (service != null)
|
|
{
|
|
response = await service.RequestVerifyresult(request);
|
|
}
|
|
|
|
Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
|
|
|
|
return Results.Ok(response);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 인증서 재발급 (ISO15118-20)
|
|
/// </summary>
|
|
[Tags("VPKI API v2 vehicle")]
|
|
[HttpPost]
|
|
[Route("vehicle/reissue")]
|
|
[ApiExplorerSettings(IgnoreApi = true)]
|
|
public async Task<IResult> VehicleReissue([FromBody] Request_Certificate request)
|
|
{
|
|
//Response_Certificate response = new Response_Certificate();
|
|
|
|
//Guid guid = Guid.NewGuid();
|
|
//Log4net.WriteLine(GetRequestLog(request).LogModelToString($"Request ({guid})"));
|
|
|
|
//var service = _serviceProvider.GetService<ISO15118_20Service>();
|
|
//if (service != null)
|
|
//{
|
|
// response = await service.RequestCertificateReissue(request, Library.Enums.VpkiType.vehicle_cert);
|
|
//}
|
|
|
|
//Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
|
|
|
|
//return Results.Ok(response);
|
|
await Task.CompletedTask;
|
|
return Results.NotFound();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 인증서 폐기 (ISO15118-20)
|
|
/// </summary>
|
|
[Tags("VPKI API v2 vehicle")]
|
|
[HttpPost]
|
|
[Route("vehicle/revoke")]
|
|
[ApiExplorerSettings(IgnoreApi = true)]
|
|
public async Task<IResult> VehicleRevoke([FromBody] Request_CertificateRevokeOEM request)
|
|
{
|
|
//Response_CertificateRevokeOEM response = new Response_CertificateRevokeOEM();
|
|
|
|
//Guid guid = Guid.NewGuid();
|
|
//Log4net.WriteLine(GetRequestLog(request).LogModelToString($"Request ({guid})"));
|
|
|
|
//var service = _serviceProvider.GetService<ISO15118_20Service>();
|
|
//if (service != null)
|
|
//{
|
|
// response = await service.RequestCertificateRevoke(request, Library.Enums.VpkiType.vehicle_cert);
|
|
//}
|
|
|
|
//Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
|
|
|
|
//return Results.Ok(response);
|
|
await Task.CompletedTask;
|
|
return Results.NotFound();
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|