solid_encrypt

Creator: coderz1093

Last updated:

0 purchases

TODO
Add to Cart

Description:

solid encrypt

Solid Encrypt #
Solid Encrypt is an implementation of data encryption which can be used
to encrypt the content in turtle files stored in Solid PODs.
The encryption of files works with both Android and Web based client
applications. The main fucntionalities in the package include set up
encryption keys, encrypt file content, change/update encryption keys,
and revoke the encryption.
The strength of this package is that the encryption key is not stored in Solid server, but in local storage. Only the key checksum is saved in the Solid sever.
Features #

Set up an encryption key for encrypting files in a Solid POD
Encrypt content of a file in a Solid POD
Change the encryption key which will re-encrypt all the encrypted files in the POD
Revoke the encryption completely which will decrypt all encrypted files and remove the encryption key

Dependencies #
To use the Solid Encrypt package you will also need the Solid Auth package. This package uses authentication tokens provided by the Solid Auth package to read and write data from and to Solid PODs.
Usage #
To use this package add solid_encrypt as a dependency in your pubspec.yaml file.
An example project that uses solid_auth can be found here.
Getting authentication data required for the package #
import 'package:solid_auth/solid_auth.dart';

// Example WebID
String _myWebId = 'https://charlieb.solidcommunity.net/profile/card#me';

// Authentication process for the Solid POD using Solid Auth package
var authData = await authenticate(...);

copied to clipboard
Setting up an encryption key #
import 'package:solid_auth/solid_encrypt.dart';

// Set up encryption client object
EncryptClient encryptClient = EncryptClient(authData, _myWebId);

// Set up encryption key
String encryptKey = 'my-enc-key';
await encryptClient.setupEncKey(encryptKey);

copied to clipboard
Encrypting files #
import 'package:solid_auth/solid_encrypt.dart';

// Set up encryption client object
EncryptClient encryptClient = EncryptClient(authData, _myWebId);

// Verify and store the encryption key in local storage
String encryptKey = 'my-enc-key';
await encryptClient.verifyEncKey(encryptKey);

// Encrypt files
String encryptFileLocation = 'private/medical-data';
String encryptFileName = 'vaccination_history.ttl'
await encryptClient.encryptFile(encryptFileLocation, encryptFileName);

copied to clipboard
Update encryption key #
import 'package:solid_auth/solid_encrypt.dart';

// Set up encryption client object
EncryptClient encryptClient = EncryptClient(authData, _myWebId);

// Define old and new encryption keys
String encryptKeyPrev = 'my-enc-key';
String encryptKeyNew = 'my-new-enc-key';

// Update encryption key
await encryptClient.updateEncKey(encryptKeyPrev, encryptKeyNew);

copied to clipboard
Revoke encryption #
import 'package:solid_auth/solid_encrypt.dart';

// Set up encryption client object
EncryptClient encryptClient = EncryptClient(authData, _myWebId);

// Define encryption keys
String encryptKey = 'my-enc-key';

// Revoke encryption
await encryptClient.revokeEnc(encryptKey);

copied to clipboard
Additional information #
The source code can be accessed via GitHub repository. You can also file issues you face at GitHub Issues.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.