< Summary - CoreWCF Coverage — PR #1766

Information
Class: CoreWCF.Security.SendSecurityHeaderElementContainer
Assembly: CoreWCF.Primitives
File(s): /home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Primitives/src/CoreWCF/Security/SendSecurityHeaderElementContainer.cs
Line coverage
23%
Covered lines: 8
Uncovered lines: 26
Coverable lines: 34
Total lines: 116
Line coverage: 23.5%
Branch coverage
28%
Covered branches: 8
Total branches: 28
Branch coverage: 28.5%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

File(s)

/home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Primitives/src/CoreWCF/Security/SendSecurityHeaderElementContainer.cs

#LineLine coverage
 1// Licensed to the .NET Foundation under one or more agreements.
 2// The .NET Foundation licenses this file to you under the MIT license.
 3
 4using System.Collections.Generic;
 5using CoreWCF.IdentityModel;
 6using CoreWCF.IdentityModel.Tokens;
 7using ISecurityElement = CoreWCF.IdentityModel.ISecurityElement;
 8
 9namespace CoreWCF.Security
 10{
 11    internal class SendSecurityHeaderElementContainer
 12    {
 13        private List<SecurityToken> _signedSupportingTokens = null;
 14        private List<SendSecurityHeaderElement> _basicSupportingTokens = null;
 15        private List<SecurityToken> _endorsingSupportingTokens = null;
 16        private List<SecurityToken> _endorsingDerivedSupportingTokens = null;
 17        private List<SecurityToken> _signedEndorsingSupportingTokens = null;
 18        private List<SecurityToken> _signedEndorsingDerivedSupportingTokens = null;
 19        private List<SendSecurityHeaderElement> _signatureConfirmations = null;
 20        private List<SendSecurityHeaderElement> _endorsingSignatures = null;
 21        private Dictionary<SecurityToken, SecurityKeyIdentifierClause> _securityTokenMappedToIdentifierClause = null;
 22
 23        public SecurityTimestamp Timestamp;
 24        public SecurityToken PrerequisiteToken;
 25        public SecurityToken SourceSigningToken;
 26        public SecurityToken DerivedSigningToken;
 27        public SecurityToken SourceEncryptionToken;
 28        public SecurityToken WrappedEncryptionToken;
 29        public SecurityToken DerivedEncryptionToken;
 30        public ISecurityElement ReferenceList;
 31        public SendSecurityHeaderElement PrimarySignature;
 32
 33        private void Add<T>(ref List<T> list, T item)
 34        {
 035            if (list == null)
 36            {
 037                list = new List<T>();
 38            }
 039            list.Add(item);
 040        }
 41
 42        public SecurityToken[] GetSignedSupportingTokens()
 43        {
 12644            return _signedSupportingTokens?.ToArray();
 45        }
 46
 047        public void AddSignedSupportingToken(SecurityToken token) => Add<SecurityToken>(ref _signedSupportingTokens, tok
 48
 049        public List<SecurityToken> EndorsingSupportingTokens => _endorsingSupportingTokens;
 50
 18951        public SendSecurityHeaderElement[] GetBasicSupportingTokens() => _basicSupportingTokens?.ToArray();
 52
 053        public void AddBasicSupportingToken(SendSecurityHeaderElement tokenElement) => Add<SendSecurityHeaderElement>(re
 54
 55        public SecurityToken[] GetSignedEndorsingSupportingTokens()
 56        {
 18957            return _signedEndorsingSupportingTokens?.ToArray();
 58        }
 59
 60        public void AddSignedEndorsingSupportingToken(SecurityToken token)
 61        {
 062            Add<SecurityToken>(ref _signedEndorsingSupportingTokens, token);
 063        }
 64
 65        public SecurityToken[] GetSignedEndorsingDerivedSupportingTokens()
 66        {
 6367            return _signedEndorsingDerivedSupportingTokens?.ToArray();
 68        }
 69
 70        public void AddSignedEndorsingDerivedSupportingToken(SecurityToken token)
 71        {
 072            Add<SecurityToken>(ref _signedEndorsingDerivedSupportingTokens, token);
 073        }
 74
 12675        public SecurityToken[] GetEndorsingSupportingTokens() => _endorsingSupportingTokens?.ToArray();
 76
 077        public void AddEndorsingSupportingToken(SecurityToken token) => Add<SecurityToken>(ref _endorsingSupportingToken
 78
 6379        public SecurityToken[] GetEndorsingDerivedSupportingTokens() => _endorsingDerivedSupportingTokens?.ToArray();
 80
 081        public void AddEndorsingDerivedSupportingToken(SecurityToken token) => Add<SecurityToken>(ref _endorsingDerivedS
 82
 18983        public SendSecurityHeaderElement[] GetSignatureConfirmations() => _signatureConfirmations?.ToArray();
 84
 085        public void AddSignatureConfirmation(SendSecurityHeaderElement confirmation) => Add<SendSecurityHeaderElement>(r
 86
 12687        public SendSecurityHeaderElement[] GetEndorsingSignatures() => _endorsingSignatures?.ToArray();
 88
 089        public void AddEndorsingSignature(SendSecurityHeaderElement signature) => Add<SendSecurityHeaderElement>(ref _en
 90
 91        public void MapSecurityTokenToStrClause(SecurityToken securityToken, SecurityKeyIdentifierClause keyIdentifierCl
 92        {
 093            if (_securityTokenMappedToIdentifierClause == null)
 94            {
 095                _securityTokenMappedToIdentifierClause = new Dictionary<SecurityToken, SecurityKeyIdentifierClause>();
 96            }
 97
 098            if (!_securityTokenMappedToIdentifierClause.ContainsKey(securityToken))
 99            {
 0100                _securityTokenMappedToIdentifierClause.Add(securityToken, keyIdentifierClause);
 101            }
 0102        }
 103
 104        public bool TryGetIdentifierClauseFromSecurityToken(SecurityToken securityToken, out SecurityKeyIdentifierClause
 105        {
 0106            keyIdentifierClause = null;
 0107            if (securityToken == null
 0108                || _securityTokenMappedToIdentifierClause == null
 0109                || !_securityTokenMappedToIdentifierClause.TryGetValue(securityToken, out keyIdentifierClause))
 110            {
 0111                return false;
 112            }
 0113            return true;
 114        }
 115    }
 116}