setupEncKey method
Set up encryption key by creating a directory and a ttl file to store the key
Implementation
Future<String> setupEncKey(String plainEncKey) async {
String sha224Result =
sha224.convert(utf8.encode(plainEncKey)).toString().substring(0, 32);
String sha256Result =
sha256.convert(utf8.encode(plainEncKey)).toString().substring(0, 32);
/// Create a directory
var dirCreateRes = await createItem(false, encKeyFileDir, dirBody);
/// Create a ttl file to store the key
String subUrl =
webId.replaceAll('profile/card#me', '$encKeyFileDir/$encKeyFileName');
String keyFileBody =
'<$subUrl> <http://purl.org/dc/terms/title> "Encryption keys";' +
'\n <$encKeyPred> "$sha224Result";' +
'\n <$encFilePred> "";' +
'\n <$ivValPred> "".';
var fileCreateRes = await createItem(true, encKeyFileName, keyFileBody,
fileLoc: encKeyFileDir);
if (fileCreateRes == 'ok' && dirCreateRes == 'ok') {
/// Set encryption key in the local storage
setEncKeyStorage(sha256Result);
return fileCreateRes;
} else {
throw Exception('Failed to set up encryption key.');
}
}