Changeset eed52b
- Timestamp:
- 02/17/09 21:22:24 (3 years ago)
- Branches:
- master
- Children:
- 444299
- Parents:
- aad34d
- git-author:
- Erik Ekman <yarrick@…> (02/17/09 21:22:24)
- git-committer:
- Erik Ekman <erik@…> (02/04/12 20:34:00)
- Files:
-
- 3 edited
-
src/base64.c (modified) (2 diffs)
-
src/iodine.c (modified) (1 diff)
-
tests/base64.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/base64.c
ra5031e reed52b 96 96 97 97 /* how many chars can we encode within the buf */ 98 maxsize = BLKSIZE_RAW * (*buflen / BLKSIZE_ENC - 1) - 1;98 maxsize = BLKSIZE_RAW * (*buflen / BLKSIZE_ENC); 99 99 /* how big will the encoded data be */ 100 newsize = BLKSIZE_ENC * (size / BLKSIZE_RAW + 1) + 1; 100 newsize = BLKSIZE_ENC * (size / BLKSIZE_RAW); 101 if (size % BLKSIZE_RAW) { 102 newsize += BLKSIZE_ENC; 103 } 104 101 105 /* if the buffer is too small, eat some of the data */ 102 106 if (*buflen < newsize) { … … 121 125 *buflen = size; 122 126 123 return strlen(buf) - 1;127 return strlen(buf); 124 128 } 125 129 -
src/iodine.c
raad34d reed52b 141 141 char *b; 142 142 143 space = MIN(0xFF, buflen) - strlen(topdomain) - 5;143 space = MIN(0xFF, buflen) - strlen(topdomain) - 7; 144 144 if (!encoder->places_dots()) 145 145 space -= (space / 57); /* space for dots */ -
tests/base64.c
r3ee493 reed52b 100 100 END_TEST 101 101 102 START_TEST(test_base64_blksize) 103 { 104 size_t rawlen; 105 size_t enclen; 106 char *rawbuf; 107 char *encbuf; 108 struct encoder *b64; 109 int i; 110 int val; 111 112 b64 = get_base64_encoder(); 113 114 rawlen = b64->blocksize_raw(); 115 enclen = b64->blocksize_encoded(); 116 117 rawbuf = malloc(rawlen + 16); 118 encbuf = malloc(enclen + 16); 119 120 for (i = 0; i < rawlen; i++) { 121 rawbuf[i] = 'A'; 122 } 123 rawbuf[i] = 0; 124 125 val = b64->encode(encbuf, &enclen, rawbuf, rawlen); 126 127 fail_unless(rawlen == 3, "raw length was %d not 3", rawlen); 128 fail_unless(enclen == 3, "encoded %d bytes, not 3", enclen); 129 fail_unless(val == 4, "encoded string %s was length %d", encbuf, val); 130 131 memset(rawbuf, 0, rawlen + 16); 132 133 enclen = val; 134 val = b64->decode(rawbuf, &rawlen, encbuf, enclen); 135 136 fail_unless(rawlen == 3, "raw length was %d not 3", rawlen); 137 fail_unless(val == 3); 138 for (i = 0; i < rawlen; i++) { 139 fail_unless(rawbuf[i] == 'A'); 140 } 141 } 142 END_TEST 143 102 144 TCase * 103 145 test_base64_create_tests() … … 108 150 tcase_add_loop_test(tc, test_base64_encode, 0, TUPLES); 109 151 tcase_add_loop_test(tc, test_base64_decode, 0, TUPLES); 152 tcase_add_test(tc, test_base64_blksize); 110 153 111 154 return tc;
Note: See TracChangeset
for help on using the changeset viewer.
