OCBv3: improve a bit when ARGCHK'ing pointers

* it didn't really make sense to check that the _in_ pointer is NULL
* instead we should check that _in_ and _out_ are not NULL when there's
  something to process
This commit is contained in:
Steffen Jaeckel 2017-08-03 13:40:26 +02:00
parent 868c5a82c3
commit 3b4d39ea45
4 changed files with 16 additions and 8 deletions

View File

@ -31,8 +31,10 @@ int ocb3_decrypt(ocb3_state *ocb, const unsigned char *ct, unsigned long ctlen,
LTC_ARGCHK(ocb != NULL); LTC_ARGCHK(ocb != NULL);
if (ct == NULL) LTC_ARGCHK(ctlen == 0); if (ct == NULL) LTC_ARGCHK(ctlen == 0);
if (ctlen == 0) LTC_ARGCHK(ct == NULL); if (ctlen != 0) {
else LTC_ARGCHK(pt != NULL); LTC_ARGCHK(ct != NULL);
LTC_ARGCHK(pt != NULL);
}
if ((err = cipher_is_valid(ocb->cipher)) != CRYPT_OK) { if ((err = cipher_is_valid(ocb->cipher)) != CRYPT_OK) {
return err; return err;

View File

@ -31,8 +31,10 @@ int ocb3_decrypt_last(ocb3_state *ocb, const unsigned char *ct, unsigned long ct
LTC_ARGCHK(ocb != NULL); LTC_ARGCHK(ocb != NULL);
if (ct == NULL) LTC_ARGCHK(ctlen == 0); if (ct == NULL) LTC_ARGCHK(ctlen == 0);
if (ctlen == 0) LTC_ARGCHK(ct == NULL); if (ctlen != 0) {
else LTC_ARGCHK(pt != NULL); LTC_ARGCHK(ct != NULL);
LTC_ARGCHK(pt != NULL);
}
if ((err = cipher_is_valid(ocb->cipher)) != CRYPT_OK) { if ((err = cipher_is_valid(ocb->cipher)) != CRYPT_OK) {
goto LBL_ERR; goto LBL_ERR;

View File

@ -31,8 +31,10 @@ int ocb3_encrypt(ocb3_state *ocb, const unsigned char *pt, unsigned long ptlen,
LTC_ARGCHK(ocb != NULL); LTC_ARGCHK(ocb != NULL);
if (pt == NULL) LTC_ARGCHK(ptlen == 0); if (pt == NULL) LTC_ARGCHK(ptlen == 0);
if (ptlen == 0) LTC_ARGCHK(pt == NULL); if (ptlen != 0) {
else LTC_ARGCHK(ct != NULL); LTC_ARGCHK(pt != NULL);
LTC_ARGCHK(ct != NULL);
}
if ((err = cipher_is_valid(ocb->cipher)) != CRYPT_OK) { if ((err = cipher_is_valid(ocb->cipher)) != CRYPT_OK) {
return err; return err;

View File

@ -31,8 +31,10 @@ int ocb3_encrypt_last(ocb3_state *ocb, const unsigned char *pt, unsigned long pt
LTC_ARGCHK(ocb != NULL); LTC_ARGCHK(ocb != NULL);
if (pt == NULL) LTC_ARGCHK(ptlen == 0); if (pt == NULL) LTC_ARGCHK(ptlen == 0);
if (ptlen == 0) LTC_ARGCHK(pt == NULL); if (ptlen != 0) {
else LTC_ARGCHK(ct != NULL); LTC_ARGCHK(pt != NULL);
LTC_ARGCHK(ct != NULL);
}
if ((err = cipher_is_valid(ocb->cipher)) != CRYPT_OK) { if ((err = cipher_is_valid(ocb->cipher)) != CRYPT_OK) {
goto LBL_ERR; goto LBL_ERR;