I'm still kind of suspicious about doing this check at all.

We aren't even implementing all of recommendations in FIPS 186-4 correctly this way.

> This Standard specifies the following choices for the pair L and N (the bit lengths of p and q, 
respectively): 
L = 1024, N = 160 
L = 2048, N = 224 
L = 2048, N = 256 
L = 3072, N = 256 
Federal Government entities shall generate digital signatures using use one or more of these 
choices. An approved hash function, as specified in FIPS 180, shall be used during the generation of 
digital signatures.

Seems like we should be only allowing specific SHA's depending on the size of the key?

Given that DSA will quite happily work with basically any sufficiently large PRF as input I'm not sure what the benefit of this check actually is?