Juan Lang : rsaenh: Reorder padding code to avoid unnecessary comparison.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Sep 11 07:28:45 CDT 2007


Module: wine
Branch: master
Commit: 16c40d91124547499a289df8efffba2e9d1effb5
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=16c40d91124547499a289df8efffba2e9d1effb5

Author: Juan Lang <juan.lang at gmail.com>
Date:   Mon Sep 10 15:04:39 2007 -0700

rsaenh: Reorder padding code to avoid unnecessary comparison.

---

 dlls/rsaenh/rsaenh.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/dlls/rsaenh/rsaenh.c b/dlls/rsaenh/rsaenh.c
index 8a27e2c..84cceea 100644
--- a/dlls/rsaenh/rsaenh.c
+++ b/dlls/rsaenh/rsaenh.c
@@ -1907,16 +1907,16 @@ BOOL WINAPI RSAENH_CPEncrypt(HCRYPTPROV hProv, HCRYPTKEY hKey, HCRYPTHASH hHash,
             *pdwDataLen = dwEncryptedLen;
             return TRUE;
         }
-
-        for (i=*pdwDataLen; i<dwEncryptedLen && i<dwBufLen; i++) pbData[i] = dwEncryptedLen - *pdwDataLen;
-        *pdwDataLen = dwEncryptedLen; 
-
-        if (*pdwDataLen > dwBufLen) 
-        {
+        else if (dwEncryptedLen > dwBufLen) {
+            *pdwDataLen = dwEncryptedLen;
             SetLastError(ERROR_MORE_DATA);
             return FALSE;
         }
-    
+
+        /* Pad final block with length bytes */
+        for (i=*pdwDataLen; i<dwEncryptedLen; i++) pbData[i] = dwEncryptedLen - *pdwDataLen;
+        *pdwDataLen = dwEncryptedLen;
+
         for (i=0, in=pbData; i<*pdwDataLen; i+=pCryptKey->dwBlockLen, in+=pCryptKey->dwBlockLen) {
             switch (pCryptKey->dwMode) {
                 case CRYPT_MODE_ECB:




More information about the wine-cvs mailing list