Lines Matching full:len
45 static buffer* buf_decompress(buffer* buf, unsigned int len);
46 static void buf_compress(buffer * dest, buffer * src, unsigned int len);
52 int len, written;
61 len = writebuf->len - writebuf->pos;
62 dropbear_assert(len > 0);
64 written = write(ses.sock, buf_getptr(writebuf, len), len);
79 if (written == len) {
97 int len;
104 if (ses.readbuf == NULL || ses.readbuf->len < blocksize) {
113 if (ses.decryptreadbuf->len == 0) {
122 maxlen = ses.readbuf->len - ses.readbuf->pos;
123 len = read(ses.sock, buf_getptr(ses.readbuf, maxlen), maxlen);
125 if (len == 0) {
129 if (len < 0) {
138 buf_incrpos(ses.readbuf, len);
140 if ((unsigned int)len == maxlen) {
154 int len;
172 len = read(ses.sock, buf_getwriteptr(ses.readbuf, maxlen),
174 if (len == 0) {
177 if (len < 0) {
185 buf_incrwritepos(ses.readbuf, len);
187 if ((unsigned int)len != maxlen) {
210 len = buf_getint(ses.decryptreadbuf) + 4 + macsize;
215 if ((len > MAX_PACKET_LEN) ||
216 (len < MIN_PACKET_LEN + macsize) ||
217 ((len - macsize) % blocksize != 0)) {
218 dropbear_exit("bad packet size %d", len);
221 buf_resize(ses.readbuf, len);
222 buf_setlen(ses.readbuf, len);
232 unsigned int len;
238 ses.kexstate.datarecv += ses.readbuf->len;
243 buf_resize(ses.decryptreadbuf, ses.readbuf->len - macsize);
250 len = ses.readbuf->len - macsize - blocksize;
251 memcpy(buf_getwriteptr(ses.decryptreadbuf, len),
252 buf_getptr(ses.readbuf, len), len);
255 while (ses.readbuf->pos < ses.readbuf->len - macsize) {
268 buf_setpos(ses.readbuf, ses.readbuf->len - macsize);
282 /* - 4 - 1 is for LEN and PADLEN values */
283 len = ses.decryptreadbuf->len - padlen - 4 - 1;
284 if ((len > MAX_PAYLOAD_LEN) || (len < 1)) {
293 ses.payload = buf_decompress(ses.decryptreadbuf, len);
299 ses.payload = buf_new(len);
300 memcpy(ses.payload->data, buf_getptr(ses.decryptreadbuf, len), len);
301 buf_incrlen(ses.payload, len);
321 unsigned int len;
344 len = sourcebuf->len;
345 if (hmac_process(&hmac, buf_getptr(sourcebuf, len), len) != CRYPT_OK) {
364 static buffer* buf_decompress(buffer* buf, unsigned int len) {
371 ret = buf_new(len);
373 zstream->avail_in = len;
374 zstream->next_in = buf_getptr(buf, len);
385 buf_setpos(ret, ret->len);
422 /* Encrypted packet len is payload+5, then worst case is if we are 3 away
425 clearwritebuf = buf_new((ses.writepayload->len+4+1) + MIN_PACKET_LEN + 3
427 + ZLIB_COMPRESS_INCR /* bit of a kludge, but we can't know len*/
438 buf_compress(clearwritebuf, ses.writepayload, ses.writepayload->len);
442 memcpy(buf_getwriteptr(clearwritebuf, ses.writepayload->len),
443 buf_getptr(ses.writepayload, ses.writepayload->len),
444 ses.writepayload->len);
445 buf_incrwritepos(clearwritebuf, ses.writepayload->len);
454 padlen = blocksize - (clearwritebuf->len) % blocksize;
459 if (clearwritebuf->len + padlen < MIN_PACKET_LEN) {
465 buf_putint(clearwritebuf, clearwritebuf->len + padlen - 4);
467 /* padding len */
470 buf_setpos(clearwritebuf, clearwritebuf->len);
478 writebuf = buf_new(clearwritebuf->len + macsize);
482 memcpy(buf_getwriteptr(writebuf, clearwritebuf->len),
483 buf_getptr(clearwritebuf, clearwritebuf->len),
484 clearwritebuf->len);
485 buf_incrwritepos(writebuf, clearwritebuf->len);
488 while (clearwritebuf->pos < clearwritebuf->len) {
512 ses.kexstate.datatrans += writebuf->len;
550 clearwritebuf->len),
551 clearwritebuf->len) != CRYPT_OK) {
566 /* compresses len bytes from src, outputting to dest (starting from the
568 static void buf_compress(buffer * dest, buffer * src, unsigned int len) {
570 unsigned int endpos = src->pos + len;
589 buf_setpos(dest, dest->len);