Cups Sharp

Get it:

git clone https://git.sipsolutions.net/cups-sharp.git

This small script allows you to print to Sharp MFP/Network Printers with authentication enabled. In this mode the username and password (account login data) are encrypted and send to the printer.

Of course, Sharp does not officially support this, so the login data encryption needed to be reverse engineered. What happens is that the ACCOUNTLOGIN and ACCOUNTPASSWORD attributes are AES encrypted and base64 encoded. It is important to noce, that the used mechanism is inherently insecure, as the passwords can easily be decrypted by anyone who has access to the JCL/PJL header of the print job. Please refere to the source code for details on how the encryption works.

This tool not only implements the encryption, but adds a cups filter, and a user space script to ask for the login data via DBus when the print job is spooling. It is important to read the README to get things working properly.

The implementation is used in a production Debian/GNU Linux environment. It uses GTK+ for the user interface, and DBus for its communication needs.

PPDs

There are already PPDs created for the following printers:

  • Sharp MX-M753U

Creating new PPDs should be relatively straight forward.

Sharp MX-M752U PPD

There are a couple of improvements to the PPD, compared to the official version:

  • Force Simplex mode
  • Support for the inserter
  • Support different paper types on arbitrary pages
  • Allow for Jobs to be saved and secured using a PIN
  • Allow for Jobs to be printed authenticated

There are still some problems though. One main issue is the support for landscape mode, because those pages may be send to the printer in portrait mode. Brochures may also be printed in reverse order (I am not sure when this happens).