NodeJS, ECC, правильно ли я сохраняю этот PrivateKey в файле JSON?
Поэтому я использую эллиптическую библиотеку для шифрования с помощью схемы эллиптической кривой с использованием секретных ключей secp256k. Мое приложение требует, чтобы я сохранил закрытый ключ в файле, я выбрал json. Однако я не уверен, использует ли эллиптическая библиотека двоичные данные со своим закрытым ключом, и я думаю, что файлы JSON не работают с двоичными данными. Тем не менее, не имеет значения, какой секретный ключ я ввел в функцию, которая генерирует открытый ключ, поэтому я даже не знаю, действителен ли ключ, который я беру из файла.
Вот как я читаю и записываю ключ в файл:
index.js
const secret = () =>
{
console.log('secret function ran');
const rawSkey = fs.readFileSync(skeyPath);
const skey = JSON.parse(rawSkey);
const strSkey = JSON.stringify(rawSkey);
console.log(strSkey);
var secret;
if(skey.start === null)
{
secret = null;
console.log('skey is null');
return secret;
}
else
{
console.log('skey is not null');
secret = skey;//Buffer.from(skey);
return secret;
}
};
const wallet = new Wallet(secret);
wallet.js
class Wallet {
constructor(secret) {
//ADDED SECRET PARAMETER
this.secret = secret;
this.balance = STARTING_BALANCE;
if(this.secret === null || this.secret === undefined)
{
console.log("secret key is null");
this.keyPair = ec.genKeyPair();
fs.writeFileSync(skeyPath, JSON.stringify(this.keyPair));
this.publicKey = this.keyPair.getPublic().encode('hex');
}
else
{
console.log("secret key is defined");
this.keyPair = ec.keyFromPrivate(this.secret);
//fs.writeFileSync('../secret.json');
this.publicKey = this.keyPair.getPublic().encode('hex');
}
}
//etc etc etc etc etc code continues
Собирается ли это правильно сохранить исходный закрытый ключ, или я совершаю ужасную ошибку, которая противоречит безопасности шифрования?