DSA Example

[Back] DSA The Digital Signature Algorithm (DSA) is a United States Federal Government standard or FIPS for digital signatures [Theory]

Pass phrase:
Public Key
Private key
Fingerprint

Sample code

   public void dsa(string message)
        {
            Tamir.SharpSsh.jsch.JSch jsch = new Tamir.SharpSsh.jsch.JSch();

            string pkey = "";
            pkey = message; // Test phrase

            int keysize = 1024;
            int type = Tamir.SharpSsh.jsch.KeyPair.DSA;
            Tamir.SharpSsh.jsch.KeyPair kpair = Tamir.SharpSsh.jsch.KeyPair.genKeyPair(jsch, type, keysize);

            try
            {


                Stream pri = new MemoryStream();
                Stream pub = new MemoryStream();

               
                kpair.setPassphrase(pkey);


                kpair.writePublicKey(pub, pkey);
                kpair.writePrivateKey(pri);

                fingerprint = kpair.getFingerPrint();

                pri.Position = 0; pub.Position = 0;

                byte[] buffer = new byte[pri.Length];

                pri.Read(buffer, 0, (int)pri.Length);

                tbPrivate = ByteToAscii(buffer);

                buffer = new byte[pub.Length];
                pub.Read(buffer, 0, (int)pub.Length);

                tbPublic = ByteToAscii(buffer);

                pri.Close();
                pub.Close();

            }
            catch (Exception ex) { tbPublic = ex.Message; }
        }

        public static string ByteToAscii(byte[] buff)
        {
            string sbinary = "";
            for (int i = 0; i < buff.Length; i++)
            {
                sbinary += (char)buff[i]; // hex format
            }
            return (sbinary);
        }