KeyR code is an implementation of QR code technology that allows the user to decrypt and decode securely generated QR codes from the server.
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.
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 applicationhome.html
- handles what the page looks likehome.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
- The user enrolls in the mobile application, locally generating a PGP public and private key pair.
- The public key of the user is exchanged with the public key of the organization.
- The organization can then generate an encrypted for that specific user, using their public key.
- The organization also signs the message with their private key, allowing the user to verify with the public key upon receipt.
- The message is stored in the server and associated with a unique 6-character ID.
- 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.
- Visit the live deployment of the application on Heroku at https://keyr.herokuapp.com.
- Download the Ionic View application and view the application with code
57db4331
- Enroll in the mobile application
- Press "Refresh Users"
- Select your enrollment name
- Generate a QR code with your message
- Scan the barcode from your mobile device
- Ionic Framework
- MEAN Stack
- MongoDB
- Express
- Angular
- Node
- Phonegap Barcode Scanner plugin
- qrcode module
- openpgp.js