def _advapi32_interpret_dsa_key_blob(bit_size, public_blob, private_blob):
len1 = <NUM_LIT:20><EOL>len2 = bit_size // <NUM_LIT:8><EOL>q_offset = len2<EOL>g_offset = q_offset + len1<EOL>x_offset = g_offset + len2<EOL>y_offset = x_offset<EOL>p = int_from_bytes(private_blob[<NUM_LIT:0>:q_offset][::-<NUM_LIT:1>])<EOL>q = int_from_bytes(private_blob[q_offset:g_offset][::-<NUM_LIT:1>])<EOL>g = int_from_bytes(private_blob[g_offset:x_offset][::-<NUM_LIT:1>])<EOL>x = int_from_bytes(private_blob[x_offset:x_offset + len1][::-<NUM_LIT:1>])<EOL>y = int_from_bytes(public_blob[y_offset:y_offset + len2][::-<NUM_LIT:1>])<EOL>public_key_info = keys.PublicKeyInfo({<EOL>'<STR_LIT>': keys.PublicKeyAlgorithm({<EOL>'<STR_LIT>': '<STR_LIT>',<EOL>'<STR_LIT>': keys.DSAParams({<EOL>'<STR_LIT:p>': p,<EOL>'<STR_LIT:q>': q,<EOL>'<STR_LIT:g>': g,<EOL>})<EOL>}),<EOL>'<STR_LIT>': core.Integer(y),<EOL>})<EOL>private_key_info = keys.PrivateKeyInfo({<EOL>'<STR_LIT:version>': <NUM_LIT:0>,<EOL>'<STR_LIT>': keys.PrivateKeyAlgorithm({<EOL>'<STR_LIT>': '<STR_LIT>',<EOL>'<STR_LIT>': keys.DSAParams({<EOL>'<STR_LIT:p>': p,<EOL>'<STR_LIT:q>': q,<EOL>'<STR_LIT:g>': g,<EOL>})<EOL>}),<EOL>'<STR_LIT>': core.Integer(x),<EOL>})<EOL>return (public_key_info, private_key_info)<EOL>
Takes a CryptoAPI DSS private key blob and converts it into the ASN.1
structures for the public and private keys

:param bit_size:
    The integer bit size of the key

:param public_blob:
    A byte string of the binary data after the public key header

:param private_blob:
    A byte string of the binary data after the private key header

:return:
    A 2-element tuple of (asn1crypto.keys.PublicKeyInfo,
    asn1crypto.keys.PrivateKeyInfo)