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); }
/// <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; }
/// <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) { }
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."); } }