mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-05-07 00:46:17 +08:00
Fix RC4 bug
This commit is contained in:
10
src/rc4.c
10
src/rc4.c
@@ -17,14 +17,18 @@ void rc4_init(RC4_STATE *state, const uint8_t *key, size_t keylen)
|
|||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
uint8_t *s = state->d;
|
uint8_t *s = state->d;
|
||||||
uint8_t k[256];
|
uint8_t k[256] = {0};
|
||||||
uint8_t temp;
|
uint8_t temp;
|
||||||
|
|
||||||
|
if (keylen > sizeof(k)) {
|
||||||
|
keylen = sizeof(k);
|
||||||
|
}
|
||||||
|
|
||||||
/* expand key */
|
/* expand key */
|
||||||
for (i = 0; i < keylen; i++) {
|
for (i = 0; i < (int)keylen; i++) {
|
||||||
k[i] = key[i];
|
k[i] = key[i];
|
||||||
}
|
}
|
||||||
for (i = keylen; i < 256; i++) {
|
for (; i < 256; i++) {
|
||||||
k[i] = key[i % keylen];
|
k[i] = key[i % keylen];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user