Exemplo n.º 1
0
        private async Task GetSessionKey(Stream stream)
        {
            try
            {
                Tuple <ICryptoTransform, ICryptoTransform, KeyDataForSymmetricAlgorithm> encSym =
                    CryptoFactoryF.CreateSymmetricAlgoritm(ChoosenCrypto.Provider, ChoosenCrypto.Symmetric);
                var resultForClient = new CurrentResult <KeyDataForSymmetricAlgorithm>()
                {
                    OperationWasFinishedSuccessful = true,
                    Result = encSym.Item3
                };
                await ReturnResultToClientAsync(resultForClient, true).ConfigureAwait(false);

                EncrypterF = encSym.Item1;
                DecryptorF = encSym.Item2;
            }
            catch (Exception ex)
            {
                var result = new ResultOfOperation()
                {
                    ErrorMessage =
                        "Во время выполнения операции получения сессионного ключа, возникла непредвиденная ошибка."
                };
                await ReturnResultToClientAsync(result, true).ConfigureAwait(false);
            }
        }