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;