Skip to content

Latest commit

 

History

History

spp_encryption

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

OpenSPP Encryption Module

Beta License: LGPL-3 OpenSPP/openspp-modules

OpenSPP Encryption Module

The spp_encryption module extends the encryption capabilities of OpenSPP by adding support for the JWCrypto library. This module builds upon the foundation provided by the g2p_encryption and offers a concrete implementation of an encryption provider utilizing JWCrypto's functionalities.

Purpose and Functionality

The primary purpose of this module is to enable secure encryption, decryption, signing, and verification of data within the OpenSPP ecosystem using JWCrypto. It provides the following functionalities:

  • JWCrypto Integration: Seamlessly integrates the JWCrypto library into OpenSPP, enabling the use of its robust cryptographic functions.
  • Encryption and Decryption: Implements encryption and decryption methods based on JWCrypto's JWE (JSON Web Encryption) standard for securely handling sensitive data.
  • JWT Signing and Verification: Utilizes JWCrypto's JWT (JSON Web Token) capabilities to sign and verify data, ensuring data integrity and authenticity.
  • Key Management: Provides functionalities to generate, store, and manage JWCrypto keys within the OpenSPP database.

Integration and Usage

The spp_encryption module extends the g2p.encryption.provider model introduced by the g2p_encryption. It adds a new encryption provider type, "JWCrypto," which users can select and configure through the Odoo interface.

Here's how this module integrates with other OpenSPP components:

  1. Dependency: Modules requiring advanced encryption features, such as those dealing with sensitive beneficiary data or financial transactions, would declare a dependency on the spp_encryption module.
  2. Configuration: Administrators would configure a new encryption provider of type "JWCrypto" within the OpenSPP settings, providing the necessary JWCrypto key information.
  3. Utilization: Modules requiring encryption can then utilize the configured JWCrypto provider through the standard encryption methods provided by the g2p.encryption.provider model.

Example Usage Scenario

Let's consider a module responsible for handling beneficiary payment data. This module needs to encrypt sensitive financial information before storing or transmitting it.

  1. The module would depend on spp_encryption.
  2. It would utilize the configured "JWCrypto" encryption provider.
  3. Using the provider's encrypt_data_jwcrypto method, the module can securely encrypt the payment data.
  4. Upon retrieval, the module would use the corresponding decrypt_data_jwcrypto method to decrypt the data.

Benefits of using spp_encryption:

  • Enhanced Security: Leverages JWCrypto's robust cryptographic algorithms to provide strong encryption and data protection.
  • Standardized Implementation: Adheres to established standards like JWE and JWT, ensuring interoperability and security best practices.
  • Simplified Key Management: Provides functionalities for generating and managing JWCrypto keys within the OpenSPP interface.
  • Extensibility: Can be further extended to support additional JWCrypto features or customized encryption workflows.

By offering a dedicated JWCrypto-based encryption provider, the spp_encryption module strengthens OpenSPP's security framework and provides developers with a reliable toolset for protecting sensitive data within their modules.

Table of contents

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

Credits

Authors

  • OpenSPP.org

Maintainers

Current maintainers:

jeremi gonzalesedwin1123

This module is part of the OpenSPP/openspp-modules project on GitHub.

You are welcome to contribute.