private static Mock <IYubicoClient> SetupClient(YubicoResponseStatus responseStatus, string publicId)
            {
                var response = new Mock <IYubicoResponse>();

                response.SetupGet(x => x.Status).Returns(responseStatus);
                response.SetupGet(x => x.PublicId).Returns(publicId);

                var client = new Mock <IYubicoClient>();

                client.Setup(x => x.Verify(It.IsAny <string>())).Returns(response.Object).Verifiable();
                return(client);
            }
Exemple #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="YubikeyInvalidResponseException"/> class.
 /// </summary>
 /// <param name="status"> The status. </param>
 /// <param name="exception"> The exception. </param>
 public YubikeyInvalidResponseException(YubicoResponseStatus status, Exception exception)
     : base("Error while executing request.", exception)
 {
     this.Status = status;
 }
Exemple #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="YubikeyInvalidResponseException"/> class.
 /// </summary>
 /// <param name="status"> The response status. </param>
 public YubikeyInvalidResponseException(YubicoResponseStatus status)
     : this(status, null)
 {
 }
Exemple #4
0
        public YubicoResponseImpl(string response)
        {
            StringReader reader = new StringReader(response);
            string       line;

            _responseMap = new SortedDictionary <string, string>();

            while ((line = reader.ReadLine()) != null)
            {
                bool     unhandled = false;
                string[] parts     = line.Split(new char[] { '=' }, 2);
                switch (parts[0])
                {
                case "h":
                    _h = parts[1];
                    break;

                case "t":
                    _t = parts[1];
                    break;

                case "status":
                    _status = (YubicoResponseStatus)Enum.Parse(typeof(YubicoResponseStatus), parts[1], true);
                    break;

                case "timestamp":
                    _timestamp = int.Parse(parts[1]);
                    break;

                case "sessioncounter":
                    _sessionCounter = int.Parse(parts[1]);
                    break;

                case "sessionuse":
                    _useCounter = int.Parse(parts[1]);
                    break;

                case "sl":
                    _sync = parts[1];
                    break;

                case "otp":
                    _otp = parts[1];
                    break;

                case "nonce":
                    _nonce = parts[1];
                    break;

                default:
                    unhandled = true;
                    break;
                }

                if (!unhandled)
                {
                    _responseMap.Add(parts[0], parts[1]);
                }
            }

            if (_status == YubicoResponseStatus.EMPTY)
            {
                throw new YubicoValidationException("Response is malformed.");
            }
        }