Udostępnij przez


Omówienie OID

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:

przepływ oid

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.