Share via


串流內容

資料流程內容會處理安全的資料流程導向通訊協定,例如 SSL 或 PCT。 為了共用相同的介面和類似的認證管理,SSPI 提供資料流程內容的支援。 安全性通訊協定同時包含資料流程驗證配置和記錄格式。

為了提供資料流程導向通訊協定,支援串流內容 的安全性套件 具有下列程式特性:

  • 封裝會設定 SECPKG_FLAG_STREAM 旗標,以指出它支援資料流程語意。

  • 傳輸應用程式會藉由在 呼叫 InitializeSecurityCoNtext (General ) 和 AcceptSecurityCoNtext (General ) 函式中設定ISC_REQ_STREAM和ASC_REQ_STREAM旗標來要求資料流程語意。

  • 應用程式會使用SecPkgCoNtext_StreamSizes結構呼叫 QueryCoNtextAttributes (General) 函式,以查詢要提供之緩衝區數目的安全性內容,以及要保留給標頭或預告片的大小。

  • 應用程式會在實際處理資料期間提供緩衝區描述項來備援。 藉由指定資料流程語意,呼叫端表示願意執行額外的處理,讓 安全性套件 可以處理訊息的封鎖。 基本上,針對 MakeSignatureVerifySignature 函式,呼叫端會傳入緩衝區清單。 從資料流程導向 (的通道接收訊息時,例如 TCP 埠) ,呼叫端會傳入緩衝區清單,如下所示。

    Buffer 長度 緩衝區類型
    1 訊息長度 SECBUFFER_DATA
    2 0 SECBUFFER_EMPTY
    3 0 SECBUFFER_EMPTY
    4 0 SECBUFFER_EMPTY
    5 0 SECBUFFER_EMPTY

     

    安全性套件接著會在 BLOB上運作。 如果函式成功傳回,則緩衝區清單看起來如下。

    Buffer 長度 緩衝區類型
    1 標頭長度 SECBUFFER_STREAM_HEADER
    2 資料長度 SECBUFFER_DATA
    3 預告片長度 SECBUFFER_STREAM_TRAILER
    4 0 SECBUFFER_EMPTY
    5 0 SECBUFFER_EMPTY

     

    封裝也可能傳回長度為 x 和緩衝區類型的緩衝區 #4,SECBUFFER_EXTRA指出此緩衝區中的資料是下一筆記錄的一部分,尚未處理。 相反地,如果訊息函式傳回SEC_E_INCOMPLETE_MESSAGE錯誤碼,傳回的緩衝區清單看起來會像下面這樣。

    Buffer 長度 緩衝區類型
    1 x SECBUFFER_MISSING

     

    這表示需要更多資料來處理記錄。 不同于訊息函式傳回的大部分錯誤,此緩衝區類型並不表示內容已遭入侵。 相反地,它表示需要更多資料。 安全性套件 不得在此狀況中更新其 狀態

    同樣地,在通訊的寄件者端,呼叫端可以呼叫 MakeSignature 函 式。 安全性套件可能需要重新配置緩衝區或複製內容。 呼叫端可以藉由提供緩衝區清單來更有效率,如下所示。

    Buffer 長度 類型
    1 標頭長度 SECBUFFER_STREAM_HEADER
    2 資料長度 SECBUFFER_DATA
    3 預告片長度 SECBUFFER_STREAM_TRAILER

     

    這可讓呼叫端更有效率地使用緩衝區。 藉由呼叫 QueryCoNtextAttributes 函式來判斷在呼叫 MakeSignature之前所要保留的空間量,應用程式和安全性套件的作業會更有效率。