public async Task LoginWithPostingKeyTest(KnownChains apiName) { var user = Users[apiName]; var request = new ValidatePrivateKeyModel(user.Login, user.PostingKey, KeyRoleType.Posting); var response = await Api[apiName].ValidatePrivateKey(request, CancellationToken.None); AssertResult(response); Assert.That(response.IsSuccess, Is.True); }
public async Task Login_With_Posting_Key_Wrong_Username(KnownChains apiName) { var user = Users[apiName]; user.Login += "x"; var request = new ValidatePrivateKeyModel(user.Login, user.PostingKey, KeyRoleType.Posting); var response = await Api[apiName].ValidatePrivateKey(request, CancellationToken.None); Assert.IsTrue(response.Exception.Message.StartsWith("13 N5boost16exception_detail10clone_implINS0_19error_info_injectorISt12out_of_rangeEEEE: unknown key")); }
public async Task Login_With_Posting_Key_Wrong_PostingKey(KnownChains apiName) { var user = Users[apiName]; user.PostingKey += "x"; var request = new ValidatePrivateKeyModel(user.Login, user.PostingKey, KeyRoleType.Posting); var response = await Api[apiName].ValidatePrivateKey(request, CancellationToken.None); Assert.IsTrue(response.Exception.Message.StartsWith(nameof(LocalizationKeys.WrongPrivatePostingKey))); }
public async Task <OperationResult <VoidResponse> > ValidatePrivateKey(ValidatePrivateKeyModel model, CancellationToken ct) { var results = Validate(model); if (results != null) { return(new OperationResult <VoidResponse>(results)); } var result = await _ditchClient.ValidatePrivateKey(model, ct); return(result); }
private void LoginWithPostingKeyTest(StringBuilder sb, int num) { sb.Append($"{num}) LoginWithPostingKeyTest : "); StepFinished?.Invoke(sb.ToString()); var request = new ValidatePrivateKeyModel(_user.Login, _user.PostingKey, KeyRoleType.Posting); var response = _api.ValidatePrivateKey(request, CancellationToken.None).Result; if (!response.IsSuccess) { sb.AppendLine($"fail. Reason:{Environment.NewLine} {response.Exception.Message}"); return; } sb.AppendLine("pass."); }
public override async Task <OperationResult <VoidResponse> > ValidatePrivateKey(ValidatePrivateKeyModel model, CancellationToken ct) { var keys = ToKey(model.PrivateKey); if (keys == null) { switch (model.KeyRoleType) { case KeyRoleType.Active: return(new OperationResult <VoidResponse>(new ValidationException(LocalizationKeys.WrongPrivateActimeKey))); case KeyRoleType.Posting: return(new OperationResult <VoidResponse>(new ValidationException(LocalizationKeys.WrongPrivatePostingKey))); } } var isConnected = await TryReconnectChain(ct); if (!isConnected) { return(new OperationResult <VoidResponse>(new ValidationException(LocalizationKeys.EnableConnectToBlockchain))); } var result = new OperationResult <VoidResponse>(); var args = new FindAccountsArgs { Accounts = new[] { model.Login } }; var resp = await _operationManager.FindAccounts(args, CancellationToken.None); if (resp.IsError) { result.Exception = new RequestException(resp); return(result); } if (resp.Result.Accounts.Length != 1 || resp.Result.Accounts[0] == null) { return(new OperationResult <VoidResponse>(new ValidationException(LocalizationKeys.UnexpectedProfileData))); } Authority authority; switch (model.KeyRoleType) { case KeyRoleType.Active: authority = resp.Result.Accounts[0].Active; break; case KeyRoleType.Posting: authority = resp.Result.Accounts[0].Posting; break; default: throw new NotImplementedException(); } var isSame = KeyHelper.ValidatePrivateKey(keys, authority.KeyAuths.Select(i => i.Key.Data).ToArray()); if (isSame) { return(new OperationResult <VoidResponse>(new VoidResponse())); } switch (model.KeyRoleType) { case KeyRoleType.Active: return(new OperationResult <VoidResponse>(new ValidationException(LocalizationKeys.WrongPrivateActimeKey))); default: return(new OperationResult <VoidResponse>(new ValidationException(LocalizationKeys.WrongPrivatePostingKey))); } }
public abstract Task <OperationResult <VoidResponse> > ValidatePrivateKey(ValidatePrivateKeyModel model, CancellationToken ct);