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

Собирается ли это правильно сохранить исходный закрытый ключ, или я совершаю ужасную ошибку, которая противоречит безопасности шифрования?

0 ответов

Другие вопросы по тегам