Skip to content
Snippets Groups Projects

5-implement-integrity-check-of-documents

Merged Damyan Mitev requested to merge 5-implement-integrity-check-of-documents into master
1 file
+ 37
1
Compare changes
  • Side-by-side
  • Inline
@@ -20,10 +20,11 @@ import {
} from "../utilities/appUtility";
import { LOGIN_MODES } from "../constants/authentication";
import {
CertificateData,
createOneTimePassportCertificate,
createPassportCertificate,
decryptMessage,
encryptMessage,
encryptMessage, parseCertificate,
signEmail,
verifySMIME
} from "../utilities/signingUtilities";
@@ -1095,6 +1096,41 @@ const connection = Penpal.connectToParent({
return encodeResponse("200", verificationResult.verified, verificationResult.message);
},
validateDocument: async (documentUUID, contentType) => {
const authenticationPublicKey = localStorage.getItem("authenticatedIdentity");
if (
!authenticationPublicKey ||
!window.loadedIdentities[authenticationPublicKey] ||
!extendPinCodeTtl(authenticationPublicKey)
) {
return encodeResponse("400", "", "Identity not authenticated");
}
const validateDocumentResponse = await executeRestfulFunction(
"private",
window.viamApi,
window.viamApi.documentValidateDocumentByUUID,
null,
documentUUID,
contentType);
if (validateDocumentResponse.code !== "200") {
return encodeResponse("400", "", validateDocumentResponse.status);
}
const signatures = validateDocumentResponse.data;
for (const signature of signatures) {
const certificateChain = signature.certificateChainPEM.map((certificatePEM) => {
const certificate = parseCertificate(certificatePEM);
const certificateData = new CertificateData(certificate);
return certificateData;
});
signature.certificateChain = certificateChain;
}
return validateDocumentResponse;
},
signEmail: async (passportUUID, emailArg, emailMessage) => {
const authenticationPublicKey = localStorage.getItem(
"authenticatedIdentity"
Loading