wFabricSecurity

Contents

  • 1. Getting Started
  • 2. Prerequisites
  • 3. Installation
  • 4. Verification
    • 4.1. Quick Start
      • 4.1.1. Step 1: Basic Initialization
      • 4.1.2. Step 2: Verify a Message
      • 4.1.3. Step 3: Create Secure Communication
  • 5. Complete Example
    • 5.1. Next Steps
  • 6. Installation
  • 7. Requirements
    • 7.1. Python
    • 7.2. Operating System
    • 7.3. Optional Dependencies
  • 8. Installation via pip
    • 8.1. Virtual Environment (Recommended)
  • 9. Installation from Source
    • 9.1. Clone the Repository
    • 9.2. Editable Install
    • 9.3. Development Install
  • 10. Docker Installation
  • 11. Verification
  • 12. Configuration
    • 12.1. MSP Configuration
    • 12.2. Gateway Configuration
  • 13. Troubleshooting
    • 13.1. Import Errors
    • 13.2. Cryptography Errors
    • 13.3. Permission Errors
  • 14. Uninstallation
  • 15. Usage Examples
    • 15.1. Basic Zero Trust System
      • 15.1.1. Complete Security Workflow
    • 15.2. Code Integrity
      • 15.2.1. Registering and Verifying Code
    • 15.3. Digital Signatures
      • 15.3.1. ECDSA Signing and Verification
    • 15.4. Communication Permissions
      • 15.4.1. Permission Management
    • 15.5. Rate Limiting
      • 15.5.1. Token Bucket Rate Limiter
    • 15.6. Retry Logic
      • 15.6.1. Exponential Backoff
    • 15.7. Message Management
      • 15.7.1. Creating and Verifying Messages
    • 15.8. Master-Slave Decorators
      • 15.8.1. Audited Task Delegation
  • 16. API Reference
  • 17. Main Classes
    • 17.1. FabricSecurity
    • 17.2. FabricSecuritySimple
  • 18. Security Services
    • 18.1. IntegrityVerifier
    • 18.2. PermissionManager
    • 18.3. MessageManager
    • 18.4. RateLimiter
    • 18.5. RetryLogic
  • 19. Cryptographic Services
    • 19.1. HashingService
      • HashingService
        • HashingService.sha256()
        • HashingService.sha256_raw()
        • HashingService.compute_message_hash()
        • HashingService.compute_code_hash()
        • HashingService.compute_file_hash()
        • HashingService.verify_hash()
        • HashingService.compute_multihash()
    • 19.2. SigningService
    • 19.3. IdentityManager
  • 20. Fabric Classes
    • 20.1. FabricGateway
    • 20.2. FabricContract
    • 20.3. FabricNetwork
  • 21. Storage Classes
    • 21.1. LocalStorage
    • 21.2. FabricStorage
  • 22. Data Models
    • 22.1. Message
      • Message
        • Message.sender
        • Message.recipient
        • Message.content
        • Message.content_hash
        • Message.signature
        • Message.timestamp
        • Message.message_id
        • Message.data_type
        • Message.expires_at
        • Message.metadata
        • Message.to_dict()
        • Message.from_dict()
        • Message.is_expired()
        • Message.__init__()
    • 22.2. Participant
      • Participant
        • Participant.identity
        • Participant.code_hash
        • Participant.version
        • Participant.registered_at
        • Participant.allowed_communications
        • Participant.direction
        • Participant.is_active
        • Participant.status
        • Participant.revoked_at
        • Participant.last_verified
        • Participant.metadata
        • Participant.to_dict()
        • Participant.from_dict()
        • Participant.is_revoked()
        • Participant.can_communicate_with()
        • Participant.__init__()
    • 22.3. Task
      • Task
        • Task.task_id
        • Task.hash_a
        • Task.hash_b
        • Task.master_id
        • Task.slave_id
        • Task.status
        • Task.created_at
        • Task.completed_at
        • Task.master_signature
        • Task.slave_signature
        • Task.payload_hash
        • Task.metadata
        • Task.to_dict()
        • Task.from_dict()
        • Task.is_complete()
        • Task.__init__()
  • 23. Exceptions
    • SecurityError
      • SecurityError.__init__()
      • SecurityError.__new__()
      • SecurityError.add_note()
      • SecurityError.args
      • SecurityError.with_traceback()
    • CodeIntegrityError
      • CodeIntegrityError.__init__()
      • CodeIntegrityError.__new__()
      • CodeIntegrityError.add_note()
      • CodeIntegrityError.args
      • CodeIntegrityError.with_traceback()
    • PermissionDeniedError
      • PermissionDeniedError.__init__()
      • PermissionDeniedError.__new__()
      • PermissionDeniedError.add_note()
      • PermissionDeniedError.args
      • PermissionDeniedError.with_traceback()
    • MessageIntegrityError
      • MessageIntegrityError.__init__()
      • MessageIntegrityError.__new__()
      • MessageIntegrityError.add_note()
      • MessageIntegrityError.args
      • MessageIntegrityError.with_traceback()
    • SignatureError
      • SignatureError.__init__()
      • SignatureError.__new__()
      • SignatureError.add_note()
      • SignatureError.args
      • SignatureError.with_traceback()
    • RateLimitError
      • RateLimitError.__init__()
      • RateLimitError.__new__()
      • RateLimitError.add_note()
      • RateLimitError.args
      • RateLimitError.with_traceback()
    • RevocationError
      • RevocationError.__init__()
      • RevocationError.__new__()
      • RevocationError.add_note()
      • RevocationError.args
      • RevocationError.with_traceback()
    • ConfigurationError
      • ConfigurationError.__init__()
      • ConfigurationError.__new__()
      • ConfigurationError.add_note()
      • ConfigurationError.args
      • ConfigurationError.with_traceback()
  • 24. Enumerations
    • 24.1. CommunicationDirection
      • CommunicationDirection
        • CommunicationDirection.OUTBOUND
        • CommunicationDirection.INBOUND
        • CommunicationDirection.BIDIRECTIONAL
        • CommunicationDirection.__new__()
        • CommunicationDirection.encode()
        • CommunicationDirection.replace()
        • CommunicationDirection.split()
        • CommunicationDirection.rsplit()
        • CommunicationDirection.join()
        • CommunicationDirection.capitalize()
        • CommunicationDirection.casefold()
        • CommunicationDirection.title()
        • CommunicationDirection.center()
        • CommunicationDirection.count()
        • CommunicationDirection.expandtabs()
        • CommunicationDirection.find()
        • CommunicationDirection.partition()
        • CommunicationDirection.index()
        • CommunicationDirection.ljust()
        • CommunicationDirection.lower()
        • CommunicationDirection.lstrip()
        • CommunicationDirection.rfind()
        • CommunicationDirection.rindex()
        • CommunicationDirection.rjust()
        • CommunicationDirection.rstrip()
        • CommunicationDirection.rpartition()
        • CommunicationDirection.splitlines()
        • CommunicationDirection.strip()
        • CommunicationDirection.swapcase()
        • CommunicationDirection.translate()
        • CommunicationDirection.upper()
        • CommunicationDirection.startswith()
        • CommunicationDirection.endswith()
        • CommunicationDirection.removeprefix()
        • CommunicationDirection.removesuffix()
        • CommunicationDirection.isascii()
        • CommunicationDirection.islower()
        • CommunicationDirection.isupper()
        • CommunicationDirection.istitle()
        • CommunicationDirection.isspace()
        • CommunicationDirection.isdecimal()
        • CommunicationDirection.isdigit()
        • CommunicationDirection.isnumeric()
        • CommunicationDirection.isalpha()
        • CommunicationDirection.isalnum()
        • CommunicationDirection.isidentifier()
        • CommunicationDirection.isprintable()
        • CommunicationDirection.zfill()
        • CommunicationDirection.format()
        • CommunicationDirection.format_map()
        • CommunicationDirection.maketrans()
        • CommunicationDirection.__dir__()
        • CommunicationDirection.__init__()
    • 24.2. DataType
      • DataType
        • DataType.JSON
        • DataType.IMAGE
        • DataType.P2P
        • DataType.BINARY
        • DataType.from_extension()
        • DataType.__new__()
        • DataType.encode()
        • DataType.replace()
        • DataType.split()
        • DataType.rsplit()
        • DataType.join()
        • DataType.capitalize()
        • DataType.casefold()
        • DataType.title()
        • DataType.center()
        • DataType.count()
        • DataType.expandtabs()
        • DataType.find()
        • DataType.partition()
        • DataType.index()
        • DataType.ljust()
        • DataType.lower()
        • DataType.lstrip()
        • DataType.rfind()
        • DataType.rindex()
        • DataType.rjust()
        • DataType.rstrip()
        • DataType.rpartition()
        • DataType.splitlines()
        • DataType.strip()
        • DataType.swapcase()
        • DataType.translate()
        • DataType.upper()
        • DataType.startswith()
        • DataType.endswith()
        • DataType.removeprefix()
        • DataType.removesuffix()
        • DataType.isascii()
        • DataType.islower()
        • DataType.isupper()
        • DataType.istitle()
        • DataType.isspace()
        • DataType.isdecimal()
        • DataType.isdigit()
        • DataType.isnumeric()
        • DataType.isalpha()
        • DataType.isalnum()
        • DataType.isidentifier()
        • DataType.isprintable()
        • DataType.zfill()
        • DataType.format()
        • DataType.format_map()
        • DataType.maketrans()
        • DataType.__dir__()
        • DataType.__init__()
    • 24.3. ParticipantStatus
      • ParticipantStatus
        • ParticipantStatus.ACTIVE
        • ParticipantStatus.INACTIVE
        • ParticipantStatus.REVOKED
        • ParticipantStatus.SUSPENDED
        • ParticipantStatus.__new__()
        • ParticipantStatus.encode()
        • ParticipantStatus.replace()
        • ParticipantStatus.split()
        • ParticipantStatus.rsplit()
        • ParticipantStatus.join()
        • ParticipantStatus.capitalize()
        • ParticipantStatus.casefold()
        • ParticipantStatus.title()
        • ParticipantStatus.center()
        • ParticipantStatus.count()
        • ParticipantStatus.expandtabs()
        • ParticipantStatus.find()
        • ParticipantStatus.partition()
        • ParticipantStatus.index()
        • ParticipantStatus.ljust()
        • ParticipantStatus.lower()
        • ParticipantStatus.lstrip()
        • ParticipantStatus.rfind()
        • ParticipantStatus.rindex()
        • ParticipantStatus.rjust()
        • ParticipantStatus.rstrip()
        • ParticipantStatus.rpartition()
        • ParticipantStatus.splitlines()
        • ParticipantStatus.strip()
        • ParticipantStatus.swapcase()
        • ParticipantStatus.translate()
        • ParticipantStatus.upper()
        • ParticipantStatus.startswith()
        • ParticipantStatus.endswith()
        • ParticipantStatus.removeprefix()
        • ParticipantStatus.removesuffix()
        • ParticipantStatus.isascii()
        • ParticipantStatus.islower()
        • ParticipantStatus.isupper()
        • ParticipantStatus.istitle()
        • ParticipantStatus.isspace()
        • ParticipantStatus.isdecimal()
        • ParticipantStatus.isdigit()
        • ParticipantStatus.isnumeric()
        • ParticipantStatus.isalpha()
        • ParticipantStatus.isalnum()
        • ParticipantStatus.isidentifier()
        • ParticipantStatus.isprintable()
        • ParticipantStatus.zfill()
        • ParticipantStatus.format()
        • ParticipantStatus.format_map()
        • ParticipantStatus.maketrans()
        • ParticipantStatus.__dir__()
        • ParticipantStatus.__init__()
    • 24.4. TaskStatus
      • TaskStatus
        • TaskStatus.PENDING
        • TaskStatus.IN_PROGRESS
        • TaskStatus.COMPLETED
        • TaskStatus.FAILED
        • TaskStatus.CANCELLED
        • TaskStatus.__new__()
        • TaskStatus.encode()
        • TaskStatus.replace()
        • TaskStatus.split()
        • TaskStatus.rsplit()
        • TaskStatus.join()
        • TaskStatus.capitalize()
        • TaskStatus.casefold()
        • TaskStatus.title()
        • TaskStatus.center()
        • TaskStatus.count()
        • TaskStatus.expandtabs()
        • TaskStatus.find()
        • TaskStatus.partition()
        • TaskStatus.index()
        • TaskStatus.ljust()
        • TaskStatus.lower()
        • TaskStatus.lstrip()
        • TaskStatus.rfind()
        • TaskStatus.rindex()
        • TaskStatus.rjust()
        • TaskStatus.rstrip()
        • TaskStatus.rpartition()
        • TaskStatus.splitlines()
        • TaskStatus.strip()
        • TaskStatus.swapcase()
        • TaskStatus.translate()
        • TaskStatus.upper()
        • TaskStatus.startswith()
        • TaskStatus.endswith()
        • TaskStatus.removeprefix()
        • TaskStatus.removesuffix()
        • TaskStatus.isascii()
        • TaskStatus.islower()
        • TaskStatus.isupper()
        • TaskStatus.istitle()
        • TaskStatus.isspace()
        • TaskStatus.isdecimal()
        • TaskStatus.isdigit()
        • TaskStatus.isnumeric()
        • TaskStatus.isalpha()
        • TaskStatus.isalnum()
        • TaskStatus.isidentifier()
        • TaskStatus.isprintable()
        • TaskStatus.zfill()
        • TaskStatus.format()
        • TaskStatus.format_map()
        • TaskStatus.maketrans()
        • TaskStatus.__dir__()
        • TaskStatus.__init__()
    • 24.5. VerificationLevel
      • VerificationLevel
        • VerificationLevel.NONE
        • VerificationLevel.BASIC
        • VerificationLevel.FULL
        • VerificationLevel.STRICT
        • VerificationLevel.__new__()
        • VerificationLevel.encode()
        • VerificationLevel.replace()
        • VerificationLevel.split()
        • VerificationLevel.rsplit()
        • VerificationLevel.join()
        • VerificationLevel.capitalize()
        • VerificationLevel.casefold()
        • VerificationLevel.title()
        • VerificationLevel.center()
        • VerificationLevel.count()
        • VerificationLevel.expandtabs()
        • VerificationLevel.find()
        • VerificationLevel.partition()
        • VerificationLevel.index()
        • VerificationLevel.ljust()
        • VerificationLevel.lower()
        • VerificationLevel.lstrip()
        • VerificationLevel.rfind()
        • VerificationLevel.rindex()
        • VerificationLevel.rjust()
        • VerificationLevel.rstrip()
        • VerificationLevel.rpartition()
        • VerificationLevel.splitlines()
        • VerificationLevel.strip()
        • VerificationLevel.swapcase()
        • VerificationLevel.translate()
        • VerificationLevel.upper()
        • VerificationLevel.startswith()
        • VerificationLevel.endswith()
        • VerificationLevel.removeprefix()
        • VerificationLevel.removesuffix()
        • VerificationLevel.isascii()
        • VerificationLevel.islower()
        • VerificationLevel.isupper()
        • VerificationLevel.istitle()
        • VerificationLevel.isspace()
        • VerificationLevel.isdecimal()
        • VerificationLevel.isdigit()
        • VerificationLevel.isnumeric()
        • VerificationLevel.isalpha()
        • VerificationLevel.isalnum()
        • VerificationLevel.isidentifier()
        • VerificationLevel.isprintable()
        • VerificationLevel.zfill()
        • VerificationLevel.format()
        • VerificationLevel.format_map()
        • VerificationLevel.maketrans()
        • VerificationLevel.__dir__()
        • VerificationLevel.__init__()
  • 25. Tutorials
  • 26. Prerequisites
  • 27. Tutorial 1: Basic Setup
  • 28. Tutorial 2: Identity Management
  • 29. Tutorial 3: Code Integrity
  • 30. Tutorial 4: Communication Permissions
  • 31. Tutorial 5: Rate Limiting
  • 32. Tutorial 6: Fabric Integration
  • 33. Best Practices
  • 34. FAQ
  • 35. General
  • 36. Installation
  • 37. Security
  • 38. Hyperledger Fabric
  • 39. Performance
  • 40. Troubleshooting
  • 41. Development
  • 42. Licensing
  • 43. Support
  • 44. Architecture
    • 44.1. Overview
    • 44.2. Components
      • 44.2.1. FabricSecurity (Main Class)
      • 44.2.2. Cryptographic Layer
      • 44.2.3. Security Services
        • 44.2.3.1. IntegrityVerifier
        • 44.2.3.2. PermissionManager
        • 44.2.3.3. MessageManager
        • 44.2.3.4. RateLimiter
      • 44.2.4. Fabric Integration
      • 44.2.5. Storage Layer
    • 44.3. Design Patterns
      • 44.3.1. Singleton Pattern
      • 44.3.2. Factory Pattern
      • 44.3.3. Strategy Pattern
    • 44.4. Security Model
      • 44.4.1. Zero Trust Principles
      • 44.4.2. Threat Mitigation
      • 44.4.3. Audit & Compliance
    • 44.5. Performance
      • 44.5.1. Caching Strategy
      • 44.5.2. Optimizations
    • 44.6. Scalability
    • 44.7. Deployment
  • 45. Glossary
    • 45.1. Fundamentals
      • 45.1.1. Zero Trust
      • 45.1.2. Identity
      • 45.1.3. MSP (Membership Service Provider)
    • 45.2. Cryptography
      • 45.2.1. Hashing
      • 45.2.2. ECDSA (Elliptic Curve Digital Signature Algorithm)
      • 45.2.3. Digital Signature
      • 45.2.4. X.509 Certificate
    • 45.3. Security
      • 45.3.1. Integrity
      • 45.3.2. Authenticity
      • 45.3.3. Availability
      • 45.3.4. Confidentiality
      • 45.3.5. Non-Repudiation
    • 45.4. Hyperledger Fabric
      • 45.4.1. Channel
      • 45.4.2. Chaincode
      • 45.4.3. Endorsement
      • 45.4.4. Ledger
      • 45.4.5. Peer
      • 45.4.6. Orderer
    • 45.5. Messages
      • 45.5.1. SignedMessage
      • 45.5.2. CommunicationDirection
    • 45.6. Storage
      • 45.6.1. LocalStorage
      • 45.6.2. FabricStorage
    • 45.7. Algorithms
      • 45.7.1. Token Bucket Algorithm
      • 45.7.2. Exponential Backoff
      • 45.7.3. LRU Cache (Least Recently Used)
    • 45.8. Errors
  • 46. Changelog
    • 46.1. [1.0.0] - 2026-03-21
      • 46.1.1. Added
      • 46.1.2. Changed
      • 46.1.3. Fixed
      • 46.1.4. Deprecated
    • 46.2. [0.1.0] - 2026-01-15
      • 46.2.1. Added
    • 46.3. Version Types
    • 46.4. Branch Strategy
    • 46.5. Contributing
  • 47. Bibliography and Source Resources
    • 47.1. Official Documentation
      • 47.1.1. Hyperledger Fabric
      • 47.1.2. Python Documentation
    • 47.2. Cryptography
    • 47.3. Security Standards
    • 47.4. Code Quality Tools
    • 47.5. Related Projects
    • 47.6. Research Papers
    • 47.7. Author’s Resources
    • 47.8. License
wFabricSecurity
  • Overview: module code

All modules for which code is available

  • wFabricSecurity.fabric_security.core.enums
  • wFabricSecurity.fabric_security.core.exceptions
  • wFabricSecurity.fabric_security.core.models
  • wFabricSecurity.fabric_security.crypto.hashing

© Copyright 2026, William Rodriguez.

Built with Sphinx using a theme provided by Read the Docs.