alpine 3.6
crypto weakness #33

4

Weakness Breakdown


Definition:

This weakness involves creating non-standard or non-tested algorithms, using weak algorithms or applying cryptographic algorithms incorrectly. Algorithms that were once considered safe are commonly later found to be unsafe, as the algorithms were broken.

Warning code(s):

These keysizes are too small given today's computers.

File Name:

libressl/src/libressl-2.5.5/crypto/evp/e_rc4.c

Context:

The highlighted line of code below is the trigger point of this particular Alpine 3.6 crypto weakness.

 	NULL
};

static const EVP_CIPHER r4_40_cipher = {
	NID_rc4_40,
	1, 5 /* 40 bit */, 0,
	EVP_CIPH_VARIABLE_LENGTH,
	rc4_init_key,
	rc4_cipher,
	NULL,
	sizeof(EVP_RC4_KEY),
	NULL,
	NULL,
	NULL,
	NULL
};

const EVP_CIPHER *
EVP_rc4(void)
{
	return (&r4_cipher);
}

const EVP_CIPHER *
EVP_rc4_40(void)
{
	return (&r4_40_cipher);
}

static int
rc4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
    const unsigned char *iv, int enc)
{
	RC4_set_key(&data(ctx)->ks, EVP_CIPHER_CTX_key_length(ctx), key);
	return 1;
}

static int
rc4_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
    const unsigned char *in, size_t inl)
{
	RC4(&data(ctx)->ks, inl, in, out);
	return 1;
}
#endif 

The registered trademark Linux® is used pursuant to a sublicense from the Linux Foundation, the exclusive licensee of Linus Torvalds, owner of the mark on a world­wide basis.