CLEANUP(ISC_R_CRYPTOFAILURE);
}
- if (EVP_EncryptUpdate(aead, NULL, &len, additional_data.base,
- additional_data.length) != 1)
- {
- CLEANUP(ISC_R_CRYPTOFAILURE);
+ if (additional_data.base != NULL) {
+ INSIST(additional_data.length != 0);
+ if (EVP_EncryptUpdate(aead, NULL, &len, additional_data.base,
+ additional_data.length) != 1)
+ {
+ CLEANUP(ISC_R_CRYPTOFAILURE);
+ }
}
len = out.length;
CLEANUP(ISC_R_CRYPTOFAILURE);
}
- if (EVP_DecryptUpdate(aead, NULL, &len, additional_data.base,
- additional_data.length) != 1)
- {
- CLEANUP(ISC_R_CRYPTOFAILURE);
+ if (additional_data.base != NULL) {
+ INSIST(additional_data.length != 0);
+ if (EVP_DecryptUpdate(aead, NULL, &len, additional_data.base,
+ additional_data.length) != 1)
+ {
+ CLEANUP(ISC_R_CRYPTOFAILURE);
+ }
}
len = out.length;