OID 概觀
擴充性是藉由提供使用新的 物件識別碼 , (OID) 、新的編碼類型和新的 DLL 來達成。
CryptoAPI OID 可以採用下列任何形式:
- 數值字串,例如 「1.2.3.500.88」
- 英數位元字串,例如 MyFunction
- 常數,其值為小於或等於0xFFFF。 這些常數通常會透過在標頭檔中使用 #define 語句來與名稱相關聯。
可延伸函式接受 OID 和編碼類型引數。 這些函式會搜尋系統登錄,以尋找與傳遞至函式之 OID 和編碼類型引數相關聯的 DLL。 如果找到 OID 的 DLL,則找到編碼類型組合,就會載入 DLL 並呼叫其函式。 下圖顯示 CryptEncodeObject 函式的這個流程:
這可讓 CryptoAPI 的功能隨著需求而擴充。 使用此方法會對新功能的開發人員造成負擔,以撰寫該功能所需的所有程式碼。 例如,若要編碼某些新的資料結構,DLL 中的 函式必須執行整個編碼程式。