Web3SecretStorageDefinationV3.encode constructor

Web3SecretStorageDefinationV3.encode(
  1. List<int> data,
  2. String password, {
  3. int scryptN = 8192,
  4. int p = 1,
})

Factory method to create a Web3SecretStorageDefinationV3 with encoded credentials.

  • credentials: The encoded credentials to be stored in the wallet.
  • password: The password used to derive the encryption key.
  • scryptN: Parameter 'n' for the Scrypt key derivation function (default is 8192).
  • p: Parameter 'p' for the Scrypt key derivation function (default is 1).

Returns a Web3SecretStorageDefinationV3 instance with the encoded credentials.

Implementation

factory Web3SecretStorageDefinationV3.encode(
  List<int> data,
  String password, {
  int scryptN = 8192,
  int p = 1,
}) {
  final passwordBytes = StringUtils.encode(password);
  final salt = QuickCrypto.generateRandom(_SecretStorageConst.saltLength);
  final derivator = KDFScrypt(dklen: 32, n: scryptN, r: 8, p: p, salt: salt);
  final uuid = UUID.generateUUIDv4();
  final iv = QuickCrypto.generateRandom(_SecretStorageConst.ivLength);
  final CryptoParam crypto = CryptoParam(kdf: derivator, iv: iv);
  return Web3SecretStorageDefinationV3._(crypto, passwordBytes, uuid, data);
}