33
32
_ARGCHK(tag != NULL);
34
33
_ARGCHK(res != NULL);
36
if ((err = ocb_init(&ocb, cipher, key, keylen, nonce)) != CRYPT_OK) {
40
while (ctlen > (unsigned long)ocb.block_len) {
41
if ((err = ocb_decrypt(&ocb, ct, pt)) != CRYPT_OK) {
36
ocb = XMALLOC(sizeof(ocb_state));
41
if ((err = ocb_init(ocb, cipher, key, keylen, nonce)) != CRYPT_OK) {
45
while (ctlen > (unsigned long)ocb->block_len) {
46
if ((err = ocb_decrypt(ocb, ct, pt)) != CRYPT_OK) {
44
ctlen -= ocb.block_len;
49
ctlen -= ocb->block_len;
49
return ocb_done_decrypt(&ocb, ct, ctlen, pt, tag, taglen, res);
54
err = ocb_done_decrypt(ocb, ct, ctlen, pt, tag, taglen, res);
57
zeromem(ocb, sizeof(ocb_state));