1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- /*
- * Copyright 2018 Scytl Secure Electronic Voting SA
- *
- * All rights reserved
- *
- * See our extended copyright notice in *file 'Copyright.txt' which is part of this source code package
- */
- cryptolib.modules.digitalenvelope = cryptolib.modules.digitalenvelope || {};
- /**
- * Defines the digital envelope service.
- *
- * @namespace digitalenvelope
- */
- cryptolib.modules.digitalenvelope.service = function(box) {
- 'use strict';
- box.digitalenvelope = box.digitalenvelope || {};
- box.digitalenvelope.service = {};
- var digitalEnvelopeFactory;
- cryptolib('digitalenvelope', function(box) {
- digitalEnvelopeFactory =
- new box.digitalenvelope.factory.DigitalEnvelopeFactory();
- });
- /**
- * Creates a digital envelope, using one or more public keys, each of whose
- * corresponding private key can be used to open the envelope and retrieve
- * the data.
- *
- * @function createDigitalEnvelope
- * @param dataBase64
- * {string} the data to store in the digital envelope, as a
- * string in Base64 encoded format.
- * @param publicKeysPem
- * {string[]} a list of one or more public keys used to generate
- * the digital envelope, as an array of strings in PEM format.
- * @return {DigitalEnvelope} the newly created digital envelope.
- */
- box.digitalenvelope.service.createDigitalEnvelope = function(
- dataBase64, publicKeysPem) {
- var generator = digitalEnvelopeFactory.getDigitalEnvelopeGenerator();
- return generator.generate(dataBase64, publicKeysPem);
- };
- /**
- * Opens an existing digital envelope and retrieves the data that it
- * contains. The envelope can be opened with any private key corresponding
- * to a public key that was used to generate the envelope.
- *
- * @function openDigitalEnvelope
- * @param digitalEnvelope
- * {DigitalEnvelope} the digital envelope to open.
- * @param privateKeyPem
- * {string} the private key used to open the digital envelope, as
- * a string in PEM format.
- * @return {string} the data contained in the digital envelope, as a string
- * in Base64 encoded format.
- */
- box.digitalenvelope.service.openDigitalEnvelope = function(
- digitalEnvelope, privateKeyPem) {
- var opener = digitalEnvelopeFactory.getDigitalEnvelopeOpener();
- return opener.open(digitalEnvelope, privateKeyPem);
- };
- };
|