static EthereumEcdsaBouncyCastle GenerateSingle(uint accountIndex, IAccountDerivation accountFactory) { var privateKey = accountFactory.GeneratePrivateKey(accountIndex); var keyBigInt = BigIntegerConverter.GetBigInteger(privateKey, signed: false, byteCount: PRIVATE_KEY_SIZE); keyBigInt = Secp256k1Curve.EnforceLowS(keyBigInt); // Return our private key instance. return(new EthereumEcdsaBouncyCastle(privateKey, EthereumEcdsaKeyType.Private)); }
static EthereumEcdsaNative Generate(uint accountIndex, Secp256k1 secp256k1, IAccountDerivation accountFactory) { var privateKey = accountFactory.GeneratePrivateKey(accountIndex); if (!secp256k1.SecretKeyVerify(privateKey)) { var errMsg = "Unmanaged EC library failed to valid private key. "; if (IncludeKeyDataInExceptions) { errMsg += $"Private key: {privateKey.ToHexString()}"; } throw new Exception(errMsg); } var keyBigInt = BigIntegerConverter.GetBigInteger(privateKey, signed: false, byteCount: PRIVATE_KEY_SIZE); keyBigInt = Secp256k1Curve.EnforceLowS(keyBigInt); privateKey = BigIntegerConverter.GetBytes(keyBigInt, PRIVATE_KEY_SIZE); return(new EthereumEcdsaNative(privateKey, EthereumEcdsaKeyType.Private)); }