Ejemplo n.º 1
0
        /// <summary>
        /// Initializes a new <c>TaskAgentPublicKey</c> instance with the specified exponent and modulus values.
        /// </summary>
        /// <param name="exponent">The exponent value of the key</param>
        /// <param name="modulus">The modulus value of the key</param>
        public TaskAgentPublicKey(
            Byte[] exponent,
            Byte[] modulus)
        {
            ArgumentUtility.CheckEnumerableForNullOrEmpty(exponent, nameof(exponent));
            ArgumentUtility.CheckEnumerableForNullOrEmpty(modulus, nameof(modulus));

            this.Exponent = exponent;
            this.Modulus  = modulus;
        }
        //These methods convert To and From base64 strings without padding
        //for JWT scenarios
        //code taken from the JWS spec here:
        //http://tools.ietf.org/html/draft-ietf-jose-json-web-signature-08#appendix-C
        public static String ToBase64StringNoPadding(this byte[] bytes)
        {
            ArgumentUtility.CheckEnumerableForNullOrEmpty(bytes, "bytes");

            string s = Convert.ToBase64String(bytes); // Regular base64 encoder

            s = s.Split('=')[0];                      // Remove any trailing '='s
            s = s.Replace('+', '-');                  // 62nd char of encoding
            s = s.Replace('/', '_');                  // 63rd char of encoding
            return(s);
        }
Ejemplo n.º 3
0
        public Boolean DeleteAllExcept(ISet <String> names)
        {
            ArgumentUtility.CheckEnumerableForNullOrEmpty(names, nameof(names));

            Boolean removed = false;

            if (m_items?.Count > 0)
            {
                foreach (var propertyName in m_items.Keys.Where(x => !names.Contains(x)).ToArray())
                {
                    removed |= Delete(propertyName);
                }
            }

            return(removed);
        }
Ejemplo n.º 4
0
        private static void ValidateIssuer(JsonWebToken token, JsonWebTokenValidationParameters parameters)
        {
            ArgumentUtility.CheckForNull(token, nameof(token));
            ArgumentUtility.CheckForNull(parameters, nameof(parameters));

            if (!parameters.ValidateIssuer)
            {
                return;
            }

            ArgumentUtility.CheckStringForNullOrEmpty(token.Issuer, nameof(token.Issuer));
            ArgumentUtility.CheckEnumerableForNullOrEmpty(parameters.ValidIssuers, nameof(parameters.ValidIssuers));

            foreach (string issuer in parameters.ValidIssuers)
            {
                if (string.Compare(issuer, token.Issuer, StringComparison.OrdinalIgnoreCase) == 0)
                {
                    return;
                }
            }

            throw new InvalidIssuerException(); //validation exception;
        }
Ejemplo n.º 5
0
        private static void ValidateAudience(JsonWebToken token, JsonWebTokenValidationParameters parameters)
        {
            ArgumentUtility.CheckForNull(token, nameof(token));
            ArgumentUtility.CheckForNull(parameters, nameof(parameters));

            if (!parameters.ValidateAudience)
            {
                return;
            }

            ArgumentUtility.CheckStringForNullOrEmpty(token.Audience, nameof(token.Audience));
            ArgumentUtility.CheckEnumerableForNullOrEmpty(parameters.AllowedAudiences, nameof(parameters.AllowedAudiences));

            foreach (string audience in parameters.AllowedAudiences)
            {
                if (string.Compare(audience, token.Audience, StringComparison.OrdinalIgnoreCase) == 0)
                {
                    return;
                }
            }

            throw new InvalidAudienceException(); //validation exception;
        }