Skip to content

benzea/cups-sharp

Repository files navigation

Sharp authenticated printing for Cups
=====================================

This module allows linux users to print to sharp machines even with
authentication enabled. Sharp officially does not support this, but the
encryption was successfully reverse engineered and it is therefore possible
to implement it.

Content:
 * How it works
 * Bugs
 * Files
 * Dependencies
 * Installation
 * Security
 * Supporting other printers

How it works
============

The PPD adds PJL comments which are later modified by the filter to actually
set the required options.

The code in the filter is run as the last step and does the
encryption. This filter is also able to ask the user via dbus if this is
required. This method is provided because many applications are not able to
(properly) set Cups Custom options.

askpass-service is the dbus service that every user needs to run. An
askpass-service.desktop file to add to the autostart is provided.

Bugs
====

I don't know how sane it is to do dbus calls from a filter, it feels a bit
wrong. A better solution might be to implement this as a cups backend
instead.

Not all printer options may be working correctly with the PPD file.

It would be nice to hide unneeded authentication data easily. I tried to do
this using installed options, but the useless fields still show up in the
print dialog.

Files
=====

sharp-postprocess
 The cups filter.
askpass-service
 The dbus service that each user needs to run.
askpass-service.desktop
 Autostart file for the service.
sharp-askpass.conf
 DBus configuration required so that normal users can hold a name on the
 session bus.
Sharp MX-M753U.ppd
 PPD for the Sharp MX-M753U printer.

Dependencies
============

 * ConsoleKIT (for DBus rights management)
 * python DBus module (python-dbus in debian)
 * python Crypto module (python-crypto in debian)
 * PyGTK (python-gtk2 in debian)

Distribution Related
====================
Fedora >= 22
------------
 dnf install python-crypto
 dnf install pygtk2
 dnf install dbus-python

Installation
============

sharp-postprocess
 Copy into Cups filter direction, /usr/lib/cups/filter/ usually
askpass-service  
 Copy into users PATH, eg. /usr/local/bin
askpass-service.desktop
 Copy into autostart directory, /etc/xdg/autostart/ usually
sharp-askpass.conf
 Copy into the dbus system bus configuration.
 /etc/dbus-1/system.d/

NOTE: The sharp-askpass.conf file assumes that the printing pipeline
is run under the user "lp". This may be different on your system (eg.
arch linux uses the "daemon" user).
If it differes edit the file to change the username.

Then install the cups printer normally with the supplied PPD file.

Security
========

Please note:
 * Cups Custom options are passed over the command line. Any local user can
   read the plain text passwords easily in that case.
 * If the DBus method is used only the correct user should be asked for a
   password. Root can eavesdrop on the dbus connection.
 * The password encryption is two way, and can easily be undone.

Creating PPDs for printers
==========================

Please see PPD-README.

About

Authentication support for Sharp MFP printers using Cups on Linux (GNOME)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages