Search code examples
c#encryptionpublic-key-encryptiondsa

C# generate a public and private keys for the DSA encryption algorithm


How do I generate a public and a private key for the DSA algorithm in byte array format?


Solution

  • In DSA algorithm (from wiki):

    • Public key is (p, q, g, y).
    • Private key is x.

          var dsa = new DSACryptoServiceProvider();            
          var privateKey = dsa.ExportParameters(true); // private key
          var publicKey = dsa.ExportParameters(false); // public key
      

    In publicKey it's P, Q, G, Y propertyes

    In privateKey it's X

    And don't forget to accept this answer!