libidav/crypto.c

changeset 728
35a421f441d5
parent 692
56b66fe2b4f5
child 747
efbd59642577
equal deleted inserted replaced
727:56e6b5ccbf11 728:35a421f441d5
206 out = malloc(outlen + ivl); 206 out = malloc(outlen + ivl);
207 if(ivl > 0) { 207 if(ivl > 0) {
208 memcpy(out, enc->iv, ivl); 208 memcpy(out, enc->iv, ivl);
209 } 209 }
210 EVP_EncryptUpdate(enc->ctx, out + ivl, &outlen, in, in_len); 210 EVP_EncryptUpdate(enc->ctx, out + ivl, &outlen, in, in_len);
211 // I think we don't need this
212 /*
211 if(in_len != len) { 213 if(in_len != len) {
212 int newoutlen = 16; 214 int newoutlen = 16;
213 EVP_EncryptFinal_ex(enc->ctx, out + ivl + outlen, &newoutlen); 215 EVP_EncryptFinal_ex(enc->ctx, out + ivl + outlen, &newoutlen);
214 outlen += newoutlen; 216 outlen += newoutlen;
215 enc->end = 1; 217 enc->end = 1;
216 } 218 }
219 */
217 } else { 220 } else {
218 out = malloc(16); 221 out = malloc(16);
219 EVP_EncryptFinal_ex(enc->ctx, out, &outlen); 222 EVP_EncryptFinal_ex(enc->ctx, out, &outlen);
220 enc->end = 1; 223 enc->end = 1;
221 } 224 }
639 } 642 }
640 643
641 CCCryptorStatus status; 644 CCCryptorStatus status;
642 size_t avail = outlen; 645 size_t avail = outlen;
643 status = CCCryptorUpdate(enc->ctx, in, in_len, out + ivl, avail, &outlen); 646 status = CCCryptorUpdate(enc->ctx, in, in_len, out + ivl, avail, &outlen);
647 // TODO: check if this still works
648 /*
644 if(in_len != len) { 649 if(in_len != len) {
645 size_t newoutlen = 16; 650 size_t newoutlen = 16;
646 status = CCCryptorFinal(enc->ctx, out + ivl + outlen, 16, &newoutlen); 651 status = CCCryptorFinal(enc->ctx, out + ivl + outlen, 16, &newoutlen);
647 outlen += newoutlen; 652 outlen += newoutlen;
648 enc->end = 1; 653 enc->end = 1;
649 } 654 }
655 */
650 } else { 656 } else {
651 out = malloc(32); 657 out = malloc(32);
652 CCCryptorStatus status; 658 CCCryptorStatus status;
653 size_t avail = outlen; 659 size_t avail = outlen;
654 status = CCCryptorFinal(enc->ctx, out, 32, &outlen); 660 status = CCCryptorFinal(enc->ctx, out, 32, &outlen);

mercurial