***Please note that applying the Encryption flag to an element will drop existing data for that form and recreate it in the database. Don't apply this property to a live form unless you don't need the data***
Contents
- Overview
- Who can use this feature?
- Decryption Requirements
- Public Key
- Private Key
- Create Keys
- Decrypt Data Locally
Overview
Sensitive information such as Personal Health Information can be stored encrypted using an RSA key pair that you generate on your own. Data encryption takes place right before the record is sent back to the server, and remains encrypted until decryption requirements are met (see below).
Who can use this feature?
This feature can be applied to any project that requires specific fields to remain encrypted from a third party view, unless authorization has been provided. Only those users with the private decryption key will be able to view the sensitive data.
Decryption Requirements
Users are responsible for generating their own public and private keys. Please do not contact us asking for the encryption keys. You must create these keys locally on your machine.
Public Key
The public encryption key needs to be pasted in the Data Security section on the Company Info page. Paste your key exactly as show in the image to the right. Anytime a new Public key is generated, users must sync their device to ensure they are collecting data with the same key.
Private Key
*WE DO NOT SAVE THE PRIVATE KEY*
We STRONGLY recommend that you decrypt your data after it has been downloaded from iFormBuilder application (see example below).
Should you choose to decrypt the data within iFormBuilder the private key will be required for each session. Click on the list view icon from the main data view page to access the decryption icon. Select the decryption icon to enter your private key to decrypt your data.
Create Keys
Click the link below to see how you can create your own set of keys for OSX.
Comments
1 comment
I had trouble in .NET until I used openssl from one of our Linux boxes to create my key pair. Then I used OpenSSLKey (http://www.jensign.com/opensslkey/) to read the private key. Here's a little sample console app that decrypts an XML file downloaded from iFormBuilder.
using JavaScience;
using System;
using System.IO;
using System.Security.Cryptography;
using System.Xml;
namespace Keys
{
class Program
{
static void Main(string[] args)
{
string fileWithEncryptedFields = @"C:\Temp\keys\dataXML.php.xml";
string decryptedFile = @"C:\Temp\keys\fixed.xml";
string[] encryptedFieldNames = new string[] { "encrypted" };
}
Please sign in to leave a comment.