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';
|
||||
|
||||
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