Skip to content

Secure React form handling with client-side encryption for HIPAA compliance

Notifications You must be signed in to change notification settings

Anas-debug/HIPPAGuard

Repository files navigation

HIPPAGuard 🔒

Secure form handling with client-side encryption for React applications - HIPAA-compliant form components with built-in security.

HIPPAGuard Logo

npm version License: MIT Test Coverage

Overview

HIPPAGuard provides secure form components for handling sensitive healthcare data in React applications. It includes built-in encryption, data protection, and HIPAA compliance features.

Key Features

  • 🔒 Client-side AES-256-GCM encryption
  • ⚕️ HIPAA & PHI/PII data protection
  • 🛡️ Form validation & sanitization
  • 🔄 Simple React hooks API
  • 📝 Full TypeScript support
  • ✅ Extensive test coverage
  • 🚀 Lightweight with minimal dependencies
  • 💪 Built for production use

Getting Started

Installation

npm install @hippaguard/react

Basic Usage

import { SecureForm, SecureField } from '@hippaguard/react';

function PatientForm() {
  const handleSubmit = async (data) => {
    // Data is automatically encrypted
    console.log('Encrypted form data:', data);
  };

  return (
    <SecureForm onSubmit={handleSubmit}>
      <SecureField
        name="firstName" 
        label="First Name"
        required
        sensitivityLevel="PHI"
      />
      
      <SecureTextArea
        name="symptoms"
        label="Current Symptoms" 
        sensitivityLevel="PHI"
      />

      <button type="submit">
        Submit
      </button>
    </SecureForm>
  );
}

Core Components

SecureField

Standard input field with encryption and validation.

<SecureField
  name="ssn"
  label="Social Security Number" 
  type="text"
  sensitivityLevel="PII"
  validateFn={validateSSN}
  required
/>

SecureTextArea

Multiline text input with encryption.

<SecureTextArea
  name="notes"
  label="Medical Notes"
  rows={4}
  sensitivityLevel="PHI" 
/>

SecureCheckbox

Secure checkbox component.

<SecureCheckbox
  name="consent"
  label="I consent to treatment"
  sensitivityLevel="PHI"
/>

SecureRadioGroup

Radio button group with encryption.

<SecureRadioGroup
  name="gender"
  label="Gender"
  options={['Male', 'Female', 'Other']}
  sensitivityLevel="PHI"
/>

Validation

Built-in validation helpers:

import { validators } from '@hippaguard/react';

<SecureField
  name="email"
  validateFn={validators.combine([
    validators.required(),
    validators.email()
  ])}
/>

Context & Hooks

SecurityProvider

Provides encryption context.

import { SecurityProvider } from '@hippaguard/react';

function App() {
  return (
    <SecurityProvider>
      <YourApp />
    </SecurityProvider>
  );
}

useSecurity

Access encryption functions.

const { encrypt, decrypt } = useSecurity();

Security Features

  • 🔐 AES-256-GCM encryption
  • 🔑 Unique IV per encryption
  • 🛡️ PBKDF2 key derivation
  • 🧹 Auto key cleanup
  • 🔒 Zero plaintext storage
  • ✅ Input sanitization

Contributing

We welcome contributions! Please check our Contributing Guide.

Development

  1. Clone repo
git clone https://github.com/Anas-debug/HIPPAGuard.git
  1. Install dependencies
npm install
  1. Run tests
npm test

Testing

  • Unit tests
  • Integration tests
  • Security tests
  • Edge cases
  • Current coverage: ~87%

Support

License

MIT © Anas Saoui

About

Secure React form handling with client-side encryption for HIPAA compliance

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published