Fix RC4 key length in cipher
This commit is contained in:
parent
83f3fc0d77
commit
ce4112538c
2 changed files with 6 additions and 2 deletions
|
@ -55,7 +55,7 @@ arc4_context;
|
|||
*
|
||||
* \param ctx ARC4 context to be initialized
|
||||
* \param key the secret key
|
||||
* \param keylen length of the key
|
||||
* \param keylen length of the key, in bytes
|
||||
*/
|
||||
void arc4_setup( arc4_context *ctx, const unsigned char *key, unsigned int keylen );
|
||||
|
||||
|
|
|
@ -786,7 +786,11 @@ static int arc4_crypt_stream_wrap( void *ctx, size_t length,
|
|||
static int arc4_setkey_wrap( void *ctx, const unsigned char *key,
|
||||
unsigned int key_length )
|
||||
{
|
||||
arc4_setup( (arc4_context *) ctx, key, key_length );
|
||||
/* we get key_length in bits, arc4 expects it in bytes */
|
||||
if( key_length % 8 != 0)
|
||||
return( POLARSSL_ERR_CIPHER_BAD_INPUT_DATA );
|
||||
|
||||
arc4_setup( (arc4_context *) ctx, key, key_length / 8 );
|
||||
return( 0 );
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue