Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Rozszerzalność jest osiągana przez zapewnienie użycia nowych identyfikatorów obiektów (OID), nowych typów kodowania i nowych bibliotek DLL.
Identyfikatory OID interfejsu CryptoAPI mogą mieć dowolną z następujących form:
- Ciąg liczbowy, taki jak "1.2.3.500.88"
- Ciąg alfanumeryczny, taki jak MyFunction
- Stała z wartością mniejszą lub równą 0xFFFF. Te stałe są często kojarzone z nazwą za pomocą instrukcji #define w pliku nagłówka.
Rozszerzalne funkcje akceptują argumenty typu OID i typu kodowania. Te funkcje przeszukują rejestr systemowy, aby znaleźć bibliotekę DLL skojarzoną z identyfikatorem OID i typem kodowania przekazywanymi jako argumenty do funkcji. Jeśli zostanie znaleziona biblioteka DLL dla kombinacji OID i typu kodowania, zostanie ona załadowana i wywołana zostanie jej funkcja. Poniższa ilustracja przedstawia ten przepływ dla funkcji CryptEncodeObject:
Dzięki temu funkcjonalność interfejsu CryptoAPI może zostać rozszerzona w miarę potrzeb. Użycie tej metodologii powoduje obciążenie dewelopera nowych funkcji, aby napisać cały niezbędny kod dla tej funkcji. Aby zakodować nową strukturę danych, na przykład funkcja w bibliotece DLL musi wykonać cały proces kodowania.