O campo da criptografia é grande e crescente. Existem muitos formatos e protocolos de dados padrão diferentes. Geralmente, eles são organizados em grupos ou famílias, cada um com seu próprio conjunto de formatos de dados e maneira de fazer as coisas. Mesmo que duas famílias usem o mesmo algoritmo (por exemplo, a cifra de bloco RC2), elas geralmente usarão diferentes esquemas de preenchimento, diferentes comprimentos de chave e diferentes modos padrão. O CryptoAPI foi projetado para que um tipo de provedor CSP represente uma família específica.
Quando um aplicativo se conecta a um CSP de um tipo específico, cada uma das funções CryptoAPI irá, por padrão, operar de uma maneira prescrita pela família que corresponde a esse tipo de CSP. A escolha do tipo de provedor de um aplicativo especifica os seguintes itens:
Cada tipo de provedor especifica um e apenas um algoritmo de troca de chaves. Cada CSP de um tipo específico deve implementar esse algoritmo. Os aplicativos especificam o algoritmo de troca de chaves a ser usado selecionando um CSP do tipo de provedor apropriado.
Cada tipo de provedor especifica um e apenas um algoritmo de assinatura digital. Cada CSP de um tipo específico deve implementar esse algoritmo. Os aplicativos especificam o algoritmo de assinatura digital a ser usado selecionando um CSP do tipo de provedor apropriado.
Principais formatos de BLOB
O tipo de fornecimento determina o formato do BLOB de chave usado para exportar chaves do CSP e importar chaves para um CSP.
Formato de assinatura digital
O tipo de provedor determina o formato da assinatura digital. Isso garante que uma assinatura produzida por um CSP de um determinado tipo de provedor possa ser verificada por qualquer CSP do mesmo tipo de provedor.
Esquema de derivação de chave de sessão
O tipo de provedor determina o método usado para derivar uma chave de sessão de um hash.
Embora alguns tipos de CSP possam ser parcialmente compatíveis com outros, dois ou mais aplicativos que precisam trocar chaves e mensagens criptografadas devem usar CSPs do mesmo tipo.
Um gravador CSP personalizado pode definir um novo tipo de provedor. No entanto, o gravador CSP é responsável por distribuir o novo tipo de provedor para os autores de todos os aplicativos que devem usá-lo. Para obter informações sobre como escrever CSPs personalizados, consulte Provedores de serviços criptográficos.
Usado para adquirir um identificador para um contêiner de chave específico em um CSP (provedor de serviços criptográficos) específico. Esse identificador retornado é usado em chamadas para funções CryptoAPI que usam o CSP selecionado. (Unicode)
Usado para adquirir um identificador para um contêiner de chave específico em um CSP (provedor de serviço criptográfico) específico. Esse identificador retornado é usado em chamadas para funções CryptoAPI que usam o CSP selecionado. (ANSI)