diff --git a/DeDRM_plugin/__init__.py b/DeDRM_plugin/__init__.py
index 3d74e54..d2cbc2b 100644
--- a/DeDRM_plugin/__init__.py
+++ b/DeDRM_plugin/__init__.py
@@ -4,10 +4,10 @@
from __future__ import with_statement
# __init__.py for DeDRM_plugin
-# Copyright © 2008-2019 Apprentice Harper et al.
+# Copyright © 2008-2020 Apprentice Harper et al.
__license__ = 'GPL v3'
-__version__ = '6.7.0'
+__version__ = '6.8.0'
__docformat__ = 'restructuredtext en'
@@ -18,8 +18,8 @@ __docformat__ = 'restructuredtext en'
# We had the much easier job of converting them to a calibre plugin.
#
# This plugin is meant to decrypt eReader PDBs, Adobe Adept ePubs, Barnes & Noble ePubs,
-# Adobe Adept PDFs, Amazon Kindle and Mobipocket files without having to
-# install any dependencies... other than having calibre installed, of course.
+# Adobe Adept PDFs, Amazon Kindle and Mobipocket files without having
+# to install any dependencies... other than having calibre installed, of course.
#
# Configuration:
# Check out the plugin's configuration settings by clicking the "Customize plugin"
@@ -70,14 +70,14 @@ __docformat__ = 'restructuredtext en'
# 6.6.2 - revamp of folders to get Mac OS X app working. Updated to 64-bit app. Various fixes.
# 6.6.3 - More cleanup of kindle book names and start of support for .kinf2018
# 6.7.0 - Handle new library in calibre.
-
+# 6.8.0 - Full support for .kinf2018 and new KFX encryption (Kindle for PC/Mac 2.5+)
"""
Decrypt DRMed ebooks.
"""
PLUGIN_NAME = u"DeDRM"
-PLUGIN_VERSION_TUPLE = (6, 7, 0)
+PLUGIN_VERSION_TUPLE = (6, 8, 0)
PLUGIN_VERSION = u".".join([unicode(str(x)) for x in PLUGIN_VERSION_TUPLE])
# Include an html helpfile in the plugin's zipfile with the following name.
RESOURCE_NAME = PLUGIN_NAME + '_Help.htm'
diff --git a/DeDRM_plugin/ignoblepdf.py b/DeDRM_plugin/ignoblepdf.py
index 02fa24d..5232b1d 100644
--- a/DeDRM_plugin/ignoblepdf.py
+++ b/DeDRM_plugin/ignoblepdf.py
@@ -3,28 +3,17 @@
from __future__ import with_statement
-# ignoblepdf.pyw, version 0.1
-# Copyright © 2009-2010 by i♥cabbages
+# ignoblepdf.py
+# Copyright © 2009-2020 by Apprentice Harper et al.
# Released under the terms of the GNU General Public Licence, version 3
#
-# Modified 2010–2012 by some_updates, DiapDealer and Apprentice Alf
-# Modified 2015-2017 by Apprentice Harper
-# Modified 2020 by Pu D. Pud
+# Based on version 8.0.6 of ineptpdf.py
-# Windows users: Before running this program, you must first install Python 2.7
-# from and PyCrypto from
-# (make sure to
-# install the version for Python 2.7). Save this script file as
-# ineptpdf.pyw and double-click on it to run it.
-#
-# Mac OS X users: Save this script file as ineptpdf.pyw. You can run this
-# program from the command line (pythonw ineptpdf.pyw) or by double-clicking
-# it when it has been associated with PythonLauncher.
# Revision history:
-# 0.1 - Alpha testing release
+# 0.1 - Initial alpha testing release 2020 by Pu D. Pud
"""
diff --git a/DeDRM_plugin/ineptepub.py b/DeDRM_plugin/ineptepub.py
index 839e067..cfbd084 100644
--- a/DeDRM_plugin/ineptepub.py
+++ b/DeDRM_plugin/ineptepub.py
@@ -6,23 +6,14 @@ from __future__ import absolute_import
from __future__ import print_function
# ineptepub.pyw, version 6.6
-# Copyright © 2009-2010 by i♥cabbages
+# Copyright © 2009-2020 by Apprentice Harper et al.
# Released under the terms of the GNU General Public Licence, version 3
#
+# Original script by i♥cabbages
# Modified 2010–2013 by some_updates, DiapDealer and Apprentice Alf
-# Modified 2015–2017 by Apprentice Harper
-
-# Windows users: Before running this program, you must first install Python 2.7
-# from and PyCrypto from
-# (make sure to
-# install the version for Python 2.7). Save this script file as
-# ineptepub.pyw and double-click on it to run it.
-#
-# Mac OS X users: Save this script file as ineptepub.pyw. You can run this
-# program from the command line (pythonw ineptepub.pyw) or by double-clicking
-# it when it has been associated with PythonLauncher.
+# Modified 2015–2020 by Apprentice Harper et al.
# Revision history:
# 1 - Initial release
@@ -45,13 +36,14 @@ from __future__ import print_function
# 6.4 - Remove erroneous check on DER file sanity
# 6.5 - Completely remove erroneous check on DER file sanity
# 6.6 - Import tkFileDialog, don't assume something else will import it.
+# 6.7 - Add Python 3 compatibility while still working with Python 2.7
"""
Decrypt Adobe Digital Editions encrypted ePub books.
"""
__license__ = 'GPL v3'
-__version__ = "6.6"
+__version__ = "6.7"
import six
from six.moves import range
diff --git a/DeDRM_plugin/ineptpdf.py b/DeDRM_plugin/ineptpdf.py
index 0da2993..17db7e9 100644
--- a/DeDRM_plugin/ineptpdf.py
+++ b/DeDRM_plugin/ineptpdf.py
@@ -3,24 +3,14 @@
from __future__ import with_statement
-# ineptpdf.pyw, version 8.0.6
-# Copyright © 2009-2010 by i♥cabbages
+# ineptpdf.py
+# Copyright © 2009-2017 by Apprentice Harper et al.
# Released under the terms of the GNU General Public Licence, version 3
#
# Modified 2010–2012 by some_updates, DiapDealer and Apprentice Alf
-# Modified 2015-2017 by Apprentice Harper
-
-# Windows users: Before running this program, you must first install Python 2.7
-# from and PyCrypto from
-# (make sure to
-# install the version for Python 2.7). Save this script file as
-# ineptpdf.pyw and double-click on it to run it.
-#
-# Mac OS X users: Save this script file as ineptpdf.pyw. You can run this
-# program from the command line (pythonw ineptpdf.pyw) or by double-clicking
-# it when it has been associated with PythonLauncher.
+# Modified 2015-2017 by Apprentice Harper et al.
# Revision history:
# 1 - Initial release
diff --git a/DeDRM_plugin/ion.py b/DeDRM_plugin/ion.py
index 5645056..0ea3859 100644
--- a/DeDRM_plugin/ion.py
+++ b/DeDRM_plugin/ion.py
@@ -1,10 +1,28 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Pascal implementation by lulzkabulz. Python translation by apprenticenaomi. DeDRM integration by anon. VoucherEnvelope v2/v3 support by apprenticesakuya.
-# BinaryIon.pas + DrmIon.pas + IonSymbols.pas
from __future__ import with_statement
+# ion.py
+# Copyright © 2013-2020 Apprentice Harper et al.
+
+__license__ = 'GPL v3'
+__version__ = '2.0'
+
+# Revision history:
+# Pascal implementation by lulzkabulz.
+# BinaryIon.pas + DrmIon.pas + IonSymbols.pas
+# 1.0 - Python translation by apprenticenaomi.
+# 1.1 - DeDRM integration by anon.
+# 1.2 - Added pylzma import fallback
+# 1.3 - Fixed lzma support for calibre 4.6+
+# 2.0 - VoucherEnvelope v2/v3 support by apprenticesakuya.
+
+
+"""
+Decrypt Kindle KFX files.
+"""
+
import collections
import hashlib
import hmac
diff --git a/DeDRM_plugin/kindlekey.py b/DeDRM_plugin/kindlekey.py
index 9a299e6..773c6c7 100644
--- a/DeDRM_plugin/kindlekey.py
+++ b/DeDRM_plugin/kindlekey.py
@@ -7,7 +7,7 @@ from __future__ import with_statement
# Copyright © 2008-2020 Apprentice Harper et al.
__license__ = 'GPL v3'
-__version__ = '2.6'
+__version__ = '2.7'
# Revision history:
# 1.0 - Kindle info file decryption, extracted from k4mobidedrm, etc.
@@ -29,7 +29,7 @@ __version__ = '2.6'
# 2.4 - Fix for complex Mac disk setups, thanks to Tibs
# 2.5 - Final Fix for Windows user names with non-ascii characters, thanks to oneofusoneofus
# 2.6 - Start adding support for Kindle 1.25+ .kinf2018 file
-# 2.7 - Finish .kinf2018 support
+# 2.7 - Finish .kinf2018 support, PC & Mac
"""