private protected TrustedParty(string domainName,
                                string environmentName,
                                string partyName,
                                TrustedPartyConfiguration?configuration)
 {
     PartyName      = partyName;
     LocalParty     = (LocalParty)this;
     Identity       = BuildPath(domainName, environmentName, partyName);
     _configuration = configuration ?? TrustedPartyConfiguration.Standard;
     _symmetricKeys = new SymmetricKeyList(this);
 }
 private protected TrustedParty(LocalParty local,
                                string partyName,
                                RemoteIdentityOptions?identityOptions,
                                TrustedPartyConfiguration?configuration)
 {
     PartyName  = partyName;
     LocalParty = local;
     Identity   = BuildPath(identityOptions?.RemoteDomainNameOverride ?? local.DomainName,
                            identityOptions?.RemoteEnvironmentNameOverride ?? local.EnvironmentName,
                            identityOptions?.RemotePartyNameOverride ?? partyName);
     _configuration = configuration ?? TrustedPartyConfiguration.Standard;
     _symmetricKeys = new SymmetricKeyList(this);
 }