Skip to content

Latest commit

Β 

History

History
92 lines (68 loc) Β· 2.44 KB

README.md

File metadata and controls

92 lines (68 loc) Β· 2.44 KB

Wispyr - RSA Encryption Messaging Web App

Wispyr App Banner

🌟 Overview

Wispyr is a cutting-edge secure messaging application designed to prioritize user privacy through robust RSA encryption. With end-to-end encryption and a unique 1-minute message retention policy, Wispyr ensures your communications remain confidential and ephemeral.

πŸš€ Key Features

Unbreakable Security

  • End-to-End RSA Encryption: Every message is encrypted using public/private key pairs
  • 1-Minute Message Retention: Messages automatically self-destruct after 60 seconds
  • Secure Key Exchange: Safe friend discovery and public key sharing

πŸ“Έ App Screenshots

RSA Encryption Messaging

Messaging Interface

Find Your Friends

Friend Discovery

πŸ›  Technology Stack

  • Frontend: React.js, TailwindCSS
  • Backend & Database: ConvexDB
  • Encryption: RSA
  • Hashing: Blowfish Cipher

πŸ” How It Works

  1. User Registration

    • Generate unique RSA key pairs
    • Store public key on server
    • Keep private key secure on client-side
  2. Secure Messaging

    • Encrypt messages with recipient's public key
    • Only recipient can decrypt with their private key
    • Automatic message deletion after 1 minute

Installation Steps

  1. Clone the Repository

    git clone https://github.com/yourusername/wispyr.git
    cd wispyr
  2. Configure Environment Create a .env file with the following:

    # Deployment used by npx convex dev
    AUTH_SECRET=your_auth_secret
    CONVEX_DEPLOYMENT=your_convex_deployment
    NEXT_PUBLIC_CONVEX_URL=your_convex_url
  3. Run the Application

    # Start Convex
    npx convex dev
    
    # Run Backend
    cd backend
    npm start
    
    # Run Frontend
    cd ../frontend
    npm run dev

πŸ”’ Encryption Technical Overview

Key Generation

const { publicKey, privateKey } = generateKeyPair();

Message Encryption

const encryptedMessage = encryptWithPublicKey(message, recipientPublicKey);

Message Decryption

const decryptedMessage = decryptWithPrivateKey(encryptedMessage, recipientPrivateKey);

πŸ—Ί Roadmap

  • Integrate Voice Messaging