fix(core): update

This commit is contained in:
Philipp Kunz 2019-10-01 15:27:21 +02:00
parent c4c205066c
commit 0e21c84ab4
4 changed files with 78 additions and 13 deletions

View File

@ -0,0 +1,36 @@
import * as plugins from './smartcrypto.plugins';
import { PublicKey } from './smartcrypto.classes.publickey';
import { PrivateKey } from './smartcrypto.classes.privatekey';
export class KeyPair {
// STATIC
public static async createNewKeyPair(): Promise<KeyPair> {
const done = plugins.smartpromise.defer<KeyPair>();
const rsa = plugins.nodeForge.pki.rsa;
rsa.generateKeyPair({bits: 2048, workers: 2}, async (err, keypair) => {
if (err) {
console.log(err);
throw err;
}
done.resolve(new KeyPair({
privateKey: new PrivateKey(keypair.privateKey),
publicKey: new PublicKey(keypair.publicKey),
}));
});
return done.promise;
}
// INSTANCE
public publicKey: PublicKey;
public privateKey: PrivateKey;
constructor(optionsArg: {
privateKey: PrivateKey;
publicKey: PublicKey;
}) {
this.privateKey = optionsArg.privateKey;
this.publicKey = optionsArg.publicKey;
}
}

View File

@ -0,0 +1,20 @@
import * as plugins from './smartcrypto.plugins';
export class PrivateKey {
// STATIC
public static createFromPrivateKey(pemString: string) {
const privateKey = plugins.nodeForge.pki.privateKeyFromPem(pemString);
return new PrivateKey(privateKey);
}
// INSTANCE
public forgePrivateKey: plugins.nodeForge.pki.PrivateKey;
constructor(privateKeyArg: plugins.nodeForge.pki.PrivateKey) {
this.forgePrivateKey = privateKeyArg;
}
public toPemString(): string {
return plugins.nodeForge.pki.privateKeyToPem(this.forgePrivateKey);
}
}

View File

@ -0,0 +1,21 @@
import * as plugins from './smartcrypto.plugins';
export class PublicKey {
// STATIC
public static createFromPrivateKey(pemString: string) {
const privateKey = plugins.nodeForge.pki.publicKeyFromPem(pemString);
return new PublicKey(privateKey);
}
// INSTANCE
public forgePublicKey: plugins.nodeForge.pki.PublicKey;
constructor (publicKeyArg: plugins.nodeForge.pki.PublicKey) {
this.forgePublicKey = publicKeyArg;
}
public toPemString(): string {
return plugins.nodeForge.pki.publicKeyToPem(this.forgePublicKey);
}
}

View File

@ -1,17 +1,5 @@
import * as plugins from './smartcrypto.plugins';
export class Smartcrypto {
public static async createRSAKeyPair(): Promise<plugins.nodeForge.pki.KeyPair> {
const done = plugins.smartpromise.defer<plugins.nodeForge.pki.KeyPair>();
const rsa = plugins.nodeForge.pki.rsa;
rsa.generateKeyPair({bits: 2048, workers: 2}, (err, keypair) => {
if (err) {
console.log(err);
throw err;
}
done.resolve(keypair);
// keypair.privateKey, keypair.publicKey
});
return done.promise;
}
}