Secondary color array?

I think, that somebody has already asked this question, but coudn’t find it.
So, is there a simple way of using secondary color array in GL?

For example I have mesh with both per-vertex diffuse and specular and I wanna draw it with glDrawElements. But, unfortunately, I have only one color array, so we have diffuse_or_specular as a result. It can be avoided using lists and glMaterial funcs, but this suffers severe speed penalties, as far as I know.