Changeset 444299
- Timestamp:
- 02/17/09 21:40:40 (4 years ago)
- Branches:
- master
- Children:
- c7b21b
- Parents:
- eed52b
- git-author:
- Erik Ekman <yarrick@…> (02/17/09 21:40:40)
- git-committer:
- Erik Ekman <erik@…> (02/04/12 20:34:00)
- Files:
-
- 2 edited
-
src/base32.c (modified) (2 diffs)
-
tests/base32.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/base32.c
ra5031e r444299 104 104 105 105 /* how many chars can we encode within the buf */ 106 maxsize = BLKSIZE_RAW * (*buflen / BLKSIZE_ENC - 1) - 1;106 maxsize = BLKSIZE_RAW * (*buflen / BLKSIZE_ENC); 107 107 /* how big will the encoded data be */ 108 newsize = BLKSIZE_ENC * (size / BLKSIZE_RAW + 1) + 1; 108 newsize = BLKSIZE_ENC * (size / BLKSIZE_RAW); 109 if (size % BLKSIZE_RAW) { 110 newsize += BLKSIZE_ENC; 111 } 109 112 /* if the buffer is too small, eat some of the data */ 110 113 if (*buflen < newsize) { … … 133 136 *buflen = size; 134 137 135 return strlen(buf) - 1;138 return strlen(buf); 136 139 } 137 140 -
tests/base32.c
r3ee493 r444299 86 86 END_TEST 87 87 88 START_TEST(test_base32_blksize) 89 { 90 size_t rawlen; 91 size_t enclen; 92 char *rawbuf; 93 char *encbuf; 94 struct encoder *b32; 95 int i; 96 int val; 97 98 b32 = get_base32_encoder(); 99 100 rawlen = b32->blocksize_raw(); 101 enclen = b32->blocksize_encoded(); 102 103 rawbuf = malloc(rawlen + 16); 104 encbuf = malloc(enclen + 16); 105 106 for (i = 0; i < rawlen; i++) { 107 rawbuf[i] = 'A'; 108 } 109 rawbuf[i] = 0; 110 111 val = b32->encode(encbuf, &enclen, rawbuf, rawlen); 112 113 fail_unless(rawlen == 5, "raw length was %d not 5", rawlen); 114 fail_unless(enclen == 5, "encoded %d bytes, not 5", enclen); 115 fail_unless(val == 8, "encoded string %s was length %d", encbuf, val); 116 117 memset(rawbuf, 0, rawlen + 16); 118 119 enclen = val; 120 val = b32->decode(rawbuf, &rawlen, encbuf, enclen); 121 122 fail_unless(rawlen == 5, "raw length was %d not 5", rawlen); 123 fail_unless(val == 5, "val was not 5 but %d", val); 124 for (i = 0; i < rawlen; i++) { 125 fail_unless(rawbuf[i] == 'A'); 126 } 127 } 128 END_TEST 129 88 130 TCase * 89 131 test_base32_create_tests() … … 95 137 tcase_add_loop_test(tc, test_base32_decode, 0, TUPLES); 96 138 tcase_add_test(tc, test_base32_5to8_8to5); 139 tcase_add_test(tc, test_base32_blksize); 97 140 98 141 return tc;
Note: See TracChangeset
for help on using the changeset viewer.
