Преобразуйте эту функцию Nodejs в функцию C # - PullRequest
0 голосов
/ 19 июня 2019

У меня есть эта функция в NodeJS, и мне нужна помощь для преобразования в C #, моя проблема в том, чтобы получить 'buf' из randomBytes

NodeJS Функция:

function generateKeys() {
  return new Promise((resolve, reject) => {
    const dh = crypto.createECDH('prime256v1');
    dh.generateKeys();
    crypto.randomBytes(16, (err, buf) => {
      if (err) {
        return reject(err);
      }
      return resolve({
        privateKey : escape(dh.getPrivateKey('base64')),
        publicKey  : escape(dh.getPublicKey('base64')),
        authSecret : escape(buf.toString('base64')),
      });
    });
  });
}

Код C # на данный момент:

private static AsymmetricCipherKeyPair GenerateKeyPairEcc()
{
    var random = new Org.BouncyCastle.Security.SecureRandom();
    var oid = X962NamedCurves.GetOid("prime256v1");
    var generator = new ECKeyPairGenerator();
    var genParam = new ECKeyGenerationParameters(oid, random);
    generator.Init(genParam);
    AsymmetricCipherKeyPair ackp = generator.GenerateKeyPair();

    return ackp;
}
public byte[] RandomBytes()
{
    byte[] random = new byte[16];
    RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
    rng.GetBytes(random);
    return random;
}
...