home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 September / Chip_2002-09_cd1.bin / zkuste / vbasic / Data / Utils / XZipComp.exe / XceedEncryption.Cab / F112964_KeyPair.frm (.txt) < prev    next >
Encoding:
Visual Basic Form  |  2001-07-04  |  6.2 KB  |  177 lines

  1. VERSION 5.00
  2. Begin VB.Form frmKeyPair 
  3.    BorderStyle     =   3  'Fixed Dialog
  4.    Caption         =   "Key pair generator"
  5.    ClientHeight    =   1380
  6.    ClientLeft      =   0
  7.    ClientTop       =   285
  8.    ClientWidth     =   5355
  9.    LinkTopic       =   "Form1"
  10.    MaxButton       =   0   'False
  11.    MinButton       =   0   'False
  12.    ScaleHeight     =   1380
  13.    ScaleWidth      =   5355
  14.    ShowInTaskbar   =   0   'False
  15.    StartUpPosition =   1  'CenterOwner
  16.    Begin VB.TextBox txtRandomSeed 
  17.       Height          =   285
  18.       IMEMode         =   3  'DISABLE
  19.       Left            =   1275
  20.       OLEDropMode     =   1  'Manual
  21.       TabIndex        =   1
  22.       Top             =   525
  23.       Width           =   3990
  24.    End
  25.    Begin VB.TextBox txtKeySize 
  26.       Height          =   285
  27.       IMEMode         =   3  'DISABLE
  28.       Left            =   1275
  29.       MaxLength       =   4
  30.       OLEDropMode     =   1  'Manual
  31.       TabIndex        =   0
  32.       Top             =   150
  33.       Width           =   840
  34.    End
  35.    Begin VB.CommandButton cmdCancel 
  36.       Cancel          =   -1  'True
  37.       Caption         =   "Cancel"
  38.       Height          =   315
  39.       Left            =   4125
  40.       TabIndex        =   3
  41.       Top             =   975
  42.       Width           =   1140
  43.    End
  44.    Begin VB.CommandButton cmdOk 
  45.       Caption         =   "Ok"
  46.       Default         =   -1  'True
  47.       Height          =   315
  48.       Left            =   2925
  49.       TabIndex        =   2
  50.       Top             =   975
  51.       Width           =   1140
  52.    End
  53.    Begin VB.Label lbl 
  54.       Caption         =   "Random seed"
  55.       Height          =   240
  56.       Index           =   1
  57.       Left            =   150
  58.       TabIndex        =   5
  59.       Top             =   525
  60.       Width           =   1065
  61.    End
  62.    Begin VB.Label lbl 
  63.       Caption         =   "Key size"
  64.       Height          =   240
  65.       Index           =   0
  66.       Left            =   150
  67.       TabIndex        =   4
  68.       Top             =   150
  69.       Width           =   915
  70.    End
  71. Attribute VB_Name = "frmKeyPair"
  72. Attribute VB_GlobalNameSpace = False
  73. Attribute VB_Creatable = False
  74. Attribute VB_PredeclaredId = True
  75. Attribute VB_Exposed = False
  76. ' Xceed Encryption Library - Signer sample
  77. ' Copyright (c) 2001 Xceed Software Inc.
  78. ' [KeyPair.frm]
  79. ' This form module allows the user to generate a new random key pair for RSA
  80. ' public key signing.
  81. ' This file is part of the Xceed Encryption Library sample applications.
  82. ' The source code in this file is only intended as a supplement to Xceed
  83. ' Encryption Library's documentation, and is provided "as is", without
  84. ' warranty of any kind, either expressed or implied.
  85. Option Explicit
  86. Private m_bOk As Boolean
  87. Public Function ShowForm(ByVal sPrivateKeyFile As String, _
  88.                          ByVal sPublicKeyFile As String) As Boolean
  89.     'By default a key size of 1024 is proposed
  90.     txtKeySize.Text = "1024"
  91.     Call Me.Show(vbModal)
  92.     If m_bOk Then
  93.         'The user clicked the OK button, generate a new key pair
  94.         Call GenerateKeyPair(sPrivateKeyFile, sPublicKeyFile)
  95.     End If
  96.     ShowForm = m_bOk
  97.     Call Unload(Me)
  98. End Function
  99. Private Sub cmdOk_Click()
  100.     If Val(txtKeySize.Text) > 0 Then
  101.         m_bOk = True
  102.         Call Me.Hide
  103.     Else
  104.         Call MsgBox("Invalid key size", vbExclamation, "Error")
  105.     End If
  106. End Sub
  107. Private Sub cmdCancel_Click()
  108.     If Me.Visible Then
  109.         Call Me.Hide
  110.     End If
  111. End Sub
  112. Private Sub Form_Load()
  113.     m_bOk = False
  114. End Sub
  115. Private Sub Form_Unload(Cancel As Integer)
  116.     Call cmdCancel_Click
  117. End Sub
  118. '------------------------------------------------------------------------------------
  119. 'Do the key pair generation
  120. '------------------------------------------------------------------------------------
  121. Private Sub GenerateKeyPair(ByVal sPrivateKeyFile As String, _
  122.                             ByVal sPublicKeyFile As String)
  123.     Dim xRSA As XceedRSAEncryptionMethod
  124.     Dim xEncryptor As XceedEncryption
  125.     Dim vaSeed As Variant
  126.     Dim nNoFic As Integer
  127.     On Error Resume Next
  128.         'Create an instance of the XceedRSA Encryption Method
  129.         Set xRSA = New XceedRSAEncryptionMethod
  130.         'Create an instance of the Xceed Encryption
  131.         Set xEncryptor = New XceedEncryption
  132.         If Err.Number = 0 Then
  133.             'We set the seed value to Empty by default.
  134.             vaSeed = Empty
  135.             
  136.             If Len(Trim$(txtRandomSeed.Text)) > 0 Then
  137.                 'The user specified a seed value for the pseudo-random generator
  138.                 'used in the key pair generation. We use it.
  139.                 vaSeed = txtRandomSeed.Text
  140.             End If
  141.             
  142.             'Generate a new key pair Specifying:
  143.             '   - The wanted key size entered by the user.
  144.             '   - The seed to the pseudo-random generator. If the seed is Empty,
  145.             '     the RSA object will use its own random seed generator.
  146.             Call xRSA.SetRandomKeyPair(Val(txtKeySize.Text), vaSeed)
  147.             
  148.             If Err.Number = 0 Then
  149.                 'Save the hexadecimal representation of the Private key
  150.                 'generated above, in the file specified.
  151.                 nNoFic = FreeFile
  152.                 Open sPrivateKeyFile For Output As #nNoFic
  153.                 If Err.Number = 0 Then
  154.                     Print #nNoFic, BinaryToHex(xRSA.PrivateKey)
  155.                     Close #nNoFic
  156.                 End If
  157.             
  158.                 'Save the hexadecimal representation of the Public key
  159.                 'generated above, in the file specified.
  160.                 nNoFic = FreeFile
  161.                 Open sPublicKeyFile For Output As #nNoFic
  162.                 If Err.Number = 0 Then
  163.                     Print #nNoFic, BinaryToHex(xRSA.PublicKey)
  164.                     Close #nNoFic
  165.                 End If
  166.             End If
  167.             
  168.         End If
  169.         Set xEncryptor = Nothing
  170.         Set xRSA = Nothing
  171.         
  172.         If Err.Number <> 0 Then
  173.             Call MsgBox("Error generating key pair " & vbCrLf & Err.Description & " (" & Hex(Err.Number) & ")")
  174.         End If
  175.     On Error GoTo 0
  176. End Sub
  177.