Solved

length of the data to decrypt is invalid rijndael

Posted on 2013-11-23
4
879 Views
Last Modified: 2013-11-24
(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
0
Comment
Question by:codefinger
  • 2
  • 2
4 Comments
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 39672283
>>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
 

Author Comment

by:codefinger
ID: 39672646
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
 
LVL 44

Accepted Solution

by:
AndyAinscow earned 500 total points
ID: 39672741
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
 

Author Closing Comment

by:codefinger
ID: 39673401
It's been awhile since I coded anything, guess I am getting rusty (and lazy!)
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

A while ago, I was working on a Windows Forms application and I needed a special label control with reflection (glass) effect to show some titles in a stylish way. I've always enjoyed working with graphics, but it's never too clever to re-invent …
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.

758 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now