Skip to content
Snippets Groups Projects
Commit 4dde7059 authored by Igor Markin's avatar Igor Markin
Browse files

Add build

parent cbd76228
No related branches found
No related tags found
1 merge request!44Implement a new signature/verification algorithm with severity level
import { ICryptoService } from "../CryptoService/ICryptoService"; import { ICryptoService } from "../CryptoService/ICryptoService";
import { AttachmentData, AttachmentsSignatures, PartsRabinFingerprints, PartsSignatures, SignComponentsResult, SigningServiceHelpers, VerifyComponentsResult } from "./types"; import { AttachmentData, AttachmentsSignatures, PartsRabinFingerprints, PartsSignatures, SignComponentsResult, SignedAttachmentsData, SigningServiceHelpers, VerifyComponentsResult } from "./types";
declare class SigningService { declare class SigningService {
cryptoService: ICryptoService; cryptoService: ICryptoService;
helpers: SigningServiceHelpers; helpers: SigningServiceHelpers;
...@@ -41,7 +41,7 @@ declare class SigningService { ...@@ -41,7 +41,7 @@ declare class SigningService {
/** /**
* @param attachments - an array of attachments data objects * @param attachments - an array of attachments data objects
*/ */
signAttachments(attachments: AttachmentData[]): Promise<AttachmentsSignatures>; signAttachments(attachments: AttachmentData[]): Promise<SignedAttachmentsData>;
/** /**
* @param publicKeyPEM * @param publicKeyPEM
* @param attachments - an array of attachments hashes * @param attachments - an array of attachments hashes
......
...@@ -218,22 +218,19 @@ class SigningService { ...@@ -218,22 +218,19 @@ class SigningService {
*/ */
signAttachments(attachments) { signAttachments(attachments) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
const attachmentsHashes = yield this.hashAttachments(attachments, false); const hashedAttachments = yield this.hashAttachments(attachments, false);
const result = {}; const result = {};
for (let i = 0; i < attachmentsHashes.length; i++) { for (let i = 0; i < hashedAttachments.length; i++) {
const attachmentHash = attachmentsHashes[i]; const hashedAttachment = hashedAttachments[i];
const wrappingHash = yield this.helpers.cryptoService.SHA256(attachmentHash.content); const wrappingHash = yield this.helpers.cryptoService.SHA256(hashedAttachment.content);
const filenameHashBuffer = yield this.helpers.cryptoService.SHA256(attachmentHash.filename); const filenameHashBuffer = yield this.helpers.cryptoService.SHA256(hashedAttachment.filename);
const filenameHash = this.helpers.arrayBufferToBase64(filenameHashBuffer); const filenameHash = this.helpers.arrayBufferToBase64(filenameHashBuffer);
const signature = yield this.helpers.signRSAExternal(this.helpers.arrayBufferToBase64(wrappingHash)); const signature = yield this.helpers.signRSAExternal(this.helpers.arrayBufferToBase64(wrappingHash));
if (!(filenameHash in result)) { if (!(filenameHash in result)) {
result[filenameHash] = []; result[filenameHash] = [];
} }
const attachmentSignature = { hashedAttachment.signature = signature;
signature: signature, result[filenameHash].push(hashedAttachment);
hashingAlgorithm: attachmentHash.hashingAlgorithm,
};
result[filenameHash].push(attachmentSignature);
} }
return result; return result;
}); });
......
...@@ -6,7 +6,13 @@ export interface AttachmentData { ...@@ -6,7 +6,13 @@ export interface AttachmentData {
content: string; content: string;
type: AttachmentDataType; type: AttachmentDataType;
hashingAlgorithm?: AttachmentHashAlgorithm; hashingAlgorithm?: AttachmentHashAlgorithm;
size?: number;
url?: string;
signature?: string;
} }
export declare type SignedAttachmentsData = {
[key: string]: AttachmentData[];
};
export declare type AttachmentsSignatures = { export declare type AttachmentsSignatures = {
[key: string]: { [key: string]: {
signature: string; signature: string;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment