View Single Post
Old 10-07-2008, 05:07 PM   #30
dickon25
Groupie
dickon25 has learned how to read e-booksdickon25 has learned how to read e-booksdickon25 has learned how to read e-booksdickon25 has learned how to read e-booksdickon25 has learned how to read e-booksdickon25 has learned how to read e-booksdickon25 has learned how to read e-books
 
dickon25's Avatar
 
Posts: 199
Karma: 818
Join Date: Jul 2008
Location: UK
Device: Sony PRS-505. Pocketbook Inkpad 840
Quote:
Originally Posted by red_dragon View Post
You could disable the PID check and examine what mobidedrm expects. After making the changes you have to pass a 8 char PID to the python program:

(Be careful with the indentions)

Code:
	def __init__(self, data_file, pid):
### BEGIN NEW CODE ###
		# Calculate PID checksum if just the first 8 chars are specified
		if len(pid) == 8:
			pid = checksumPid(pid)
			print "Full PID is %s" % pid
### END NEW CODE ###
		if checksumPid(pid[0:-2]) != pid:
			raise DrmException("invalid PID checksum")
		pid = pid[0:-2]

Does it work for you?

If the decrypted result is garbage then your PID is not correct.

-Red Dragon

When I try this, inputting the shortened 8 digit PID, it tells me the correct PID is the 10 digit 'abc123...' - which is exactly what it rejected in the first place!
It then gives me 'invalid PID checksum' and does not convert.

I'm using v0.4 of MobideDRM and the PID is for a Windows PC running XP.

Does anyone have any other ideas, please?

Thanks
dickon25 is offline   Reply With Quote