KeyStore.createNew constructor
KeyStore.createNew(})
Creates a new key store wrapping the specified credentials by encrypting
the private key with the password. The random instance, which should
be cryptographically secure, is used to generate encryption keys.
You can configure the parameter N of the scrypt algorithm if you need to.
The default value for scryptN is 8192. Be aware that this N must be a
power of two.
Implementation
factory KeyStore.createNew(String credentials, String password, Random random,
{int scryptN = 262144, int p = 1}) {
final passwordBytes =
Uint8List.fromList(str2ByteArray(password, enc: 'latin1'));
final dartRandom = RandomBridge(random);
final salt = dartRandom.nextBytes(32);
final derivator = _ScryptKeyDerivator(
defaultOptions['kdfParams']['dkLen'] as int,
scryptN,
defaultOptions['kdfParams']['r'] as int,
p,
salt);
final uuid = generateUuidV4();
final iv = dartRandom.nextBytes(128 ~/ 8);
return KeyStore._(credentials, derivator, passwordBytes, iv, uuid);
}