File: EncryptedSecurityToken.cs

package info (click to toggle)
mono 6.14.1%2Bds2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,282,732 kB
  • sloc: cs: 11,182,461; xml: 2,850,281; ansic: 699,123; cpp: 122,919; perl: 58,604; javascript: 30,841; asm: 21,845; makefile: 19,602; sh: 10,973; python: 4,772; pascal: 925; sql: 859; sed: 16; php: 1
file content (124 lines) | stat: -rw-r--r-- 4,113 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
using System;
using System.Collections.Generic;
using System.Text;
using System.IdentityModel.Tokens;
using System.Collections.ObjectModel;

namespace System.IdentityModel.Tokens
{
    /// <summary>
    /// A pseudo-token which handles encryption for a token which
    /// does not natively support it.
    /// </summary>
    /// <remarks>
    /// For example, a SamlSecurityToken has no notion of how to encrypt
    /// itself, so to issue an encrypted SAML11 assertion, wrap a 
    /// SamlSecurityToken with an EncryptedSecurityToken and provide 
    /// appropriate EncryptingCredentials.
    /// </remarks>
    public class EncryptedSecurityToken : SecurityToken
    {
        EncryptingCredentials _encryptingCredentials;
        SecurityToken _realToken;

        /// <summary>
        /// Creates an instance of EncryptedSecurityToken.
        /// </summary>
        /// <param name="token">The <see cref="SecurityToken"/> to encrypt.</param>
        /// <param name="encryptingCredentials">The <see cref="EncryptingCredentials"/> to use for encryption.</param>
        public EncryptedSecurityToken(SecurityToken token, EncryptingCredentials encryptingCredentials)
        {
            if (null == token)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("token");
            }
            if (null == encryptingCredentials)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("encryptingCredentials");
            }

            _encryptingCredentials = encryptingCredentials;
            _realToken = token;
        }

        /// <summary>
        /// Inherited from <see cref="SecurityToken"/>.
        /// </summary>
        public override bool CanCreateKeyIdentifierClause<T>()
        {
            return _realToken.CanCreateKeyIdentifierClause<T>();
        }

        /// <summary>
        /// Inherited from <see cref="SecurityToken"/>.
        /// </summary>
        public override T CreateKeyIdentifierClause<T>()
        {
            return _realToken.CreateKeyIdentifierClause<T>();
        }

        /// <summary>
        /// Gets the <see cref="EncryptingCredentials"/> to use for encryption.
        /// </summary>
        public EncryptingCredentials EncryptingCredentials
        {
            get { return _encryptingCredentials; }
        }

        /// <summary>
        /// Gets a unique identifier of the security token.
        /// </summary>
        public override string Id
        {
            get { return _realToken.Id; }
        }

        /// <summary>
        /// Inherited from <see cref="SecurityToken"/>.
        /// </summary>
        public override bool MatchesKeyIdentifierClause(SecurityKeyIdentifierClause keyIdentifierClause)
        {
            return _realToken.MatchesKeyIdentifierClause(keyIdentifierClause);
        }

        /// <summary>
        /// Inherited from <see cref="SecurityToken"/>.
        /// </summary>
        public override SecurityKey ResolveKeyIdentifierClause(SecurityKeyIdentifierClause keyIdentifierClause)
        {
            return _realToken.ResolveKeyIdentifierClause(keyIdentifierClause);
        }

        /// <summary>
        /// Inherited from <see cref="SecurityToken"/>.
        /// </summary>
        public override ReadOnlyCollection<SecurityKey> SecurityKeys
        {
            get { return _realToken.SecurityKeys; }
        }

        /// <summary>
        /// Gets the encrypted <see cref="SecurityToken"/>.
        /// </summary>
        public SecurityToken Token
        {
            get { return _realToken; }
        }

        /// <summary>
        /// Gets the first instant in time at which this security token is valid.
        /// </summary>
        public override DateTime ValidFrom
        {
            get { return _realToken.ValidFrom; }
        }

        /// <summary>
        /// Gets the last instant in time at which this security token is valid.
        /// </summary>
        public override DateTime ValidTo
        {
            get { return _realToken.ValidTo; }
        }
    }
}