Непонятно, для чего вы это делаете, но если вам нужен только закрытый ключ DSA, совместимый с openssl, вам следует просто следовать странице руководства openssl dsa (1) :
Используется опция DER с закрытым ключом
ASN1 DER-кодированная форма ASN .1
ПОСЛЕДОВАТЕЛЬНОСТЬ, состоящая из значений
версия (в настоящее время ноль), р, д, г,
компоненты открытого и закрытого ключей
соответственно как ASN .1 INTEGERs.
Это пример того, как экспортировать / импортировать закрытые ключи DSA в формате openssl:
from Crypto.PublicKey import DSA
from Crypto.Util import asn1
key = DSA.generate(1024)
# export
seq = asn1.DerSequence()
seq[:] = [ 0, key.p, key.q, key.g, key.y, key.x ]
exported_key = "-----BEGIN DSA PRIVATE KEY-----\n%s-----END DSA PRIVATE KEY-----" % seq.encode().encode("base64")
print exported_key
# import
seq2 = asn1.DerSequence()
data = "\n".join(exported_key.strip().split("\n")[1:-1]).decode("base64")
seq2.decode(data)
p, q, g, y, x = seq2[1:]
key2 = DSA.construct((y, g, p, q, x))
assert key == key2