public static Thinktecture.IdentityServer.Models.Configuration.KeyMaterialConfiguration ToDomainModel(this KeyMaterialConfigurationDto dto) { var model = new Thinktecture.IdentityServer.Models.Configuration.KeyMaterialConfiguration(); if (dto == null) { return model; } if (!string.IsNullOrWhiteSpace(dto.SigningCertificateName)) { var cert = X509.LocalMachine.My.SubjectDistinguishedName.Find(dto.SigningCertificateName, false).FirstOrDefault(); if (cert == null) { throw new InvalidOperationException(string.Format("SigningCertificateNotFound")); } model.SigningCertificate = cert; } if (!string.IsNullOrWhiteSpace(dto.DecryptionCertificateName)) { var cert = X509.LocalMachine.My.SubjectDistinguishedName.Find(dto.DecryptionCertificateName, false).FirstOrDefault(); if (cert == null) { throw new InvalidOperationException(string.Format("DecryptionCertificateNotFound")); } model.DecryptionCertificate = cert; } else { model.DecryptionCertificate = null; } model.SymmetricSigningKey = dto.SymmetricSigningKey; return model; }
public static Models.Configuration.KeyMaterialConfiguration ToDomainModel(this Entities.Configuration.KeyMaterialConfiguration entity) { var model = new Models.Configuration.KeyMaterialConfiguration(); if (entity == null) { return model; } if (!string.IsNullOrWhiteSpace(entity.SigningCertificateName)) { var cert = X509.LocalMachine.My.SubjectDistinguishedName.Find(entity.SigningCertificateName, false).FirstOrDefault(); if (cert == null) { throw new InvalidOperationException(string.Format(Resources.Mappings.SigningCertificateNotFoundException, entity.SigningCertificateName)); } model.SigningCertificate = cert; } if (!string.IsNullOrWhiteSpace(entity.DecryptionCertificateName)) { var cert = X509.LocalMachine.My.SubjectDistinguishedName.Find(entity.DecryptionCertificateName, false).FirstOrDefault(); if (cert == null) { throw new InvalidOperationException(string.Format(Resources.Mappings.DecryptionCertificateNotFoundException, entity.DecryptionCertificateName)); } model.DecryptionCertificate = cert; } else { model.DecryptionCertificate = null; } model.SymmetricSigningKey = entity.SymmetricSigningKey; return model; }