Análise de código de classes da utilitário (CNG exemplo)

O arquivo Utilities.cs no exemplo de comunicação segura a CNG (Cryptography Next Generation) fornece sinalizadores de controle de todo o aplicativo e os métodos usados pelo Alice, Bob, e Mallory projetos. Esses métodos e os sinalizadores são discutidos nas seções a seguintes:

  • Sinalizadores de versão, fVerbose e fMallory

  • Método carregador automático

  • Método InitConsole

  • Método SplashScreen

  • Métodos ReadALine e ReadAChar

  • Método InitializeOptions

  • Exibir métodos

Para obter uma visão geral do exemplo, consulte Exemplo da Secure Communication Cryptography Next Generation (CNG).

Sinalizadores de versão, fVerbose e fMallory

  • Version: Um valor inteiro que determina qual modelo de segurança é demonstrado, conforme definido na tabela a seguir.

    Versão

    Modelo de segurança

    1

    Sem criptografia (texto não criptografado mensagens).

    2

    Mensagens criptografadas.

    3

    Assinaturas digital não seguras usados com as chaves criptográficas e mensagens criptografadas.

    4

    Assinaturas digital seguras usado com chaves criptográficas e mensagens criptografadas.

    5

    Encerramento de programa com erros de segurança.

  • fVerbose: Um valor booliano que controla exibem a saída. Um valor de true Exibe todas as mensagens no formato criptografado e ASCII. Um valor de false Exibe mensagens no somente formato ASCII.

  • fMallory: Um valor booliano que controla se o projeto Mallory está ativado. Um valor de true executa o exemplo com Mallory. Um valor de false executa o exemplo sem interceptação da Mallory. Você pode usar esse sinalizar para uma análise conveniente antes e depois de um ataque man-in-the-middle.

Método carregador automático

static bool Autoloader()

Esse método carrega Bob.exe e Mallory.exe.Ele é chamado pela Alice no início de sua Main método.

O carregador automático detecta se Ana Maria foi carregada sistema autônomo um aplicativo independente ou por Visual Studio. Ele faz isso chamando o Process.GetProcessesByName(String) método para obter um Process componente que está associado com o processo Alice.exe.

  • Se o carregador automático obtém um Process componente, Alice é um aplicativo autônomo. Alice inicia Bob.exe e Mallory.exe, chamando o Process.Start(String) método de Bob e Mallory. Uma exceção é lançada se Bob.exe ou Mallory.exe não pode ser encontrado.

  • Se o carregador automático não obtiver um Process componente, isso indica que Alice.exe foi carregado pelo Visual Studio. Nesse caso, você deve executar manualmente Bob.exe e Mallory.exe carregando-os com duas instâncias separadas do Visual Studio depurador.

See Como: compilação e executar o exemplo CNG Para obter mais informações sobre o carregador automático.

Método InitConsole

static void InitConsole(string name, int left, int top)

Esse método aceita uma cadeia de caracteres e dois inteiros.A seqüência de caracteres é usada para o título da janela do console.Os inteiros representam padrão à esquerda e superior coordenadas de pixel para posicionar a janela do console na tela.

Cada janela é posicionada de acordo com as coordenadas do padrão.Janela de Alice está posicionada no canto superior esquerdo da tela.Janela de Bob está posicionada no canto superior direito da tela.Janela da Mallory é posicionada abaixo de janelas de Alice e Bob.

Declarações de invocação de plataforma dois fornecer acesso a não gerenciados Win32 funções MoveWindow and GetConsoleWindow, que execute o posicionamento real.

Método SplashScreen

static void SplashScreen()

Este método limpa o console e fornece os títulos para as janelas de Alice e Bob Mallory.

Métodos ReadAChar e ReadALine

static string ReadALine(bool fBlankOkay)
static string ReadAChar(string options)

Esses métodos de utilitário pequeno trabalham juntos para dispor Console.ReadLine chamadas.

ReadALine aceita um valor booliano. Se o valor é true, ReadALine Retorna se o usuário pressiona o tecla ENTER. Se o valor é false, ReadALine não retornará até que o usuário digita um mínimo de um caractere e, em seguida, pressiona a tecla ENTER.

ReadAChar aceita uma seqüência de caracteres e retorna quando o usuário insere um dos caracteres na seqüência de caracteres.

Método InitializeOptions

static string InitializeOptions()

Esse método apresenta a você um menu para definir o Version, fVerbose, e fMallory sinalizadores descritas anteriormente neste tópico. Além disso, o usuário pode selecionar o valor "x" para fechar o aplicativo.

Métodos de exibição

O arquivo Utilities.cs fornece dois Display métodos:

  • static void Display(string s)

    Esse método passa sua seqüência e o corrente MyColor parâmetro para o segundo Display sobrecarga de método.

  • static void Display(string DisplayString, int color)

    Esse método encapsula Console.WriteLine chama e fornece a saída codificadas por cor. O uso de cores facilita controlar o proprietário de cada mensagem.Por exemplo, mensagens de Alice são exibidas em verde em todos os três janelas.A tabela a seguir lista as cores usadas no exemplo a e seus significados.

ID

Color

Uso

0

Vermelho

Mensagens de erro de segurança.

1

Amarelo

Opções de menu e aplicativo mensagens.

2

Branco

Mensagens de Bob.

3

Ciano

Entrada do usuário.

4

Verde

Mensagens de Alice.

5

Roxo

Mensagens do Mallory.

6

Amarelo

aviso para reiniciar o aplicativo.

7

Cinza

Mensagem de dados criptografados.

Consulte também

Conceitos

Exemplo da Secure Communication Cryptography Next Generation (CNG)

Utilities.cs fonte Code (CNG exemplo)

Visão geral do código fonte (CNG exemplo)

Referência

Console

ConsoleColor

Outros recursos

Dados empacotamento com plataforma Invoke

Date

History

Motivo

Julho de 2008

Tópico adicional.

Aprimoramento de informações.