length of the data to decrypt is invalid rijndael

(I had this working a long time ago, now trying to re-construct it due to some computer issues.)

Private Function Encrypt(ByRef pPassPhrase As String, ByVal pTextToEncrypt As String) As String
        If pPassPhrase.Length > 16 Then
            'limitation of the encryption mechanism
            pPassPhrase = pPassPhrase.Substring(0, 16)
        End If
        If pTextToEncrypt.Trim.Length = 0 Then
            'the Text to encrypt not set!!!
            Return String.Empty
        End If
        Dim skey As New Encryption.Data(pPassPhrase)
        Dim sym As New Encryption.Symmetric(Encryption.Symmetric.Provider.Rijndael)
        Dim objEncryptedData As Encryption.Data
        objEncryptedData = sym.Encrypt(New Encryption.Data(pTextToEncrypt), skey)
        Return objEncryptedData.ToHex
    End Function

    Public Function Decrypt(ByRef pPassPhrase As String, ByVal pHexStream As String) As String
        Try
            Dim objSym As New Encryption.Symmetric(Encryption.Symmetric.Provider.Rijndael)
            Dim encryptedData As New Encryption.Data
            encryptedData.Hex = pHexStream
            Dim decryptedData As Encryption.Data
            decryptedData = objSym.Decrypt(encryptedData, New Encryption.Data(pPassPhrase))
            Return decryptedData.Text
        Catch ex As Exception

            Return ex.Message

        End Try
    End Function

Open in new window


The evaluation copy of my software generates a "lock" using the encryption method, a hard-coded passphrase, and the id of the user's motherboard.   For example, the result might look like this:

BFEBFBFF000306A9

When the user is ready to register the software, they send me the lock.  I enter it into a text box in my KeyMaker, which uses the Decrypt method to generate a "key".   I then send that key to the user.  The user enters the key into a dialog box that compares it to the lock and if everything matches, the software becomes a registered version.

The Keymaker software was lost due to some computer problems, but I remember enough to reconstruct it, except that I keep getting this error when I try to Decrypt the values entered into a text box:

"length of the data to decrypt is invalid"

I have seen numerous posts about this (enough to thoroughly confuse me), but most refer to the "cure" as changing both the encryption and decryption methods.  I would prefer not to change the encryption method if at all possible, as I am pretty happy with the way my software is working now and don't want to mess with it again.

I hope the issue is clear.

Thanks in advance for any and all responses!
cEncryption.vb
codefingerAsked:
Who is Participating?
 
AndyAinscowConnect With a Mentor Freelance programmer / ConsultantCommented:
Yes, but if it worked before and when you 'recode' it then it doesn't work.  That implies it isn't coded the same way as originally.
0
 
AndyAinscowFreelance programmer / ConsultantCommented:
>>but I remember enough to reconstruct it, except that I keep getting this error

To be honest that sounds like you do not remember enough.  If you don't have a copy of the encryption/decryption code then you have no other choice but to replace it with something else.
0
 
codefingerAuthor Commented:
The encryption and decryption code is what I posted.   It was copied from the source file of the software as it exists now and was working a long while ago.
0
 
codefingerAuthor Commented:
It's been awhile since I coded anything, guess I am getting rusty (and lazy!)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.