Commit 91604446 authored by robertdavidgraham's avatar robertdavidgraham
Browse files

ssl

parent 67d96b53
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -113,6 +113,9 @@ clean_response_queue(struct Output *out, SOCKET fd)
    size_t bytes_read;
    
    FD_ZERO(&readfds);
#ifdef _MSC_VER
#pragma warning(disable:4127)
#endif
    FD_SET(fd, &readfds);
    nfds = (int)fd;

+9 −0
Original line number Diff line number Diff line
@@ -185,6 +185,15 @@ banner_append(const void *vsrc, size_t src_len,
    }
}

void
banner_append_char(int c,
        void *vbanner, unsigned *banner_offset, size_t banner_max)
{
    unsigned char *banner = (unsigned char *)vbanner;
    
    if (*banner_offset < banner_max)
        banner[(*banner_offset)++] = (unsigned char)c;
}

/***************************************************************************
 ***************************************************************************/
+3 −0
Original line number Diff line number Diff line
@@ -109,6 +109,9 @@ banner1_parse(
void
banner_append(const void *src, size_t src_len, void *banner, unsigned *banner_offset, size_t banner_max);

void
banner_append_char(int c, void *banner, unsigned *banner_offset, size_t banner_max);

/**
 * Test the banner protocol-parsing system by reading
 * in a capture file
+6 −8
Original line number Diff line number Diff line
@@ -174,14 +174,10 @@ out_b64(unsigned x, char *banner, unsigned *banner_offset, size_t banner_max)
        "abcdefghijklmnopqrstuvwxyz"
        "0123456789"
        "+/";
    if (*banner_offset < banner_max)
        banner[(*banner_offset)++] = b64[(x>>18)&0x3F];
    if (*banner_offset < banner_max)
        banner[(*banner_offset)++] = b64[(x>>12)&0x3F];
    if (*banner_offset < banner_max)
        banner[(*banner_offset)++] = b64[(x>> 6)&0x3F];
    if (*banner_offset < banner_max)
        banner[(*banner_offset)++] = b64[(x>> 0)&0x3F];
    banner_append_char(b64[(x>>18)&0x3F], banner, banner_offset, banner_max);
    banner_append_char(b64[(x>>12)&0x3F], banner, banner_offset, banner_max);
    banner_append_char(b64[(x>> 6)&0x3F], banner, banner_offset, banner_max);
    banner_append_char(b64[(x>> 0)&0x3F], banner, banner_offset, banner_max);
}

/***************************************************************************
@@ -203,6 +199,7 @@ server_cert_copy( struct SSL_SERVER_CERT *data,
        data->cert_state = 0;
        data->b64x = 0;
        data->banner_offset_start = *banner_offset;
        banner_append("cert:", 5, banner, banner_offset, banner_max);
        return;
    }

@@ -331,6 +328,7 @@ server_cert(
                /* We've reached the end of the certificate, so make
                 * a record of it */
                server_cert_copy(data,  0, CERT_COPY_FINISH,  banner,banner_offset,banner_max);
                banner_append_char('\n', banner, banner_offset, banner_max);
                state = CLEN0;
            }
        }