protected override BodyWriter GetFirstOutgoingMessageBody(AcceleratedTokenProviderState negotiationState, out MessageProperties messageProperties)
        {
            messageProperties = null;
            RequestSecurityToken rst = new RequestSecurityToken(StandardsManager);

            rst.Context   = negotiationState.Context;
            rst.KeySize   = SecurityAlgorithmSuite.DefaultSymmetricKeyLength;
            rst.TokenType = SecurityContextTokenUri;
            byte[] requestorEntropy = negotiationState.GetRequestorEntropy();
            if (requestorEntropy != null)
            {
                rst.SetRequestorEntropy(requestorEntropy);
            }
            rst.MakeReadOnly();
            return(rst);
        }
Example #2
0
        private RequestSecurityToken CreateRst(EndpointAddress target, out object requestState)
        {
            RequestSecurityToken token = new RequestSecurityToken(this.standardsManager)
            {
                KeySize   = this.SecurityAlgorithmSuite.DefaultSymmetricKeyLength,
                TokenType = this.sctUri
            };

            if ((this.KeyEntropyMode == SecurityKeyEntropyMode.ClientEntropy) || (this.KeyEntropyMode == SecurityKeyEntropyMode.CombinedEntropy))
            {
                byte[] entropy = this.GenerateEntropy(token.KeySize);
                token.SetRequestorEntropy(entropy);
                requestState = entropy;
                return(token);
            }
            requestState = null;
            return(token);
        }
        RequestSecurityToken CreateRst(EndpointAddress target, out object requestState)
        {
            RequestSecurityToken rst = new RequestSecurityToken(this.standardsManager);

            //rst.SetAppliesTo<EndpointAddress>(target, new XmlFormatter());
            rst.KeySize   = this.SecurityAlgorithmSuite.DefaultSymmetricKeyLength;
            rst.TokenType = this.sctUri;
            if (this.KeyEntropyMode == SecurityKeyEntropyMode.ClientEntropy || this.KeyEntropyMode == SecurityKeyEntropyMode.CombinedEntropy)
            {
                byte[] entropy = GenerateEntropy(rst.KeySize);
                rst.SetRequestorEntropy(entropy);
                requestState = entropy;
            }
            else
            {
                requestState = null;
            }
            return(rst);
        }
Example #4
0
        private RequestSecurityToken CreateRst(EndpointAddress target, out object requestState)
        {
            RequestSecurityToken rst = new RequestSecurityToken(_standardsManager);

            rst.KeySize   = SecurityAlgorithmSuite.DefaultSymmetricKeyLength;
            rst.TokenType = _sctUri;
            if (KeyEntropyMode == SecurityKeyEntropyMode.ClientEntropy || KeyEntropyMode == SecurityKeyEntropyMode.CombinedEntropy)
            {
                byte[] entropy = GenerateEntropy(rst.KeySize);
                rst.SetRequestorEntropy(entropy);
                requestState = entropy;
            }
            else
            {
                requestState = null;
            }

            return(rst);
        }