{"id":24746552,"url":"https://github.com/samuelmarks/libgourou","last_synced_at":"2025-10-10T15:30:27.813Z","repository":{"id":150265319,"uuid":"571301315","full_name":"SamuelMarks/libgourou","owner":"SamuelMarks","description":"libgourou is a free implementation of Adobe's ADEPT protocol used to add DRM on ePub/PDF files… forked from https://indefero.soutade.fr/p/libgourou","archived":false,"fork":false,"pushed_at":"2022-12-05T03:32:13.000Z","size":240,"stargazers_count":9,"open_issues_count":1,"forks_count":2,"subscribers_count":4,"default_branch":"cmake","last_synced_at":"2024-11-06T11:45:18.489Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SamuelMarks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-11-27T19:43:20.000Z","updated_at":"2024-10-15T11:39:44.000Z","dependencies_parsed_at":"2023-05-05T10:48:03.988Z","dependency_job_id":null,"html_url":"https://github.com/SamuelMarks/libgourou","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SamuelMarks%2Flibgourou","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SamuelMarks%2Flibgourou/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SamuelMarks%2Flibgourou/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SamuelMarks%2Flibgourou/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SamuelMarks","download_url":"https://codeload.github.com/SamuelMarks/libgourou/tar.gz/refs/heads/cmake","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235964701,"owners_count":19073476,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-28T04:29:14.976Z","updated_at":"2025-10-10T15:30:22.482Z","avatar_url":"https://github.com/SamuelMarks.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"Introduction\n------------\n\nlibgourou is a free implementation of Adobe's ADEPT protocol used to add DRM on ePub/PDF files. It overcome the lacks of Adobe support for Linux platforms.\n\n\nArchitecture\n------------\n\nLike RMSDK, libgourou has a client/server scheme. All platform specific functions (crypto, network...) has to be implemented in a client class (that derives from DRMProcessorClient) while server implements ADEPT protocol.\nA reference implementation using Qt, OpenSSL and libzip is provided (in _utils_ directory).\n\nMain fucntions to use from gourou::DRMProcessor are :\n\n  * Get an ePub from an ACSM file : _fulfill()_ and _download()_\n  * Create a new device : _createDRMProcessor()_\n  * Register a new device : _signIn()_ and _activateDevice()_\n  * Remove DRM : _removeDRM()_\n  * Return loaned book : _returnLoan()_\n\nYou can import configuration from (at least) :\n\n  * Kobo device    : .adept/device.xml, .adept/devicesalt  and .adept/activation.xml\n  * Bookeen device : .adobe-digital-editions/device.xml, root/devkey.bin and .adobe-digital-editions/activation.xml\n  \nOr create a new one. Be careful : there is a limited number of devices that can be created bye one account.\n\nePub are encrypted using a shared key : one account / multiple devices, so you can create and register a device into your computer and read downloaded (and encrypted) ePub file with your eReader configured using the same AdobeID account.\n\nFor those who wants to remove DRM without adept_remove, you can export your private key and import it within [Calibre](https://calibre-ebook.com/) an its DeDRM plugin.\n\n\nDependencies\n------------\n\nFor libgourou :\n\n_externals_ :\n\n  * None\n\n_internals_ :\n\n  * PugiXML\n  * uPDFParser\n\nFor utils :\n\n  * libcurl\n  * OpenSSL\n  * libzip\n\n\nInternal libraries are automatically fetched and statically compiled during the first run.\nWhen you update libgourou's repository, **don't forget to update internal libraries** with :\n\n    make update_lib\n\n\nCompilation\n-----------\n\nUse _make_ command\n\n    make [CROSS=XXX] [DEBUG=(0*|1)] [STATIC_UTILS=(0*|1)] [BUILD_UTILS=(0|1*)] [BUILD_STATIC=(0*|1)] [BUILD_SHARED=(0|1*)] [all*|clean|ultraclean|build_utils]\n\nCROSS can define a cross compiler prefix (ie arm-linux-gnueabihf-)\n\nDEBUG can be set to compile in DEBUG mode\n\nBUILD_UTILS to build utils or not\n\nSTATIC_UTILS to build utils with static library (libgourou.a) instead of default dynamic one (libgourou.so)\n\nBUILD_STATIC build libgourou.a if 1, nothing if 0, can be combined with BUILD_SHARED\n\nBUILD_SHARED build libgourou.so if 1, nothing if 0, can be combined with BUILD_STATIC\n\n* Default value\n\n\nUtils\n-----\n\nYou can import configuration from your eReader or create a new one with _utils/adept\\_activate_ :\n\n    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD\n    ./utils/adept_activate -u \u003cAdobeID USERNAME\u003e\n\nThen a _./.adept_ directory is created with all configuration file\n\nTo download an ePub/PDF :\n\n    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD\n    ./utils/acsmdownloader -f \u003cACSM_FILE\u003e\n\nTo export your private key (for DeDRM software) :\n\n    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD\n    ./utils/acsmdownloader --export-private-key [-o adobekey_1.der]\n\nTo remove ADEPT DRM :\n\n    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD\n    ./utils/adept_remove -f \u003cencryptedFile\u003e\n\nTo list loaned books :\n\n    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD\n    ./utils/adept_loan_mgt [-l]\n\nTo return a loaned book :\n\n    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD\n    ./utils/adept_loan_mgt -r \u003cid\u003e\n\nYou can get utils full options description with -h or --help switch\n\n\nDocker\n------\n\nA docker image (by bcliang) is available at [https://github.com/bcliang/docker-libgourou/](https://github.com/bcliang/docker-libgourou/)\n\n\nCopyright\n---------\n\nGrégory Soutadé\n\n\nLicense\n-------\n\nlibgourou : LGPL v3 or later\n\nutils     : BSD\n\n\nSpecial thanks\n--------------\n\n  * _Jens_ for all test samples and utils testing\n  * _Milian_ for debug \u0026 code\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamuelmarks%2Flibgourou","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamuelmarks%2Flibgourou","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamuelmarks%2Flibgourou/lists"}