Swap-Aggregator-Subgraph/node_modules/rsa-pem-to-jwk/test/rsa-pem-to-jwk.test.js
2022-07-03 07:27:35 +05:30

89 lines
2.7 KiB
JavaScript

/*
* Copyright 2014 Open Ag Data Alliance
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*global describe, it */
/*jshint expr:true */
'use strict';
var fs = require('fs');
var path = require('path');
var expect = require('chai').expect;
var objectAssign = require('object-assign');
var rsaPemToJwk = require('../rsa-pem-to-jwk');
describe('rsa-pem-to-jwk', function() {
var privatePem = fs.readFileSync(path.join(__dirname, 'data', 'private.pem'));
var publicPem = fs.readFileSync(path.join(__dirname, 'data', 'public.pem'));
var expectedPublic = require('./data/expectedPublic.json');
var expectedPrivate = require('./data/expectedPrivate.json');
it('should fail for an invalid PEM', function() {
var jwk = rsaPemToJwk('INVALID');
expect(jwk).to.be.undefined;
});
it('should return a public JWK by default', function() {
var jwk = rsaPemToJwk(publicPem);
expect(jwk).to.eql(expectedPublic);
});
it('should return a private JWK by default', function() {
var jwk = rsaPemToJwk(privatePem);
expect(jwk).to.eql(expectedPrivate);
});
it('should return a public JWK with extra keys', function() {
var jwk = rsaPemToJwk(publicPem, {use: 'sig'});
expect(jwk).to.eql(objectAssign({}, expectedPublic, {use: 'sig'}));
});
it('should return a private JWK with extra keys', function() {
var jwk = rsaPemToJwk(privatePem, {use: 'sig'});
expect(jwk).to.eql(objectAssign({}, expectedPrivate, {use: 'sig'}));
});
it('should return a public JWK from a private PEM', function() {
var jwk = rsaPemToJwk(privatePem, 'public');
expect(jwk).to.eql(expectedPublic);
});
it('should return a public JWK with extra keys from a private PEM',
function() {
var jwk = rsaPemToJwk(privatePem, {use: 'sig'}, 'public');
expect(jwk).to.eql(objectAssign({}, expectedPublic, {use: 'sig'}));
});
it('should fail to return a private JWK from a public PEM', function() {
var jwk = rsaPemToJwk(publicPem, 'private');
expect(jwk).to.be.undefined;
});
it('should fail to return a private JWK with extra keys from public PEM',
function() {
var jwk = rsaPemToJwk(publicPem, {use: 'sig'}, 'private');
expect(jwk).to.be.undefined;
});
});