Skip to content
/ keyr Public

πŸ”’ Public key cryptography through QR-encoding

Notifications You must be signed in to change notification settings

timtheguy/keyr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

KeyR Code

KeyR code is an implementation of QR code technology that allows the user to decrypt and decode securely generated QR codes from the server.

Overview

This repository contains the source for a server and mobile application pair designed to demonstrate the implementation of public key cryptography primitives in securing the contents of a QR-encoded barcode.

Source Layout

mobile-app - contains the Ionic source for the mobile application

  • /src - contains the Typescript source code for the application's components
    • /src/pages/Home - the files associated with the Home page of the application
      • home.html - handles what the page looks like
      • home.ts - handles what data and information is contained in the application

web-app - contains the source for the web application

  • /src/app - contains the source for the front end of the application
    • /src/app/app.component.ts - where we interface with application services
    • /src/app/data.service.ts - service where we handle exchange with the server
    • /src/app/secure.service.ts - service where we process cryptographic functions
  • /server/routes - contains the source for the backend server operations
    • /server/routes/api.js - the API endpoints and interfaces to the server

How It Works

  1. The user enrolls in the mobile application, locally generating a PGP public and private key pair.
  2. The public key of the user is exchanged with the public key of the organization.
  3. The organization can then generate an encrypted for that specific user, using their public key.
  4. The organization also signs the message with their private key, allowing the user to verify with the public key upon receipt.
  5. The message is stored in the server and associated with a unique 6-character ID.
  6. The ID is encoded with the URL and can be used to retrieve the message. The mobile application's barcode scanner capability enables this automatically.

Demo

  1. Visit the live deployment of the application on Heroku at https://keyr.herokuapp.com.
  2. Download the Ionic View application and view the application with code 57db4331
  3. Enroll in the mobile application
  4. Press "Refresh Users"
  5. Select your enrollment name
  6. Generate a QR code with your message
  7. Scan the barcode from your mobile device

Built With


Created for the final project of my cryptography class

About

πŸ”’ Public key cryptography through QR-encoding

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published