From 14817c6855e793a88bca3d6b31c993fbcf9f6526 Mon Sep 17 00:00:00 2001 From: Damyan Mitev <damyan.mitev@vereign.com> Date: Thu, 13 Jun 2019 14:49:45 +0300 Subject: [PATCH] add verifySMIME to viamapi-iframe --- javascript/src/iframe/viamapi-iframe.js | 32 ++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js index efd6fe2..0bb7f7b 100644 --- a/javascript/src/iframe/viamapi-iframe.js +++ b/javascript/src/iframe/viamapi-iframe.js @@ -24,7 +24,8 @@ import { createPassportCertificate, decryptMessage, encryptMessage, - signEmail + signEmail, + verifySMIME } from "../utilities/signingUtilities"; import { signPdf } from "../utilities/pdfUtilities"; import CryptoData from "../CryptoData"; @@ -1051,6 +1052,35 @@ const connection = Penpal.connectToParent({ ); }); }, + verifySMIME: async (smimeString) => { + const authenticationPublicKey = localStorage.getItem( + "authenticatedIdentity" + ); + + if ( + !authenticationPublicKey || + !window.loadedIdentities[authenticationPublicKey] || + !extendPinCodeTtl(authenticationPublicKey) + ) { + return encodeResponse("400", "", "Identity not authenticated"); + } + + const rootCaResponse = await executeRestfulFunction( + "private", + window.viamApi, + window.viamApi.signRetrieveRootCertificate, + null + ); + + if (rootCaResponse.code !== "200") { + return encodeResponse("400", "", rootCaResponse.status); + } + + const rootCaPem = rootCaResponse.data; + const success = await verifySMIME(smimeString, rootCaPem); + + return encodeResponse("200", success, "Verified succesfully"); + }, signEmail: async (passportUUID, emailArg, emailMessage) => { const authenticationPublicKey = localStorage.getItem( "authenticatedIdentity" -- GitLab