Helping a book-publishing company implement an LCP server

Helping a book-publishing company implement an LCP server

When one of our main partners decided to build an online store for e-books, they turned to OPTI for advice and finding the best possible solution. Digital rights in the design of the e-book solution were essential and the solutions found by OPTI were solid.

OPTI had to find a fast and easy to implement DRM solution, which was to be well documented and maintained and future proof. After studying all the possible variants, the LCP server appeared as a natural choice. It successfully meets all the needs of our partner:


Interoperability: A publishing company can become an LCP license provider and any technical organisation can develop an LCP compliant reading app.

It is a vendor-neutral solution: the publishing industry is directly leading the operation of this DRM and this is independent of the selling platform used. It is easy to integrate in a publishing solution, with the help of the open-source multi-platform DRM server. It is also easy to integrate in a reading app, with the help of the open-source software developed by EDRLab

No cost per transaction and cost effective: A yearly fee associated with the certification of the solution is the only cost for license providers.

It respects GDPR: no third party can access user data or ebook content that is not encrypted.


The LCP server is written in Go programming language and is composed of three independent parts:

1) lcpencrypt - An encryption tool for content encryption. This command line utility can be included in any processing pipeline. It takes the unprotected publication as input, generates an encrypted file as output and notifies the License server about the creation of the encrypted file.

2) lcpserver - A license server, which implements Readium Licensed Content Protection 1.0 and has the following functionalities :
a) generates a license
b) generates a protected publication
c) updates the rights associated with a license
d) get specific licenses

3) lsdserver - A license status server, which implements Readium License Status Document 1.0 and has the following functionalities :
a) returns a lincense status document
b) process a device registration
c) creates a license status document
d) lists all devices for specific licence
e) revokes/cancels a license

So, With Readium LCP server our partners can:
1) Encrypt the catalog of EPUB files and make them ready for download
2) Generate LCP Licenses instantly and send them to the correct user
3) Revoke a licence

For the prerequisites you need Go 1.12 or higher and you must install a SQL Database. SQLite is sufficient for most needs but you can also install MySQL or other if there are drivers provided by the community.

Contact us for more details



Find more of our latest software development tutorials, launch announcements, and career opportunities.
Read our blog