Хорошо, поэтому я пытаюсь сгенерировать публичный c и закрытый ключ, используя crypto (https://nodejs.org/api/crypto.html#crypto_crypto_generatekeypair_type_options_callback)
Дело в том, что один из параметров generateKeyPair: функция обратного вызова, и я не могу заставить свой код ждать обратного вызова для запуска. Это работает в конце концов, но к тому времени я уже пытался использовать данные. Идея состоит в том, чтобы сделать что-то вроде этого:
const _getKeyPair = (pwd: string): Object => {
const { generateKeyPair }: any = require('crypto');
const keyPair = { publicKey: '', privateKey: '' };
generateKeyPair('rsa', {
modulusLength: 4096,
publicKeyEncoding: {
type: 'spki',
format: 'pem'
},
privateKeyEncoding: {
type: 'pkcs8',
format: 'pem',
cipher: 'aes-256-cbc',
passphrase: pwd
}
}, (err: Error, publicKey: string, privateKey: string) => {
if (err) {
throw err;
}
keyPair.publicKey = publicKey;
keyPair.privateKey = privateKey;
});
return keyPair;
};
И позвоните:
const keyPair = _getKeyPair('myPassword');