12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- /*
- * 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
- */
- /* jshint node:true, jasmine:true */
- 'use strict';
- var cryptoPolicy = require('../lib/index');
- describe('The cryptographic policy module should be able to ...', function() {
- describe(
- 'create a cryptographic policy instance that should be able to ..',
- function() {
- it('provide access to policy options', function() {
- expect(function() {
- // It's `strict`, so it will fail if any of the values is not
- // present in the options object.
- var policy = cryptoPolicy.newInstance();
- var value = policy.asymmetric.keyPair.encryption;
- expect(value).toBeDefined();
- }).not.toThrow();
- });
- it('restore default settings', function() {
- // Load the policy
- var policy = cryptoPolicy.newInstance();
- // Check that the policy has default values.
- expect(policy.asymmetric.keyPair.encryption.algorithm).toEqual('RSA');
- // Change a value.
- policy.asymmetric.keyPair.encryption.algorithm = 'RSE';
- // Check that the value has changed.
- expect(policy.asymmetric.keyPair.encryption.algorithm).toEqual('RSE');
- // Get a new default policy.
- policy = cryptoPolicy.newInstance();
- // Check that the policy has default values again.
- expect(policy.asymmetric.keyPair.encryption.algorithm).toEqual('RSA');
- });
- it('provide access to policy options', function() {
- // Load the policy
- var policy = cryptoPolicy.newInstance();
- expect(function() {
- policy.asymmetric.keyPair.encryption.algorithm =
- cryptoPolicy.options.asymmetric.keyPair.encryption.algorithm
- .RSA;
- }).not.toThrow();
- });
- it('allow overriding of the default policy', function() {
- var otherValue = 'XYZ';
- // Load the policy
- var policy = cryptoPolicy.newInstance({
- asymmetric: {cipher: {algorithm: {name: otherValue}}},
- newOption: otherValue
- });
- expect(policy.asymmetric.cipher.algorithm.name).toEqual(otherValue);
- expect(policy.newOption).toBeDefined();
- expect(policy.newOption).toEqual(otherValue);
- });
- it('throw an error when being created with an invalid policy',
- function() {
- expect(function() {
- Object.create(cryptoPolicy.newInstance(null));
- }).toThrow();
- expect(function() {
- Object.create(cryptoPolicy.newInstance('non object'));
- }).toThrow();
- expect(function() {
- Object.create(cryptoPolicy.newInstance({}));
- }).toThrow();
- });
- });
- });
|