Información general sobre OID
La extensibilidad se logra al proporcionar el uso de nuevos identificadores de objeto (OID ), nuevos tipos de codificación y archivos DLL nuevos.
Los OID de CryptoAPI pueden adoptar cualquiera de las formas siguientes:
- Cadena numérica como "1.2.3.500.88"
- Cadena alfanumérica como MyFunction
- Constante con un valor menor o igual que 0xFFFF. Estas constantes suelen asociarse con un nombre mediante el uso de una instrucción #define en un archivo de encabezado.
Las funciones extensibles aceptan argumentos de tipo OID y de codificación. Estas funciones buscan en el registro del sistema una DLL asociada con el OID y los argumentos de tipo de codificación pasados a la función. Si se encuentra un archivo DLL para el OID, se encuentra la combinación de tipos de codificación, se carga el archivo DLL y se llama a su función. En la ilustración siguiente se muestra este flujo para la función CryptEncodeObject :
Esto permite ampliar la funcionalidad de CryptoAPI a medida que surge la necesidad. El uso de esta metodología supone una carga para el desarrollador de la nueva funcionalidad para escribir todo el código necesario para esa funcionalidad. Para codificar una nueva estructura de datos, por ejemplo, la función del archivo DLL debe realizar todo el proceso de codificación.