12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- /*
- * 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.primitives = cryptolib.modules.primitives || {};
- /**
- * Defines primitives services.
- * @namespace primitives/service
- */
- cryptolib.modules.primitives.service = function(box) {
- 'use strict';
- box.primitives = box.primitives || {};
- /**
- * A module that holds primitives API.
- * @exports primitives/service
- */
- box.primitives.service = {};
- var securerandomFactory, messageDigestFactory, secretKeyGeneratorFactory;
- cryptolib(
- 'primitives.securerandom', 'commons.exceptions',
- 'primitives.messagedigest', 'primitives.derivation', function(box) {
- securerandomFactory =
- new box.primitives.securerandom.factory.SecureRandomFactory();
- messageDigestFactory =
- new box.primitives.messagedigest.factory.MessageDigestFactory();
- secretKeyGeneratorFactory =
- new box.primitives.derivation.factory.SecretKeyGeneratorFactory();
- });
- /**
- * Provides a random bytes generator.
- * @function
- * @returns {primitives/securerandom.CryptoScytlRandomBytes} a CryptoRandomBytes object.
- */
- box.primitives.service.getCryptoRandomBytes = function() {
- return securerandomFactory.getCryptoRandomBytes();
- };
- /**
- * Provides a random integer generator.
- * @function
- * @returns {primitives/securerandom.CryptoScytlRandomInteger} a CryptoRandomInteger object.
- */
- box.primitives.service.getCryptoRandomInteger = function() {
- return securerandomFactory.getCryptoRandomInteger();
- };
- /**
- * Generates a hash for the given data.
- * @function
- * @parameter {array} ArrayDataBase64 the input data for the hash.
- * @returns {string} the hash, as a string in Base64 encoded format.
- */
- box.primitives.service.getHash = function(ArrayDataBase64) {
- var hashFunction = messageDigestFactory.getCryptoMessageDigest();
- hashFunction.start();
- hashFunction.update(ArrayDataBase64);
- return hashFunction.digest();
- };
- /**
- * Provides a derived secret key generator.
- * @function
- * @returns {primitives/derivation.CryptoForgePBKDFSecretKeyGenerator} a the pbkdf Generator.
- */
- box.primitives.service.getPbkdfSecretKeyGenerator = function() {
- return secretKeyGeneratorFactory.createPBKDF();
- };
- };
|