Browse Source

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
Steffen Jaeckel 8 years ago
parent
commit
3b4d39ea45

+ 4 - 2
src/encauth/ocb3/ocb3_decrypt.c

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

+ 4 - 2
src/encauth/ocb3/ocb3_decrypt_last.c

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

+ 4 - 2
src/encauth/ocb3/ocb3_encrypt.c

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

+ 4 - 2
src/encauth/ocb3/ocb3_encrypt_last.c

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