MCPcopy Create free account
hub / github.com/antonioCoco/RogueWinRM / parseNegToken

Function parseNegToken

RogueWinRM.cpp:517–542  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

515}
516
517bool parseNegToken(unsigned char* token, int tokenSize, unsigned char** parsedToken, unsigned long *parsedTokenLen) {
518 SPNEGO_TOKEN_HANDLE hSpnegoToken = NULL;
519 int nError = 0L;
520 unsigned char* pbMechToken = NULL;
521
522 if (spnegoInitFromBinary(token, tokenSize, &hSpnegoToken) != SPNEGO_E_SUCCESS){
523 printf("\nCannot parse SPNEGO NegTokenInit token\n");
524 return false;
525 }
526
527 nError = spnegoGetMechToken(hSpnegoToken, NULL, parsedTokenLen);
528 if (SPNEGO_E_BUFFER_TOO_SMALL == nError)
529 {
530
531 // Allocate a properly sized buffer and retry.
532 pbMechToken = (unsigned char*)malloc(*parsedTokenLen);
533
534 if (spnegoGetMechToken(hSpnegoToken, pbMechToken, parsedTokenLen)!= SPNEGO_E_SUCCESS)
535 {
536 printf("\nCannot get MechToken content from SPNEGO NegTokenInit token\n");
537 return false;
538 }
539 }
540 *parsedToken = pbMechToken;
541 return true;
542}
543
544bool genNegTokenTarg(unsigned char* ntlmssp, int ntlmssp_len, unsigned char** generatedToken, unsigned long* generatedTokenLen) {
545 unsigned char* pbRespToken = NULL;

Callers 1

startListenerFunction · 0.85

Calls 2

spnegoInitFromBinaryFunction · 0.85
spnegoGetMechTokenFunction · 0.85

Tested by

no test coverage detected