| 168 | |
| 169 | |
| 170 | int findBase64NTLM(char* buffer, int buffer_len, char* outbuffer, int* outbuffer_len) { |
| 171 | char pattern_head[] = { 'N', 'T', 'L', 'M', ' ' }; |
| 172 | char pattern_tail[2] = { 0x0D, 0x0A }; // \r\n |
| 173 | int index_start = 0; |
| 174 | for (int i = 0; i < buffer_len; i++) { |
| 175 | } |
| 176 | for (int i = 0; i < buffer_len; i++) { |
| 177 | if (buffer[i] == pattern_head[index_start]) { |
| 178 | index_start = index_start + 1; |
| 179 | if (index_start == sizeof(pattern_head)) { |
| 180 | index_start = i + 1; |
| 181 | break; |
| 182 | } |
| 183 | } |
| 184 | } |
| 185 | *outbuffer_len = 0; |
| 186 | for (int i = index_start; i < buffer_len; i++) { |
| 187 | if (buffer[i] == pattern_tail[0] && buffer[i + 1] == pattern_tail[1]) { |
| 188 | break; |
| 189 | } |
| 190 | outbuffer[(*outbuffer_len)] = buffer[i]; |
| 191 | *outbuffer_len = (*outbuffer_len) + 1; |
| 192 | } |
| 193 | //printf("*outbuffer_len: %d and index_start: %d", *outbuffer_len,index_start); |
| 194 | //hexDump2(NULL, outbuffer, *outbuffer_len); |
| 195 | |
| 196 | return 0; |
| 197 | } |
| 198 | |
| 199 | char* base64Encode(char* text, int textLen, int* b64Len) { |
| 200 | *b64Len = DEFAULT_BUFLEN; |
no outgoing calls
no test coverage detected