Solved

length of the data to decrypt is invalid rijndael

Posted on 2013-11-23
4
899 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

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Article by: jpaulino
XML Literals are a great way to handle XML files and the community doesn’t use it as much as it should.  An XML Literal is like a String (http://msdn.microsoft.com/en-us/library/system.string.aspx) Literal, only instead of starting and ending with w…
1.0 - Introduction Converting Visual Basic 6.0 (VB6) to Visual Basic 2008+ (VB.NET). If ever there was a subject full of murkiness and bad decisions, it is this one!   The first problem seems to be that people considering this task of converting…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…

856 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