Kontexty streamu
Kontexty streamu zpracovávají zabezpečené streamově orientované protokoly, jako je SSL nebo PCT. V zájmu sdílení stejného rozhraní a podobné správy přihlašovacích údajů poskytuje SSPI podporu pro kontexty datových proudů. Protokol zabezpečení zahrnuje schéma ověřování datových proudů i formáty záznamů.
Pokud chcete poskytovat protokoly orientované na stream, balíčky zabezpečení, které podporují kontexty datových proudů, mají následující charakteristiky procesu:
Balíček nastaví příznak SECPKG_FLAG_STREAM, který označuje, že podporuje sémantiku datového proudu.
Přenos aplikací vyžaduje sémantiku datového proudu nastavením příznaků ISC_REQ_STREAM a ASC_REQ_STREAM ve voláních funkcí InitializeSecurityContext (Obecné) a AcceptSecurityContext (Obecné).
Aplikace volá funkci QueryContextAttributes (Obecné) s SecPkgContext_StreamSizes strukturou pro dotazování kontextu zabezpečení pro počet vyrovnávacích pamětí, které se mají poskytnout a velikosti rezervované pro hlavičky nebo přívěsy.
Aplikace poskytuje popisovače vyrovnávací paměti, které se při skutečném zpracování dat ušetří. Zadáním sémantiky datového proudu volající označuje ochotu provádět další zpracování, aby balíček zabezpečení mohl zpracovat blokování zpráv. V podstatě platí, že pro MakeSignature a VerifySignature funkce, volající předává seznam vyrovnávacích pamětí. Při přijetí zprávy z kanálu, který je orientovaný na datový proud (například port TCP), volající předá seznam vyrovnávací paměti následujícím způsobem.
Vyrovnávací paměť Délka Typ vyrovnávací paměti 1 Délka zprávy SECBUFFER_DATA 2 0 SECBUFFER_EMPTY 3 0 SECBUFFER_EMPTY 4 0 SECBUFFER_EMPTY 5 0 SECBUFFER_EMPTY Balíček zabezpečení pak funguje naobjektu blob. Pokud se funkce úspěšně vrátí, seznam vyrovnávacích pamětí vypadá takto.
Vyrovnávací paměť Délka Typ vyrovnávací paměti 1 Délka záhlaví SECBUFFER_STREAM_HEADER 2 Délka dat SECBUFFER_DATA 3 Délka přívěsu SECBUFFER_STREAM_TRAILER 4 0 SECBUFFER_EMPTY 5 0 SECBUFFER_EMPTY Balíček mohl také vrátit vyrovnávací paměť č. 4 s délkou x a typem vyrovnávací paměti SECBUFFER_EXTRA označující, že data v této vyrovnávací paměti jsou součástí dalšího záznamu a ještě nebyla zpracována. Naopak pokud funkce zprávy vrátí kód chyby SEC_E_INCOMPLETE_MESSAGE, vrácený seznam vyrovnávací paměti by vypadal takto.
Vyrovnávací paměť Délka Typ vyrovnávací paměti 1 x SECBUFFER_MISSING To znamená, že ke zpracování záznamu bylo potřeba více dat. Na rozdíl od většiny chyb vrácených funkcí zprávy tento typ vyrovnávací paměti neznačí, že došlo k ohrožení kontextu. Místo toho značí, že je potřeba více dat. balíčky zabezpečení nesmí aktualizovatstavuv této podmínce.
Podobně na straně odesílatele komunikace může volající volat funkci MakeSignature. Balíček zabezpečení může potřebovat uvolnit vyrovnávací paměť nebo zkopírovat věci kolem. Volající může být efektivnější tím, že poskytne seznam vyrovnávací paměti následujícím způsobem.
Vyrovnávací paměť Délka Typ 1 Délka záhlaví SECBUFFER_STREAM_HEADER 2 Délka dat SECBUFFER_DATA 3 Délka přívěsu SECBUFFER_STREAM_TRAILER Volající tak může efektivněji používat vyrovnávací paměti. Voláním QueryContextAttributes funkce určit množství místa, které se má rezervovat před voláním MakeSignature, operace je efektivnější pro aplikaci a balíček zabezpečení.