Visão geral do OID
A extensibilidade é obtida fornecendo o uso de novos OIDs ( identificadores de objeto ), novos tipos de codificação e novas DLLs.
Os OIDs de CryptoAPI podem usar qualquer uma das seguintes formas:
- Uma cadeia de caracteres numérica como "1.2.3.500.88"
- Uma cadeia de caracteres alfanumérica, como MyFunction
- Uma constante com um valor menor ou igual a 0xFFFF. Essas constantes geralmente são associadas a um nome por meio do uso de uma instrução #define em um arquivo de cabeçalho.
As funções extensíveis aceitam argumentos de tipo de codificação e OID. Essas funções pesquisam no registro do sistema para encontrar uma DLL associada aos argumentos de tipo OID e codificação passados para a função. Se uma DLL para o OID, a combinação de tipos de codificação for encontrada, a DLL será carregada e sua função será chamada. A ilustração a seguir mostra esse fluxo para a função CryptEncodeObject :
Isso permite que a funcionalidade da CryptoAPI seja estendida conforme a necessidade surge. O uso dessa metodologia sobrecarrega o desenvolvedor da nova funcionalidade para escrever todo o código necessário para essa funcionalidade. Para codificar alguma nova estrutura de dados, por exemplo, a função na DLL deve executar todo o processo de codificação.