[mob]Generate randomkey using crypto library

This commit is contained in:
Neeraj Gupta 2024-03-11 22:33:47 +05:30
parent 27c1b66c08
commit 944ef2e564
4 changed files with 10 additions and 18 deletions

View file

@ -867,14 +867,11 @@ class UserService {
return;
}
try {
final secretValue = type == TwoFactorType.passkey
? utf8.decode(base64.decode(secret))
: secret;
final response = await _dio.post(
_config.getHttpEndpoint() + "/users/two-factor/remove",
data: {
"sessionID": sessionID,
"secret": secretValue,
"secret": secret,
"twoFactorType": twoFactorTypeToString(type),
},
);

View file

@ -169,15 +169,14 @@ class _SecuritySectionWidgetState extends State<SecuritySectionWidget> {
await PasskeyService.instance.isPasskeyRecoveryEnabled();
if (!isPassKeyResetEnabled) {
final Uint8List recoveryKey = Configuration.instance.getRecoveryKey();
final resetSecret = const Uuid().v4().toString();
final bytes = utf8.encode(resetSecret);
final base64Str = base64.encode(bytes);
final resetKey = CryptoUtil.generateKey();
final resetKeyBase64 = CryptoUtil.bin2base64(resetKey);
final encryptionResult = CryptoUtil.encryptSync(
CryptoUtil.base642bin(base64Str),
resetKey,
recoveryKey,
);
await PasskeyService.instance.configurePasskeyRecovery(
resetSecret,
resetKeyBase64,
CryptoUtil.bin2base64(encryptionResult.encryptedData!),
CryptoUtil.bin2base64(encryptionResult.nonce!),
);

View file

@ -912,14 +912,11 @@ class UserService {
return;
}
try {
final secretValue = type == TwoFactorType.passkey
? utf8.decode(base64.decode(secret))
: secret;
final response = await _dio.post(
_config.getHttpEndpoint() + "/users/two-factor/remove",
data: {
"sessionID": sessionID,
"secret": secretValue,
"secret": secret,
"twoFactorType": twoFactorTypeToString(type),
},
);

View file

@ -243,15 +243,14 @@ class _SecuritySectionWidgetState extends State<SecuritySectionWidget> {
if (!isPassKeyResetEnabled) {
final Uint8List recoveryKey =
await UserService.instance.getOrCreateRecoveryKey(context);
final resetSecret = const Uuid().v4().toString();
final bytes = utf8.encode(resetSecret);
final base64Str = base64.encode(bytes);
final resetKey = CryptoUtil.generateKey();
final resetKeyBase64 = CryptoUtil.bin2base64(resetKey);
final encryptionResult = CryptoUtil.encryptSync(
CryptoUtil.base642bin(base64Str),
resetKey,
recoveryKey,
);
await PasskeyService.instance.configurePasskeyRecovery(
resetSecret,
resetKeyBase64,
CryptoUtil.bin2base64(encryptionResult.encryptedData!),
CryptoUtil.bin2base64(encryptionResult.nonce!),
);