Exemple de code SecBuffer et SecBufferDesc

Cet exemple montre comment initialiser un tableau de mémoires tampons de sécurité. Il montre les tampons de sécurité d’entrée initialisés par le côté serveur d’une connexion pour préparer un appel à AcceptSecurityContext (général). Notez que la dernière mémoire tampon contient le jeton de sécurité opaque reçu par le client et que l' _ indicateur ReadOnly SECBUFFER est défini sur SECBUFFER.

SecBuffer  Buffers[3];
SecBufferDesc BufferDesc;
BYTE *pHeader;
BYTE *pMessage;
BYTE *pTrailer;

//--------------------------------------------------------------------
// pHeader, pMessage, and pTrailer are BYTE strings.
// In a working program, they would be assigned string values.

BufferDesc.ulVersion = SECBUFFER_VERSION;
BufferDesc.cBuffers = 3;
BufferDesc.pBuffers = Buffers;

Buffers[0].cbBuffer = sizeof(pHeader);
Buffers[0].BufferType = SECBUFFER_READONLY | SECBUFFER_DATA;
Buffers[0].pvBuffer = pHeader;

Buffers[1].cbBuffer = sizeof(pMessage);
Buffers[1].BufferType = SECBUFFER_DATA;
Buffers[1].pvBuffer = pMessage;

Buffers[2].cbBuffer = sizeof(pTrailer);
Buffers[2].BufferType = SECBUFFER_READONLY | SECBUFFER_TOKEN;
Buffers[2].pvBuffer = pTrailer;