part of #275, do before #195 or #196
need to add the following method to Core. Roughly:
publicfunc decryptFile(encrypted:Data, keys:[PrvKeyInfo], msgPwd:String?)throws->CoreRes.DecryptFile{letjson:[String:Any?]?=["keys":try keys.map{try $0.toDict()},"msgPwd": msgPwd]letdecrypted=trycall("decryptFile", jsonDict: json, data: encrypted)letmeta=try decrypted.json.decodeJson(as:CoreRes.DecryptFileMeta.self)returnCoreRes.DecryptFile(...)}here is the code of the typescript handler:
publicdecryptFile=async(uncheckedReq: any,data: Buffers): Promise<Buffers>=>{const{keys: kisWithPp, msgPwd }=ValidateInput.decryptFile(uncheckedReq);constdecryptedMeta=awaitPgpMsg.decrypt({ kisWithPp,encryptedData: Buf.concat(data), msgPwd });if(!decryptedMeta.success){decryptedMeta.message=undefined;returnfmtRes(decryptedMeta);}returnfmtRes({success: true,name: decryptedMeta.filename||''},decryptedMeta.content);}need to be mindful of ability to handle the error scenario.
similarly for encryptFile:
public encryptFile = async (uncheckedReq: any, data: Buffers): Promise<Buffers> => {
const req = ValidateInput.encryptFile(uncheckedReq);
const encrypted = await PgpMsg.encrypt({ pubkeys: req.pubKeys, data: Buf.concat(data), filename: req.name, armor: false }) as OpenPGP.EncryptBinaryResult;
return fmtRes({}, encrypted.message.packets.write());
}
part of #275, do before #195 or #196
need to add the following method to Core. Roughly:
here is the code of the typescript handler:
need to be mindful of ability to handle the error scenario.
similarly for encryptFile: