| OLD | NEW | 
|---|
| 1 /* arcfour.c - the arc four algorithm. | 1 /* arcfour.c - the arc four algorithm. | 
| 2  * | 2  * | 
| 3  * This Source Code Form is subject to the terms of the Mozilla Public | 3  * This Source Code Form is subject to the terms of the Mozilla Public | 
| 4  * License, v. 2.0. If a copy of the MPL was not distributed with this | 4  * License, v. 2.0. If a copy of the MPL was not distributed with this | 
| 5  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | 5  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | 
| 6 | 6 | 
| 7 /* See NOTES ON UMRs, Unititialized Memory Reads, below. */ | 7 /* See NOTES ON UMRs, Unititialized Memory Reads, below. */ | 
| 8 | 8 | 
| 9 #ifdef FREEBL_NO_DEPEND | 9 #ifdef FREEBL_NO_DEPEND | 
| 10 #include "stubs.h" | 10 #include "stubs.h" | 
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 119                 const unsigned char * unused1, int unused2, | 119                 const unsigned char * unused1, int unused2, | 
| 120                 unsigned int unused3, unsigned int unused4) | 120                 unsigned int unused3, unsigned int unused4) | 
| 121 { | 121 { | 
| 122         int i; | 122         int i; | 
| 123         PRUint8 j, tmp; | 123         PRUint8 j, tmp; | 
| 124         PRUint8 K[256]; | 124         PRUint8 K[256]; | 
| 125         PRUint8 *L; | 125         PRUint8 *L; | 
| 126 | 126 | 
| 127         /* verify the key length. */ | 127         /* verify the key length. */ | 
| 128         PORT_Assert(len > 0 && len < ARCFOUR_STATE_SIZE); | 128         PORT_Assert(len > 0 && len < ARCFOUR_STATE_SIZE); | 
| 129 »       if (len < 0 || len >= ARCFOUR_STATE_SIZE) { | 129 »       if (len == 0 || len >= ARCFOUR_STATE_SIZE) { | 
| 130                 PORT_SetError(SEC_ERROR_INVALID_ARGS); | 130                 PORT_SetError(SEC_ERROR_INVALID_ARGS); | 
| 131                 return SECFailure; | 131                 return SECFailure; | 
| 132         } | 132         } | 
| 133         if (cx == NULL) { | 133         if (cx == NULL) { | 
| 134             PORT_SetError(SEC_ERROR_INVALID_ARGS); | 134             PORT_SetError(SEC_ERROR_INVALID_ARGS); | 
| 135             return SECFailure; | 135             return SECFailure; | 
| 136         } | 136         } | 
| 137         /* Initialize the state using array indices. */ | 137         /* Initialize the state using array indices. */ | 
| 138         memcpy(cx->S, Kinit, sizeof cx->S); | 138         memcpy(cx->S, Kinit, sizeof cx->S); | 
| 139         /* Fill in K repeatedly with values from key. */ | 139         /* Fill in K repeatedly with values from key. */ | 
| (...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 600         /* Convert the byte-stream to a word-stream */ | 600         /* Convert the byte-stream to a word-stream */ | 
| 601         return rc4_wordconv(cx, output, outputLen, maxOutputLen, input, inputLen
     ); | 601         return rc4_wordconv(cx, output, outputLen, maxOutputLen, input, inputLen
     ); | 
| 602 #else | 602 #else | 
| 603         /* Operate on bytes, but unroll the main loop */ | 603         /* Operate on bytes, but unroll the main loop */ | 
| 604         return rc4_unrolled(cx, output, outputLen, maxOutputLen, input, inputLen
     ); | 604         return rc4_unrolled(cx, output, outputLen, maxOutputLen, input, inputLen
     ); | 
| 605 #endif | 605 #endif | 
| 606 } | 606 } | 
| 607 | 607 | 
| 608 #undef CONVERT_TO_WORDS | 608 #undef CONVERT_TO_WORDS | 
| 609 #undef USE_WORD | 609 #undef USE_WORD | 
| OLD | NEW | 
|---|