authenticateAccount function
Implementation
Future<AuthenticateReturnDataType?> authenticateAccount(
dynamic ident, String password,
[String encoding = 'base64']) async {
if (ident == null || (ident is Map && !ident.containsKey('auth'))) {
return null;
}
dynamic decrypted;
try {
final proof = await work(
password, ident['auth']['s'], DefaultWorkFn.from(encode: encoding));
decrypted = await decrypt(
ident['auth']['ek'],
PairReturnType.from(epriv: proof, epub: "", priv: "", pub: ""),
DefaultAESDecryptKey.from(encode: encoding));
} catch (e) {
final proof = await work(
password, ident['auth']['s'], DefaultWorkFn.from(encode: encoding));
decrypted = await decrypt(
ident['auth']['ek'],
PairReturnType.from(epriv: proof, epub: "", priv: "", pub: ""),
DefaultAESDecryptKey.from(encode: encoding));
}
if (decrypted == null) {
return null;
}
return AuthenticateReturnDataType.from(
alias: ident['alias'],
epriv: decrypted['epriv'],
epub: ident['epub'],
priv: decrypted['priv'],
pub: ident['pub']);
}