/// <inheritdoc/> public async Task <TrustGroupRegistrationResultModel> CreateRootAsync( TrustGroupRootCreateRequestModel request, CancellationToken ct) { if (request == null) { throw new ArgumentNullException(nameof(request)); } var result = await _groups.AddAsync(request.ToRegistration(), ct); try { // Issues new root certificate var certificate = await RenewGroupCertificateAsync(result, null, ct); _logger.Information("Root {name} {groupId} created.", request.Name, result.Id); return(new TrustGroupRegistrationResultModel { Id = result.Id }); } catch { // Attempt to remove group await Try.Async(() => _groups.DeleteAsync(result.Id, r => true)); throw; } }
/// <summary> /// Create trust group model /// </summary> /// <param name="model"></param> public TrustGroupRootCreateRequestApiModel(TrustGroupRootCreateRequestModel model) { Name = model.Name; Type = model.Type; SubjectName = model.SubjectName; IssuedKeySize = model.IssuedKeySize; IssuedLifetime = model.IssuedLifetime; IssuedSignatureAlgorithm = model.IssuedSignatureAlgorithm; KeySize = model.KeySize; Lifetime = model.Lifetime; SignatureAlgorithm = model.SignatureAlgorithm; }