4 Commits

Author SHA1 Message Date
14cf8c3b6c 1.0.8 2019-10-01 19:58:53 +02:00
7900997a10 fix(core): update 2019-10-01 19:58:53 +02:00
67bba6335c 1.0.7 2019-10-01 19:22:02 +02:00
eaef5d3d78 fix(core): update 2019-10-01 19:22:02 +02:00
4 changed files with 47 additions and 11 deletions

14
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "@pushrocks/smartjwt",
"version": "1.0.6",
"version": "1.0.8",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -139,9 +139,9 @@
}
},
"@pushrocks/smartcrypto": {
"version": "1.0.5",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartcrypto/-/smartcrypto-1.0.5.tgz",
"integrity": "sha512-GkvR/3LE5X4BI/SALmHP5m4cgN4O5AwBtNSMESGiGGnWD9/JN3FL17ZtA2oXe09uuskeoUeStPPCEGi1VWIs4Q==",
"version": "1.0.7",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartcrypto/-/smartcrypto-1.0.7.tgz",
"integrity": "sha512-o82yK1AcZCSh4YKJAt2LD4qp2wPBC2UYBgloaNhwv6ixITiF1OtKkVMky6uMhlYzTc+YfGFocl1CC0uVlSAaTw==",
"requires": {
"@pushrocks/smartpromise": "^3.0.5",
"@types/node-forge": "^0.8.6",
@ -149,9 +149,9 @@
},
"dependencies": {
"@pushrocks/smartpromise": {
"version": "3.0.5",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-3.0.5.tgz",
"integrity": "sha512-9kHBWyDFjQ6cV1rseOfge02EH6huh/mrtqxlFoJoxnMaGWf5F8H3UEsskBBUGI6QKE1Bl8evr74AIKWwJ0r/bA=="
"version": "3.0.6",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-3.0.6.tgz",
"integrity": "sha512-vlQlBGNVIjfClgnsfgQBU6GIKcskYSFzEcKLt18ngPzPEcjKklXcxaqzLXpnoxR+KBh30QPE8255ncYHXuPPOg=="
}
}
},

View File

@ -1,6 +1,6 @@
{
"name": "@pushrocks/smartjwt",
"version": "1.0.6",
"version": "1.0.8",
"private": false,
"description": "a package for handling jwt",
"main": "dist/index.js",
@ -21,7 +21,7 @@
"tslint-config-prettier": "^1.15.0"
},
"dependencies": {
"@pushrocks/smartcrypto": "^1.0.5",
"@pushrocks/smartcrypto": "^1.0.7",
"@types/jsonwebtoken": "^8.3.4",
"jsonwebtoken": "^8.5.1"
}

View File

@ -15,7 +15,7 @@ tap.test('should create a valid jwt', async () => {
});
tap.test('should create a new jwt', async () => {
testJwt = await smartjwtInstance.createJWT({hi: 'there'});
testJwt = await smartjwtInstance.createJWT({ hi: 'there' });
console.log(testJwt);
});
@ -24,5 +24,18 @@ tap.test('should verify a jwt', async () => {
console.log(data);
});
tap.test('should not verify a wrong jwt', async () => {
const jwt2 = await smartjwtInstance.createJWT({ wow: 'soclear' });
const jwt2Array = jwt2.split('.');
const testJwtArray = testJwt.split('.');
const newJwt = `${testJwtArray[0]}.${jwt2Array[1]}.${testJwtArray[2]}`;
let error: Error;
try {
await smartjwtInstance.verifyJWTAndGetData(newJwt);
} catch (e) {
error = e;
}
expect(error).to.be.instanceOf(Error);
});
tap.start();

View File

@ -1,7 +1,12 @@
import * as plugins from './smartjwt.plugins';
export interface ISmartJWTJSONKeypair {
privatePem: string;
publicPem: string;
}
/**
*
* A class to create and validate JWTs and their keys
*/
export class SmartJwt {
public smartcryptoInstance = new plugins.smartcrypto.Smartcrypto();
@ -42,6 +47,24 @@ export class SmartJwt {
this.publicKey = publicKey;
}
/**
* gets the currently set kaypair as json
*/
public getKeyPairAsJson(): ISmartJWTJSONKeypair {
return {
privatePem: this.privateKey.toPemString(),
publicPem: this.publicKey.toPemString()
};
}
/**
* sets the currently set keypair as json
*/
public setKeyPairAsJson(jsonKeyPair: ISmartJWTJSONKeypair) {
this.privateKey = plugins.smartcrypto.PrivateKey.fromPemString(jsonKeyPair.privatePem);
this.publicKey = plugins.smartcrypto.PublicKey.fromPemString(jsonKeyPair.publicPem);
}
/**
* creates a new keypair