If MessageBox.ShowExit Application?, Exit?, MessageBoxButtons.YesNo, MessageBoxIcon.Question = DialogResult.No Then
e.Cancel = True Else
Dim frm = Application.OpenFormsSplashScreen frm.Close
End If End Sub
End Class
2. Listing Program untuk Form Encrypt
Imports System.Numerics Imports System.IO
Imports Infragistics.Win.UltraWinGrid Imports System.Diagnostics
Public Class EncryptControl Private isLarge As Boolean = False
Private Sub txtPlaintext_ValueChangedByVal sender As System.Object, ByVal e As System.EventArgs Handles txtPlaintext.ValueChanged
lblChar.Text = : txtPlaintext.TextLength Char End Sub
Private Function checkKey As Boolean Dim retValue As Boolean = True
For Each ctrl In UltraGroupBox3.Controls If TypeNamectrl = UltraTextEditor Then
If ctrl.Text = Then retValue = False
End If End If
Next Return retValue
End Function Private Sub btnEncrypt_ClickByVal sender As System.Object, ByVal e As System.EventArgs
Handles btnEncrypt.Click If txtPlaintext.Text = Then
MessageBox.ShowInput your Plaintext, Encrypt Error, MessageBoxButtons.OK, MessageBoxIcon.Error
txtPlaintext.Focus Exit Sub
ElseIf Not checkKey Then MessageBox.ShowYour Key is missing, Encrypt Error, MessageBoxButtons.OK,
MessageBoxIcon.Error txtPrime.Focus
Exit Sub
Universitas Sumatera Utara
End If Dim EncryptTime As Stopwatch = New Stopwatch
Dim time As String = EncryptTime.Start
ciphertext = Dim trans As Transpose = New Transpose
txtTransCipher.Text = trans.TransposeEncrypttxtPlaintext.Text TriGrid.DataSource = trans.getTriangle
TriGrid.DisplayLayout.Override.DefaultColWidth = 25 TriGrid.DisplayLayout.Override.HeaderClickAction = HeaderClickAction.Select
TriGrid.DisplayLayout.Override.SelectTypeCol = SelectType.None TriGrid.DisplayLayout.Override.CellClickAction = CellClickAction.RowSelect
txtCiphertext.Text = Elgamal.EncrypttxtTransCipher.Text EncryptTime.Stop
If EncryptTime.ElapsedMilliseconds 1000 Then time = EncryptTime.ElapsedMilliseconds.ToString miliseconds
ElseIf EncryptTime.ElapsedMilliseconds 60000 Then time = Math.RoundEncryptTime.ElapsedMilliseconds 1000, 3.ToString seconds
Else time = Math.RoundEncryptTime.ElapsedMilliseconds 60000, 3.ToString minutes
End If lblTimeEncrypt.Text = Time to Encrypt File : time
End Sub Private Sub btnGetPrime_ClickByVal sender As System.Object, ByVal e As System.EventArgs
Handles btnGetPrime.Click txtPrime.Text = Elgamal.getPrimeoptBit.Value.ToString
End Sub Private Sub btnGenerate_ClickByVal sender As System.Object, ByVal e As System.EventArgs
Handles btnGenerate.Click If txtPrime.Text = Then
MessageBox.ShowChoose Prime Number First, Generate Key, MessageBoxButtons.OK, MessageBoxIcon.Exclamation
txtPrime.Focus Exit Sub
End If Dim GenerateTime As Stopwatch = New Stopwatch
GenerateTime.Start Elgamal.GenerateKeyBigInteger.ParsetxtPrime.Text
If Elgamal.isInputPrime = True Then txtAlpha.Text = alpha
txtA.Text = a txtAlphaA.Text = alphaA
Else txtAlpha.Text =
txtA.Text =
Universitas Sumatera Utara
txtAlphaA.Text = txtPrime.Focus
End If GenerateTime.Stop
Dim time As String = If GenerateTime.ElapsedMilliseconds 1000 Then
time = GenerateTime.ElapsedMilliseconds.ToString miliseconds ElseIf GenerateTime.ElapsedMilliseconds 60000 Then
time = Math.RoundGenerateTime.ElapsedMilliseconds 1000, 3.ToString seconds Else
time = Math.RoundGenerateTime.ElapsedMilliseconds 60000, 3.ToString minutes End If
lblTimeGenerate.Text = Time to Generate Key : time End Sub
Private Sub btnOpen_ClickByVal sender As System.Object, ByVal e As System.EventArgs Handles btnOpen.Click
Dim open As OpenFileDialog = New OpenFileDialog open.Filter = txt Files|.txt
open.FileName = .txt If open.ShowDialog = DialogResult.OK Then
Dim fstream As FileStream = New FileStreamopen.FileName, FileMode.Open, FileAccess.ReadWrite
Dim sreader As StreamReader = New StreamReaderfstream sreader.BaseStream.Seek0, SeekOrigin.Begin
txtPlaintext.Text = sreader.ReadToEnd sreader.Close
lblFilename.Text = : Path.GetFileNameopen.FileName lblLocation.Text = : Path.GetFullPathopen.FileName
End If End Sub
Private Sub btnSave_ClickByVal sender As System.Object, ByVal e As System.EventArgs Handles btnSave.Click
Dim saveFileDialog1 As SaveFileDialog = New SaveFileDialog saveFileDialog1.Filter = txt files |.txt|All files |.
saveFileDialog1.Title = Save File saveFileDialog1.FileName = .txt
If saveFileDialog1.ShowDialog = DialogResult.OK Then Dim filename As String = saveFileDialog1.FileName
Dim fstream As FileStream = New FileStreamfilename, FileMode.OpenOrCreate Dim sw As StreamWriter = New StreamWriterfstream
Dim seekorigin As SeekOrigin = New SeekOrigin sw.BaseStream.Seek0, seekorigin
sw.WriteLinetxtCiphertext.Text sw.Flush
sw.Close End If
Universitas Sumatera Utara
End Sub Private Sub TriGrid_MouseHoverByVal sender As System.Object, ByVal e As System.EventArgs
Handles TriGrid.MouseHover If TriGrid.Dock = DockStyle.None Then
ToolTip1.ShowDouble Click to Enlarge, Me.TriGrid, 1000 Else
ToolTip1.HideMe.TriGrid End If
End Sub Private Sub TriGrid_DoubleClickByVal sender As System.Object, ByVal e As System.EventArgs
Handles TriGrid.DoubleClick If TriGrid.Dock = DockStyle.Fill Then
isLarge = False UltraGroupBox4.Dock = DockStyle.None
TriGrid.Dock = DockStyle.None Else
isLarge = True UltraGroupBox4.Dock = DockStyle.Fill
TriGrid.Dock = DockStyle.Fill UltraGroupBox4.BringToFront
TriGrid.BringToFront EscSplash.Show
ToolTip1.HideMe.TriGrid End If
End Sub Private Sub TriGrid_KeyDownByVal sender As System.Object, ByVal e As
System.Windows.Forms.KeyEventArgs Handles TriGrid.KeyDown If e.KeyCode = Keys.Escape Then
isLarge = False UltraGroupBox4.Dock = DockStyle.None
TriGrid.Dock = DockStyle.None End If
End Sub Private Sub TriGrid_MouseLeaveByVal sender As Object, ByVal e As System.EventArgs Handles
TriGrid.MouseLeave isLarge = True
End Sub Private Sub EncryptControl_LoadByVal sender As System.Object, ByVal e As System.EventArgs
Handles MyBase.Load primeNumber = 0
alpha = 0 a = 0
b = 0 alphaA = 0
plaintext = 0 ciphertext = 0
Universitas Sumatera Utara
End Sub Private Sub txtPrime_ValueChangedByVal sender As System.Object, ByVal e As System.EventArgs
Handles txtPrime.ValueChanged If txtPrime.Text Then
primeNumber = txtPrime.Text End If
End Sub End Class
3.
Listing Program untuk Form Decrypt
Imports System.Numerics Imports System.IO
Imports Infragistics.Win.UltraWinGrid Public Class DecryptControl
Private isLarge As Boolean = False Private Sub btnDecrypt_ClickByVal sender As System.Object, ByVal e As System.EventArgs
Handles btnDecrypt.Click If txtCiphertext.Text = Then
MessageBox.ShowInput your Ciphertext, , MessageBoxButtons.OK, MessageBoxIcon.Warning
txtCiphertext.Focus Exit Sub
End If If txtPrime.Text = Then
MessageBox.ShowPrime number is missing, , MessageBoxButtons.OK, MessageBoxIcon.Warning
txtPrime.Focus Exit Sub
End If If txtA.Text = Then
MessageBox.ShowPrivate Key is missing, , MessageBoxButtons.OK, MessageBoxIcon.Warning
txtA.Focus Exit Sub
End If If Not Elgamal.FermatprimeNumber Then
MessageBox.ShowNumber is not Prime, , MessageBoxButtons.OK, MessageBoxIcon.Warning
txtPrime.Focus Exit Sub
End If Dim EncryptTime As Stopwatch = New Stopwatch
Universitas Sumatera Utara
Dim time As String = EncryptTime.Start
txtPlaintext.Text = Elgamal.DecrypttxtCiphertext.Text Dim trans As Transpose = New Transpose
txtTransPlain.Text = trans.TransposeDecrypttxtPlaintext.Text TriGrid.DataSource = trans.getTriangle
TriGrid.DisplayLayout.Override.DefaultColWidth = 25 TriGrid.DisplayLayout.Override.HeaderClickAction = HeaderClickAction.Select
TriGrid.DisplayLayout.Override.SelectTypeCol = SelectType.None TriGrid.DisplayLayout.Override.CellClickAction = CellClickAction.RowSelect
EncryptTime.Stop If EncryptTime.ElapsedMilliseconds 1000 Then
time = EncryptTime.ElapsedMilliseconds.ToString miliseconds ElseIf EncryptTime.ElapsedMilliseconds 60000 Then
time = Math.RoundEncryptTime.ElapsedMilliseconds 1000, 3.ToString seconds Else
time = Math.RoundEncryptTime.ElapsedMilliseconds 60000, 3.ToString minutes End If
lblTimeDecrypt.Text = Time to Decrypt File : time End Sub
Private Sub txtPrime_ValueChangedByVal sender As System.Object, ByVal e As System.EventArgs Handles txtPrime.ValueChanged
If txtPrime.Text Then primeNumber = BigInteger.ParsetxtPrime.Text
End If End Sub
Private Sub txtA_ValueChangedByVal sender As System.Object, ByVal e As System.EventArgs Handles txtA.ValueChanged
If txtA.Text Then a = BigInteger.ParsetxtA.Text
End If End Sub
Private Sub btnSave_ClickByVal sender As System.Object, ByVal e As System.EventArgs Handles btnSave.Click
Dim saveFileDialog1 As SaveFileDialog = New SaveFileDialog saveFileDialog1.Filter = txt files |.txt|All files |.
saveFileDialog1.Title = Save File saveFileDialog1.FileName = .txt
If saveFileDialog1.ShowDialog = DialogResult.OK Then Dim filename As String = saveFileDialog1.FileName
Dim fstream As FileStream = New FileStreamfilename, FileMode.OpenOrCreate Dim sw As StreamWriter = New StreamWriterfstream
Dim seekorigin As SeekOrigin = New SeekOrigin
Universitas Sumatera Utara
sw.BaseStream.Seek0, seekorigin sw.WriteLinetxtTransPlain.Text
sw.Flush sw.Close
End If End Sub
Private Sub btnOpen_ClickByVal sender As System.Object, ByVal e As System.EventArgs Handles btnOpen.Click
Dim open As OpenFileDialog = New OpenFileDialog open.Filter = txt Files|.txt
open.FileName = .txt If open.ShowDialog = DialogResult.OK Then
Dim fstream As FileStream = New FileStreamopen.FileName, FileMode.Open, FileAccess.ReadWrite
Dim sreader As StreamReader = New StreamReaderfstream sreader.BaseStream.Seek0, SeekOrigin.Begin
txtCiphertext.Text = sreader.ReadToEnd sreader.Close
lblFilename.Text = : Path.GetFileNameopen.FileName lblLocation.Text = : Path.GetFullPathopen.FileName
End If End Sub
Private Sub txtCiphertext_ValueChangedByVal sender As System.Object, ByVal e As System.EventArgs Handles txtCiphertext.ValueChanged
lblChar.Text = : txtCiphertext.Text.Split .Length - 1 Char End Sub
Private Sub TriGrid_MouseHoverByVal sender As System.Object, ByVal e As System.EventArgs Handles TriGrid.MouseHover
If TriGrid.Dock = DockStyle.None Then ToolTip1.ShowDouble Click to Enlarge, Me.TriGrid, 1000
Else ToolTip1.HideMe.TriGrid
End If End Sub
Private Sub TriGrid_DoubleClickByVal sender As System.Object, ByVal e As System.EventArgs Handles TriGrid.DoubleClick
If TriGrid.Dock = DockStyle.Fill Then isLarge = False
UltraGroupBox4.Dock = DockStyle.None TriGrid.Dock = DockStyle.None
Else isLarge = True
UltraGroupBox4.Dock = DockStyle.Fill TriGrid.Dock = DockStyle.Fill
UltraGroupBox4.BringToFront TriGrid.BringToFront
EscSplash.Show
Universitas Sumatera Utara
ToolTip1.HideMe.TriGrid End If
End Sub Private Sub TriGrid_KeyDownByVal sender As System.Object, ByVal e As
System.Windows.Forms.KeyEventArgs Handles TriGrid.KeyDown If e.KeyCode = Keys.Escape Then
isLarge = False UltraGroupBox4.Dock = DockStyle.None
TriGrid.Dock = DockStyle.None End If
End Sub Private Sub DecryptControl_MouseLeaveByVal sender As Object, ByVal e As System.EventArgs
Handles Me.MouseLeave isLarge = True
End Sub Private Sub DecryptControl_LoadByVal sender As System.Object, ByVal e As System.EventArgs
Handles MyBase.Load alpha = 0
b = 0 alphaA = 0
plaintext = 0 ciphertext = 0
txtPrime.Text = primeNumber.ToString txtA.Text = a.ToString
End Sub End Class
4. Listing Program untuk Class ElGamal