How do I verify a signature using DSA and my own “y” value in Python?


I have to verify a signature using DSA FIPS 186-2 (I know it is not used anymore, but I need to make it work for a legacy system). My problem is I have the “y” DSA value, but I cannot work out how I can feed that into the Python code to create my own public key from the “y” value and then apply the verify.

For example below is what I have, but instead of generating a NEW key, I need to use my existing value?

from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import hashes from cryptography.hazmat.primitives.asymmetric import dsa from cryptography.exceptions import InvalidSignature  private_key = dsa.generate_private_key(      key_size=1024,      backend=default_backend() ) data = b"this is some data I'd like to sign" signature = private_key.sign(      data,      hashes.SHA1() )  public_key = private_key.public_key()  try:     public_key.verify(              signature,              data,              hashes.SHA1()) except InvalidSignature:     print ("Invalid")