fix(core): update
This commit is contained in:
parent
c4c205066c
commit
0e21c84ab4
36
ts/smartcrypto.classes.keypair.ts
Normal file
36
ts/smartcrypto.classes.keypair.ts
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
20
ts/smartcrypto.classes.privatekey.ts
Normal file
20
ts/smartcrypto.classes.privatekey.ts
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
21
ts/smartcrypto.classes.publickey.ts
Normal file
21
ts/smartcrypto.classes.publickey.ts
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
@ -1,17 +1,5 @@
|
|||||||
import * as plugins from './smartcrypto.plugins';
|
import * as plugins from './smartcrypto.plugins';
|
||||||
|
|
||||||
export class Smartcrypto {
|
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user