summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/crypto/arcfour.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/crypto/arcfour.c b/lib/crypto/arcfour.c
index 1afd659be69..d310649e702 100644
--- a/lib/crypto/arcfour.c
+++ b/lib/crypto/arcfour.c
@@ -81,11 +81,12 @@ _PUBLIC_ void arcfour_crypt_blob(uint8_t *data, int len, const DATA_BLOB *key)
*/
_PUBLIC_ void arcfour_crypt(uint8_t *data, const uint8_t keystr[16], int len)
{
- DATA_BLOB key = data_blob(keystr, 16);
-
- arcfour_crypt_blob(data, len, &key);
+ uint8_t keycopy[16];
+ DATA_BLOB key = { .data = keycopy, .length = sizeof(keycopy) };
- data_blob_free(&key);
+ memcpy(keycopy, keystr, sizeof(keycopy));
+
+ arcfour_crypt_blob(data, len, &key);
}