コード例 #1
0
        public async Task HandleAsync()
        {
            NodeResponse response;

            if (request.KeyId == null)
            {
                response = new PublicKeyNodeResponse(
                    request.RequestId,
                    NodeData.Instance.NodeKeys.PublicKey,
                    NodeData.Instance.NodeKeys.SignPublicKey,
                    NodeData.Instance.NodeKeys.KeyId,
                    NodeData.Instance.NodeKeys.ExpirationTime);
            }
            else
            {
                var key = await keysService.GetNodeKeysAsync(NodeSettings.Configs.Node.Id, request.KeyId.Value);

                if (key == null)
                {
                    response = new ResultNodeResponse(request.RequestId, ObjectsLibrary.Enums.ErrorCode.ObjectDoesNotExists, "The key was not found.");
                }
                else
                {
                    response = new PublicKeyNodeResponse(request.RequestId, key.PublicKey, key.SignPublicKey, key.KeyId, key.ExpirationTime);
                }
            }
            await NodeWebSocketCommunicationManager.SendResponseAsync(response, current).ConfigureAwait(false);
        }
コード例 #2
0
        public async Task <NodeKeysDto> GetNodePublicKeyAsync(NodeConnection nodeConnection, long?keyId = null)
        {
            NodeRequest nodeRequest = keyId == null ? new GetPublicKeyNodeRequest() : new GetPublicKeyNodeRequest(keyId.Value);

            SendRequest(nodeConnection, nodeRequest);
            try
            {
                NodeResponse response = await GetResponseAsync(nodeRequest).ConfigureAwait(false);

                switch (response.ResponseType)
                {
                case Enums.NodeResponseType.PublicKey:
                {
                    PublicKeyNodeResponse nodeKeysResponse = (PublicKeyNodeResponse)response;
                    return(new NodeKeysDto
                        {
                            NodeId = (nodeConnection.Node?.Id).GetValueOrDefault(),
                            KeyId = nodeKeysResponse.KeyId,
                            PublicKey = nodeKeysResponse.PublicKey,
                            ExpirationTime = nodeKeysResponse.ExpirationTime,
                            SignPublicKey = nodeKeysResponse.SignPublicKey
                        });
                }

                default:
                    return(null);
                }
            }
            catch (ResponseException ex)
            {
                Logger.WriteLog(ex);
                return(null);
            }
        }