implemented server logic

This commit is contained in:
otsmr 2026-06-21 17:11:01 +02:00
parent 00b2b25252
commit f8a2240992
6 changed files with 316 additions and 56 deletions

View file

@ -809,6 +809,138 @@ class Handshake_AuthenticateWithLoginToken extends $pb.GeneratedMessage {
void clearInBackground() => $_clearField(5); void clearInBackground() => $_clearField(5);
} }
class Handshake_GetServerKeyForPasswordLessRecovery
extends $pb.GeneratedMessage {
factory Handshake_GetServerKeyForPasswordLessRecovery({
$fixnum.Int64? userId,
$core.List<$core.int>? encryptedServerKeyMac,
$core.List<$core.int>? encryptedServerKeyNone,
$core.List<$core.int>? pinUnlockToken,
$core.List<$core.int>? pinProtectionKey,
$core.String? email,
}) {
final result = create();
if (userId != null) result.userId = userId;
if (encryptedServerKeyMac != null)
result.encryptedServerKeyMac = encryptedServerKeyMac;
if (encryptedServerKeyNone != null)
result.encryptedServerKeyNone = encryptedServerKeyNone;
if (pinUnlockToken != null) result.pinUnlockToken = pinUnlockToken;
if (pinProtectionKey != null) result.pinProtectionKey = pinProtectionKey;
if (email != null) result.email = email;
return result;
}
Handshake_GetServerKeyForPasswordLessRecovery._();
factory Handshake_GetServerKeyForPasswordLessRecovery.fromBuffer(
$core.List<$core.int> data,
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(data, registry);
factory Handshake_GetServerKeyForPasswordLessRecovery.fromJson(
$core.String json,
[$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromJson(json, registry);
static final $pb.BuilderInfo _i = $pb.BuilderInfo(
_omitMessageNames ? '' : 'Handshake.GetServerKeyForPasswordLessRecovery',
package:
const $pb.PackageName(_omitMessageNames ? '' : 'client_to_server'),
createEmptyInstance: create)
..aInt64(1, _omitFieldNames ? '' : 'userId')
..a<$core.List<$core.int>>(
2, _omitFieldNames ? '' : 'encryptedServerKeyMac', $pb.PbFieldType.OY)
..a<$core.List<$core.int>>(
3, _omitFieldNames ? '' : 'encryptedServerKeyNone', $pb.PbFieldType.OY)
..a<$core.List<$core.int>>(
4, _omitFieldNames ? '' : 'pinUnlockToken', $pb.PbFieldType.OY)
..a<$core.List<$core.int>>(
5, _omitFieldNames ? '' : 'pinProtectionKey', $pb.PbFieldType.OY)
..aOS(6, _omitFieldNames ? '' : 'email')
..hasRequiredFields = false;
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
Handshake_GetServerKeyForPasswordLessRecovery clone() => deepCopy();
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
Handshake_GetServerKeyForPasswordLessRecovery copyWith(
void Function(Handshake_GetServerKeyForPasswordLessRecovery)
updates) =>
super.copyWith((message) =>
updates(message as Handshake_GetServerKeyForPasswordLessRecovery))
as Handshake_GetServerKeyForPasswordLessRecovery;
@$core.override
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static Handshake_GetServerKeyForPasswordLessRecovery create() =>
Handshake_GetServerKeyForPasswordLessRecovery._();
@$core.override
Handshake_GetServerKeyForPasswordLessRecovery createEmptyInstance() =>
create();
@$core.pragma('dart2js:noInline')
static Handshake_GetServerKeyForPasswordLessRecovery getDefault() =>
_defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
Handshake_GetServerKeyForPasswordLessRecovery>(create);
static Handshake_GetServerKeyForPasswordLessRecovery? _defaultInstance;
@$pb.TagNumber(1)
$fixnum.Int64 get userId => $_getI64(0);
@$pb.TagNumber(1)
set userId($fixnum.Int64 value) => $_setInt64(0, value);
@$pb.TagNumber(1)
$core.bool hasUserId() => $_has(0);
@$pb.TagNumber(1)
void clearUserId() => $_clearField(1);
@$pb.TagNumber(2)
$core.List<$core.int> get encryptedServerKeyMac => $_getN(1);
@$pb.TagNumber(2)
set encryptedServerKeyMac($core.List<$core.int> value) =>
$_setBytes(1, value);
@$pb.TagNumber(2)
$core.bool hasEncryptedServerKeyMac() => $_has(1);
@$pb.TagNumber(2)
void clearEncryptedServerKeyMac() => $_clearField(2);
@$pb.TagNumber(3)
$core.List<$core.int> get encryptedServerKeyNone => $_getN(2);
@$pb.TagNumber(3)
set encryptedServerKeyNone($core.List<$core.int> value) =>
$_setBytes(2, value);
@$pb.TagNumber(3)
$core.bool hasEncryptedServerKeyNone() => $_has(2);
@$pb.TagNumber(3)
void clearEncryptedServerKeyNone() => $_clearField(3);
@$pb.TagNumber(4)
$core.List<$core.int> get pinUnlockToken => $_getN(3);
@$pb.TagNumber(4)
set pinUnlockToken($core.List<$core.int> value) => $_setBytes(3, value);
@$pb.TagNumber(4)
$core.bool hasPinUnlockToken() => $_has(3);
@$pb.TagNumber(4)
void clearPinUnlockToken() => $_clearField(4);
@$pb.TagNumber(5)
$core.List<$core.int> get pinProtectionKey => $_getN(4);
@$pb.TagNumber(5)
set pinProtectionKey($core.List<$core.int> value) => $_setBytes(4, value);
@$pb.TagNumber(5)
$core.bool hasPinProtectionKey() => $_has(4);
@$pb.TagNumber(5)
void clearPinProtectionKey() => $_clearField(5);
@$pb.TagNumber(6)
$core.String get email => $_getSZ(5);
@$pb.TagNumber(6)
set email($core.String value) => $_setString(5, value);
@$pb.TagNumber(6)
$core.bool hasEmail() => $_has(5);
@$pb.TagNumber(6)
void clearEmail() => $_clearField(6);
}
enum Handshake_Handshake { enum Handshake_Handshake {
register, register,
getAuthChallenge, getAuthChallenge,
@ -817,6 +949,7 @@ enum Handshake_Handshake {
requestPOW, requestPOW,
authenticateWithLoginToken, authenticateWithLoginToken,
getUseridByUsername, getUseridByUsername,
getServerKeyForPasswordlessRecovery,
notSet notSet
} }
@ -829,6 +962,8 @@ class Handshake extends $pb.GeneratedMessage {
Handshake_RequestPOW? requestPOW, Handshake_RequestPOW? requestPOW,
Handshake_AuthenticateWithLoginToken? authenticateWithLoginToken, Handshake_AuthenticateWithLoginToken? authenticateWithLoginToken,
Handshake_GetUserIdByUsername? getUseridByUsername, Handshake_GetUserIdByUsername? getUseridByUsername,
Handshake_GetServerKeyForPasswordLessRecovery?
getServerKeyForPasswordlessRecovery,
}) { }) {
final result = create(); final result = create();
if (register != null) result.register = register; if (register != null) result.register = register;
@ -840,6 +975,9 @@ class Handshake extends $pb.GeneratedMessage {
result.authenticateWithLoginToken = authenticateWithLoginToken; result.authenticateWithLoginToken = authenticateWithLoginToken;
if (getUseridByUsername != null) if (getUseridByUsername != null)
result.getUseridByUsername = getUseridByUsername; result.getUseridByUsername = getUseridByUsername;
if (getServerKeyForPasswordlessRecovery != null)
result.getServerKeyForPasswordlessRecovery =
getServerKeyForPasswordlessRecovery;
return result; return result;
} }
@ -861,6 +999,7 @@ class Handshake extends $pb.GeneratedMessage {
5: Handshake_Handshake.requestPOW, 5: Handshake_Handshake.requestPOW,
6: Handshake_Handshake.authenticateWithLoginToken, 6: Handshake_Handshake.authenticateWithLoginToken,
7: Handshake_Handshake.getUseridByUsername, 7: Handshake_Handshake.getUseridByUsername,
8: Handshake_Handshake.getServerKeyForPasswordlessRecovery,
0: Handshake_Handshake.notSet 0: Handshake_Handshake.notSet
}; };
static final $pb.BuilderInfo _i = $pb.BuilderInfo( static final $pb.BuilderInfo _i = $pb.BuilderInfo(
@ -868,7 +1007,7 @@ class Handshake extends $pb.GeneratedMessage {
package: package:
const $pb.PackageName(_omitMessageNames ? '' : 'client_to_server'), const $pb.PackageName(_omitMessageNames ? '' : 'client_to_server'),
createEmptyInstance: create) createEmptyInstance: create)
..oo(0, [1, 2, 3, 4, 5, 6, 7]) ..oo(0, [1, 2, 3, 4, 5, 6, 7, 8])
..aOM<Handshake_Register>(1, _omitFieldNames ? '' : 'register', ..aOM<Handshake_Register>(1, _omitFieldNames ? '' : 'register',
subBuilder: Handshake_Register.create) subBuilder: Handshake_Register.create)
..aOM<Handshake_GetAuthChallenge>( ..aOM<Handshake_GetAuthChallenge>(
@ -887,6 +1026,9 @@ class Handshake extends $pb.GeneratedMessage {
..aOM<Handshake_GetUserIdByUsername>( ..aOM<Handshake_GetUserIdByUsername>(
7, _omitFieldNames ? '' : 'getUseridByUsername', 7, _omitFieldNames ? '' : 'getUseridByUsername',
subBuilder: Handshake_GetUserIdByUsername.create) subBuilder: Handshake_GetUserIdByUsername.create)
..aOM<Handshake_GetServerKeyForPasswordLessRecovery>(
8, _omitFieldNames ? '' : 'getServerKeyForPasswordlessRecovery',
subBuilder: Handshake_GetServerKeyForPasswordLessRecovery.create)
..hasRequiredFields = false; ..hasRequiredFields = false;
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.') @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
@ -914,6 +1056,7 @@ class Handshake extends $pb.GeneratedMessage {
@$pb.TagNumber(5) @$pb.TagNumber(5)
@$pb.TagNumber(6) @$pb.TagNumber(6)
@$pb.TagNumber(7) @$pb.TagNumber(7)
@$pb.TagNumber(8)
Handshake_Handshake whichHandshake() => Handshake_Handshake whichHandshake() =>
_Handshake_HandshakeByTag[$_whichOneof(0)]!; _Handshake_HandshakeByTag[$_whichOneof(0)]!;
@$pb.TagNumber(1) @$pb.TagNumber(1)
@ -923,6 +1066,7 @@ class Handshake extends $pb.GeneratedMessage {
@$pb.TagNumber(5) @$pb.TagNumber(5)
@$pb.TagNumber(6) @$pb.TagNumber(6)
@$pb.TagNumber(7) @$pb.TagNumber(7)
@$pb.TagNumber(8)
void clearHandshake() => $_clearField($_whichOneof(0)); void clearHandshake() => $_clearField($_whichOneof(0));
@$pb.TagNumber(1) @$pb.TagNumber(1)
@ -1006,6 +1150,21 @@ class Handshake extends $pb.GeneratedMessage {
void clearGetUseridByUsername() => $_clearField(7); void clearGetUseridByUsername() => $_clearField(7);
@$pb.TagNumber(7) @$pb.TagNumber(7)
Handshake_GetUserIdByUsername ensureGetUseridByUsername() => $_ensure(6); Handshake_GetUserIdByUsername ensureGetUseridByUsername() => $_ensure(6);
@$pb.TagNumber(8)
Handshake_GetServerKeyForPasswordLessRecovery
get getServerKeyForPasswordlessRecovery => $_getN(7);
@$pb.TagNumber(8)
set getServerKeyForPasswordlessRecovery(
Handshake_GetServerKeyForPasswordLessRecovery value) =>
$_setField(8, value);
@$pb.TagNumber(8)
$core.bool hasGetServerKeyForPasswordlessRecovery() => $_has(7);
@$pb.TagNumber(8)
void clearGetServerKeyForPasswordlessRecovery() => $_clearField(8);
@$pb.TagNumber(8)
Handshake_GetServerKeyForPasswordLessRecovery
ensureGetServerKeyForPasswordlessRecovery() => $_ensure(7);
} }
class ApplicationData_TextMessage extends $pb.GeneratedMessage { class ApplicationData_TextMessage extends $pb.GeneratedMessage {
@ -2185,13 +2344,13 @@ class ApplicationData_Deprecated extends $pb.GeneratedMessage {
class ApplicationData_RegisterPasswordLessRecovery class ApplicationData_RegisterPasswordLessRecovery
extends $pb.GeneratedMessage { extends $pb.GeneratedMessage {
factory ApplicationData_RegisterPasswordLessRecovery({ factory ApplicationData_RegisterPasswordLessRecovery({
$core.List<$core.int>? pinUnlockToken,
$core.List<$core.int>? encryptedServerKey, $core.List<$core.int>? encryptedServerKey,
$core.List<$core.int>? pinUnlockToken,
}) { }) {
final result = create(); final result = create();
if (pinUnlockToken != null) result.pinUnlockToken = pinUnlockToken;
if (encryptedServerKey != null) if (encryptedServerKey != null)
result.encryptedServerKey = encryptedServerKey; result.encryptedServerKey = encryptedServerKey;
if (pinUnlockToken != null) result.pinUnlockToken = pinUnlockToken;
return result; return result;
} }
@ -2212,11 +2371,11 @@ class ApplicationData_RegisterPasswordLessRecovery
const $pb.PackageName(_omitMessageNames ? '' : 'client_to_server'), const $pb.PackageName(_omitMessageNames ? '' : 'client_to_server'),
createEmptyInstance: create) createEmptyInstance: create)
..a<$core.List<$core.int>>( ..a<$core.List<$core.int>>(
1, _omitFieldNames ? '' : 'pinUnlockToken', $pb.PbFieldType.OY, 1, _omitFieldNames ? '' : 'encryptedServerKey', $pb.PbFieldType.OY,
protoName: 'pinUnlockToken')
..a<$core.List<$core.int>>(
2, _omitFieldNames ? '' : 'encryptedServerKey', $pb.PbFieldType.OY,
protoName: 'encryptedServerKey') protoName: 'encryptedServerKey')
..a<$core.List<$core.int>>(
2, _omitFieldNames ? '' : 'pinUnlockToken', $pb.PbFieldType.OY,
protoName: 'pinUnlockToken')
..hasRequiredFields = false; ..hasRequiredFields = false;
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.') @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
@ -2245,22 +2404,22 @@ class ApplicationData_RegisterPasswordLessRecovery
static ApplicationData_RegisterPasswordLessRecovery? _defaultInstance; static ApplicationData_RegisterPasswordLessRecovery? _defaultInstance;
@$pb.TagNumber(1) @$pb.TagNumber(1)
$core.List<$core.int> get pinUnlockToken => $_getN(0); $core.List<$core.int> get encryptedServerKey => $_getN(0);
@$pb.TagNumber(1) @$pb.TagNumber(1)
set pinUnlockToken($core.List<$core.int> value) => $_setBytes(0, value); set encryptedServerKey($core.List<$core.int> value) => $_setBytes(0, value);
@$pb.TagNumber(1) @$pb.TagNumber(1)
$core.bool hasPinUnlockToken() => $_has(0); $core.bool hasEncryptedServerKey() => $_has(0);
@$pb.TagNumber(1) @$pb.TagNumber(1)
void clearPinUnlockToken() => $_clearField(1); void clearEncryptedServerKey() => $_clearField(1);
@$pb.TagNumber(2) @$pb.TagNumber(2)
$core.List<$core.int> get encryptedServerKey => $_getN(1); $core.List<$core.int> get pinUnlockToken => $_getN(1);
@$pb.TagNumber(2) @$pb.TagNumber(2)
set encryptedServerKey($core.List<$core.int> value) => $_setBytes(1, value); set pinUnlockToken($core.List<$core.int> value) => $_setBytes(1, value);
@$pb.TagNumber(2) @$pb.TagNumber(2)
$core.bool hasEncryptedServerKey() => $_has(1); $core.bool hasPinUnlockToken() => $_has(1);
@$pb.TagNumber(2) @$pb.TagNumber(2)
void clearEncryptedServerKey() => $_clearField(2); void clearPinUnlockToken() => $_clearField(2);
} }
enum ApplicationData_ApplicationData { enum ApplicationData_ApplicationData {

View file

@ -152,6 +152,15 @@ const Handshake$json = {
'9': 0, '9': 0,
'10': 'getUseridByUsername' '10': 'getUseridByUsername'
}, },
{
'1': 'get_server_key_for_passwordless_recovery',
'3': 8,
'4': 1,
'5': 11,
'6': '.client_to_server.Handshake.GetServerKeyForPasswordLessRecovery',
'9': 0,
'10': 'getServerKeyForPasswordlessRecovery'
},
], ],
'3': [ '3': [
Handshake_RequestPOW$json, Handshake_RequestPOW$json,
@ -160,7 +169,8 @@ const Handshake$json = {
Handshake_GetUserIdByUsername$json, Handshake_GetUserIdByUsername$json,
Handshake_GetAuthToken$json, Handshake_GetAuthToken$json,
Handshake_Authenticate$json, Handshake_Authenticate$json,
Handshake_AuthenticateWithLoginToken$json Handshake_AuthenticateWithLoginToken$json,
Handshake_GetServerKeyForPasswordLessRecovery$json
], ],
'8': [ '8': [
{'1': 'Handshake'}, {'1': 'Handshake'},
@ -303,6 +313,52 @@ const Handshake_AuthenticateWithLoginToken$json = {
], ],
}; };
@$core.Deprecated('Use handshakeDescriptor instead')
const Handshake_GetServerKeyForPasswordLessRecovery$json = {
'1': 'GetServerKeyForPasswordLessRecovery',
'2': [
{'1': 'user_id', '3': 1, '4': 1, '5': 3, '10': 'userId'},
{
'1': 'encrypted_server_key_mac',
'3': 2,
'4': 1,
'5': 12,
'10': 'encryptedServerKeyMac'
},
{
'1': 'encrypted_server_key_none',
'3': 3,
'4': 1,
'5': 12,
'10': 'encryptedServerKeyNone'
},
{
'1': 'pin_unlock_token',
'3': 4,
'4': 1,
'5': 12,
'9': 0,
'10': 'pinUnlockToken',
'17': true
},
{
'1': 'pin_protection_key',
'3': 5,
'4': 1,
'5': 12,
'9': 1,
'10': 'pinProtectionKey',
'17': true
},
{'1': 'email', '3': 6, '4': 1, '5': 9, '9': 2, '10': 'email', '17': true},
],
'8': [
{'1': '_pin_unlock_token'},
{'1': '_pin_protection_key'},
{'1': '_email'},
],
};
/// Descriptor for `Handshake`. Decode as a `google.protobuf.DescriptorProto`. /// Descriptor for `Handshake`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List handshakeDescriptor = $convert.base64Decode( final $typed_data.Uint8List handshakeDescriptor = $convert.base64Decode(
'CglIYW5kc2hha2USQgoIcmVnaXN0ZXIYASABKAsyJC5jbGllbnRfdG9fc2VydmVyLkhhbmRzaG' 'CglIYW5kc2hha2USQgoIcmVnaXN0ZXIYASABKAsyJC5jbGllbnRfdG9fc2VydmVyLkhhbmRzaG'
@ -316,26 +372,35 @@ final $typed_data.Uint8List handshakeDescriptor = $convert.base64Decode(
'MjYuY2xpZW50X3RvX3NlcnZlci5IYW5kc2hha2UuQXV0aGVudGljYXRlV2l0aExvZ2luVG9rZW' 'MjYuY2xpZW50X3RvX3NlcnZlci5IYW5kc2hha2UuQXV0aGVudGljYXRlV2l0aExvZ2luVG9rZW'
'5IAFIaYXV0aGVudGljYXRlV2l0aExvZ2luVG9rZW4SZgoWZ2V0X3VzZXJpZF9ieV91c2VybmFt' '5IAFIaYXV0aGVudGljYXRlV2l0aExvZ2luVG9rZW4SZgoWZ2V0X3VzZXJpZF9ieV91c2VybmFt'
'ZRgHIAEoCzIvLmNsaWVudF90b19zZXJ2ZXIuSGFuZHNoYWtlLkdldFVzZXJJZEJ5VXNlcm5hbW' 'ZRgHIAEoCzIvLmNsaWVudF90b19zZXJ2ZXIuSGFuZHNoYWtlLkdldFVzZXJJZEJ5VXNlcm5hbW'
'VIAFITZ2V0VXNlcmlkQnlVc2VybmFtZRoMCgpSZXF1ZXN0UE9XGsoDCghSZWdpc3RlchIaCgh1' 'VIAFITZ2V0VXNlcmlkQnlVc2VybmFtZRKYAQooZ2V0X3NlcnZlcl9rZXlfZm9yX3Bhc3N3b3Jk'
'c2VybmFtZRgBIAEoCVIIdXNlcm5hbWUSJAoLaW52aXRlX2NvZGUYAiABKAlIAFIKaW52aXRlQ2' 'bGVzc19yZWNvdmVyeRgIIAEoCzI/LmNsaWVudF90b19zZXJ2ZXIuSGFuZHNoYWtlLkdldFNlcn'
'9kZYgBARIuChNwdWJsaWNfaWRlbnRpdHlfa2V5GAMgASgMUhFwdWJsaWNJZGVudGl0eUtleRIj' 'ZlcktleUZvclBhc3N3b3JkTGVzc1JlY292ZXJ5SABSI2dldFNlcnZlcktleUZvclBhc3N3b3Jk'
'Cg1zaWduZWRfcHJla2V5GAQgASgMUgxzaWduZWRQcmVrZXkSNgoXc2lnbmVkX3ByZWtleV9zaW' 'bGVzc1JlY292ZXJ5GgwKClJlcXVlc3RQT1caygMKCFJlZ2lzdGVyEhoKCHVzZXJuYW1lGAEgAS'
'duYXR1cmUYBSABKAxSFXNpZ25lZFByZWtleVNpZ25hdHVyZRIoChBzaWduZWRfcHJla2V5X2lk' 'gJUgh1c2VybmFtZRIkCgtpbnZpdGVfY29kZRgCIAEoCUgAUgppbnZpdGVDb2RliAEBEi4KE3B1'
'GAYgASgDUg5zaWduZWRQcmVrZXlJZBInCg9yZWdpc3RyYXRpb25faWQYByABKANSDnJlZ2lzdH' 'YmxpY19pZGVudGl0eV9rZXkYAyABKAxSEXB1YmxpY0lkZW50aXR5S2V5EiMKDXNpZ25lZF9wcm'
'JhdGlvbklkEhUKBmlzX2lvcxgIIAEoCFIFaXNJb3MSGwoJbGFuZ19jb2RlGAkgASgJUghsYW5n' 'VrZXkYBCABKAxSDHNpZ25lZFByZWtleRI2ChdzaWduZWRfcHJla2V5X3NpZ25hdHVyZRgFIAEo'
'Q29kZRIiCg1wcm9vZl9vZl93b3JrGAogASgDUgtwcm9vZk9mV29yaxIkCgtsb2dpbl90b2tlbh' 'DFIVc2lnbmVkUHJla2V5U2lnbmF0dXJlEigKEHNpZ25lZF9wcmVrZXlfaWQYBiABKANSDnNpZ2'
'gLIAEoDEgBUgpsb2dpblRva2VuiAEBQg4KDF9pbnZpdGVfY29kZUIOCgxfbG9naW5fdG9rZW4a' '5lZFByZWtleUlkEicKD3JlZ2lzdHJhdGlvbl9pZBgHIAEoA1IOcmVnaXN0cmF0aW9uSWQSFQoG'
'EgoQR2V0QXV0aENoYWxsZW5nZRoxChNHZXRVc2VySWRCeVVzZXJuYW1lEhoKCHVzZXJuYW1lGA' 'aXNfaW9zGAggASgIUgVpc0lvcxIbCglsYW5nX2NvZGUYCSABKAlSCGxhbmdDb2RlEiIKDXByb2'
'EgASgJUgh1c2VybmFtZRpDCgxHZXRBdXRoVG9rZW4SFwoHdXNlcl9pZBgBIAEoA1IGdXNlcklk' '9mX29mX3dvcmsYCiABKANSC3Byb29mT2ZXb3JrEiQKC2xvZ2luX3Rva2VuGAsgASgMSAFSCmxv'
'EhoKCHJlc3BvbnNlGAIgASgMUghyZXNwb25zZRroAQoMQXV0aGVudGljYXRlEhcKB3VzZXJfaW' 'Z2luVG9rZW6IAQFCDgoMX2ludml0ZV9jb2RlQg4KDF9sb2dpbl90b2tlbhoSChBHZXRBdXRoQ2'
'QYASABKANSBnVzZXJJZBIdCgphdXRoX3Rva2VuGAIgASgMUglhdXRoVG9rZW4SJAoLYXBwX3Zl' 'hhbGxlbmdlGjEKE0dldFVzZXJJZEJ5VXNlcm5hbWUSGgoIdXNlcm5hbWUYASABKAlSCHVzZXJu'
'cnNpb24YAyABKAlIAFIKYXBwVmVyc2lvbogBARIgCglkZXZpY2VfaWQYBCABKANIAVIIZGV2aW' 'YW1lGkMKDEdldEF1dGhUb2tlbhIXCgd1c2VyX2lkGAEgASgDUgZ1c2VySWQSGgoIcmVzcG9uc2'
'NlSWSIAQESKAoNaW5fYmFja2dyb3VuZBgFIAEoCEgCUgxpbkJhY2tncm91bmSIAQFCDgoMX2Fw' 'UYAiABKAxSCHJlc3BvbnNlGugBCgxBdXRoZW50aWNhdGUSFwoHdXNlcl9pZBgBIAEoA1IGdXNl'
'cF92ZXJzaW9uQgwKCl9kZXZpY2VfaWRCEAoOX2luX2JhY2tncm91bmQaxgEKGkF1dGhlbnRpY2' 'cklkEh0KCmF1dGhfdG9rZW4YAiABKAxSCWF1dGhUb2tlbhIkCgthcHBfdmVyc2lvbhgDIAEoCU'
'F0ZVdpdGhMb2dpblRva2VuEhcKB3VzZXJfaWQYASABKANSBnVzZXJJZBIsChJzZWNyZXRfbG9n' 'gAUgphcHBWZXJzaW9uiAEBEiAKCWRldmljZV9pZBgEIAEoA0gBUghkZXZpY2VJZIgBARIoCg1p'
'aW5fdG9rZW4YAiABKAxSEHNlY3JldExvZ2luVG9rZW4SHwoLYXBwX3ZlcnNpb24YAyABKAlSCm' 'bl9iYWNrZ3JvdW5kGAUgASgISAJSDGluQmFja2dyb3VuZIgBAUIOCgxfYXBwX3ZlcnNpb25CDA'
'FwcFZlcnNpb24SGwoJZGV2aWNlX2lkGAQgASgDUghkZXZpY2VJZBIjCg1pbl9iYWNrZ3JvdW5k' 'oKX2RldmljZV9pZEIQCg5faW5fYmFja2dyb3VuZBrGAQoaQXV0aGVudGljYXRlV2l0aExvZ2lu'
'GAUgASgIUgxpbkJhY2tncm91bmRCCwoJSGFuZHNoYWtl'); 'VG9rZW4SFwoHdXNlcl9pZBgBIAEoA1IGdXNlcklkEiwKEnNlY3JldF9sb2dpbl90b2tlbhgCIA'
'EoDFIQc2VjcmV0TG9naW5Ub2tlbhIfCgthcHBfdmVyc2lvbhgDIAEoCVIKYXBwVmVyc2lvbhIb'
'CglkZXZpY2VfaWQYBCABKANSCGRldmljZUlkEiMKDWluX2JhY2tncm91bmQYBSABKAhSDGluQm'
'Fja2dyb3VuZBrlAgojR2V0U2VydmVyS2V5Rm9yUGFzc3dvcmRMZXNzUmVjb3ZlcnkSFwoHdXNl'
'cl9pZBgBIAEoA1IGdXNlcklkEjcKGGVuY3J5cHRlZF9zZXJ2ZXJfa2V5X21hYxgCIAEoDFIVZW'
'5jcnlwdGVkU2VydmVyS2V5TWFjEjkKGWVuY3J5cHRlZF9zZXJ2ZXJfa2V5X25vbmUYAyABKAxS'
'FmVuY3J5cHRlZFNlcnZlcktleU5vbmUSLQoQcGluX3VubG9ja190b2tlbhgEIAEoDEgAUg5waW'
'5VbmxvY2tUb2tlbogBARIxChJwaW5fcHJvdGVjdGlvbl9rZXkYBSABKAxIAVIQcGluUHJvdGVj'
'dGlvbktleYgBARIZCgVlbWFpbBgGIAEoCUgCUgVlbWFpbIgBAUITChFfcGluX3VubG9ja190b2'
'tlbkIVChNfcGluX3Byb3RlY3Rpb25fa2V5QggKBl9lbWFpbEILCglIYW5kc2hha2U=');
@$core.Deprecated('Use applicationDataDescriptor instead') @$core.Deprecated('Use applicationDataDescriptor instead')
const ApplicationData$json = { const ApplicationData$json = {
@ -790,27 +855,24 @@ const ApplicationData_RegisterPasswordLessRecovery$json = {
'1': 'RegisterPasswordLessRecovery', '1': 'RegisterPasswordLessRecovery',
'2': [ '2': [
{ {
'1': 'pinUnlockToken', '1': 'encryptedServerKey',
'3': 1, '3': 1,
'4': 1, '4': 1,
'5': 12, '5': 12,
'10': 'encryptedServerKey'
},
{
'1': 'pinUnlockToken',
'3': 2,
'4': 1,
'5': 12,
'9': 0, '9': 0,
'10': 'pinUnlockToken', '10': 'pinUnlockToken',
'17': true '17': true
}, },
{
'1': 'encryptedServerKey',
'3': 2,
'4': 1,
'5': 12,
'9': 1,
'10': 'encryptedServerKey',
'17': true
},
], ],
'8': [ '8': [
{'1': '_pinUnlockToken'}, {'1': '_pinUnlockToken'},
{'1': '_encryptedServerKey'},
], ],
}; };
@ -881,10 +943,10 @@ final $typed_data.Uint8List applicationDataDescriptor = $convert.base64Decode(
'Y2USKwoRdmVyaWZpY2F0aW9uX2RhdGEYAyABKAlSEHZlcmlmaWNhdGlvbkRhdGEaDwoNSVBBRm' 'Y2USKwoRdmVyaWZpY2F0aW9uX2RhdGEYAyABKAlSEHZlcmlmaWNhdGlvbkRhdGEaDwoNSVBBRm'
'9yY2VDaGVjaxoPCg1EZWxldGVBY2NvdW50GiwKEUFkZEFkZGl0aW9uYWxVc2VyEhcKB3VzZXJf' '9yY2VDaGVjaxoPCg1EZWxldGVBY2NvdW50GiwKEUFkZEFkZGl0aW9uYWxVc2VyEhcKB3VzZXJf'
'aWQYASABKANSBnVzZXJJZBowCg1TZXRMb2dpblRva2VuEh8KC2xvZ2luX3Rva2VuGAEgASgMUg' 'aWQYASABKANSBnVzZXJJZBowCg1TZXRMb2dpblRva2VuEh8KC2xvZ2luX3Rva2VuGAEgASgMUg'
'psb2dpblRva2VuGgwKCkRlcHJlY2F0ZWQaqgEKHFJlZ2lzdGVyUGFzc3dvcmRMZXNzUmVjb3Zl' 'psb2dpblRva2VuGgwKCkRlcHJlY2F0ZWQajgEKHFJlZ2lzdGVyUGFzc3dvcmRMZXNzUmVjb3Zl'
'cnkSKwoOcGluVW5sb2NrVG9rZW4YASABKAxIAFIOcGluVW5sb2NrVG9rZW6IAQESMwoSZW5jcn' 'cnkSLgoSZW5jcnlwdGVkU2VydmVyS2V5GAEgASgMUhJlbmNyeXB0ZWRTZXJ2ZXJLZXkSKwoOcG'
'lwdGVkU2VydmVyS2V5GAIgASgMSAFSEmVuY3J5cHRlZFNlcnZlcktleYgBAUIRCg9fcGluVW5s' 'luVW5sb2NrVG9rZW4YAiABKAxIAFIOcGluVW5sb2NrVG9rZW6IAQFCEQoPX3BpblVubG9ja1Rv'
'b2NrVG9rZW5CFQoTX2VuY3J5cHRlZFNlcnZlcktleUIRCg9BcHBsaWNhdGlvbkRhdGE='); 'a2VuQhEKD0FwcGxpY2F0aW9uRGF0YQ==');
@$core.Deprecated('Use responseDescriptor instead') @$core.Deprecated('Use responseDescriptor instead')
const Response$json = { const Response$json = {

View file

@ -93,6 +93,10 @@ class ErrorCode extends $pb.ProtobufEnum {
ErrorCode._(1035, _omitEnumNames ? '' : 'UserIsNotInFreePlan'); ErrorCode._(1035, _omitEnumNames ? '' : 'UserIsNotInFreePlan');
static const ErrorCode ForegroundSessionConnected = static const ErrorCode ForegroundSessionConnected =
ErrorCode._(1036, _omitEnumNames ? '' : 'ForegroundSessionConnected'); ErrorCode._(1036, _omitEnumNames ? '' : 'ForegroundSessionConnected');
static const ErrorCode NoRecoveryData =
ErrorCode._(1037, _omitEnumNames ? '' : 'NoRecoveryData');
static const ErrorCode InvalidRecoveryData =
ErrorCode._(1038, _omitEnumNames ? '' : 'InvalidRecoveryData');
static const $core.List<ErrorCode> values = <ErrorCode>[ static const $core.List<ErrorCode> values = <ErrorCode>[
Unknown, Unknown,
@ -134,6 +138,8 @@ class ErrorCode extends $pb.ProtobufEnum {
IPAPaymentExpired, IPAPaymentExpired,
UserIsNotInFreePlan, UserIsNotInFreePlan,
ForegroundSessionConnected, ForegroundSessionConnected,
NoRecoveryData,
InvalidRecoveryData,
]; ];
static final $core.Map<$core.int, ErrorCode> _byValue = static final $core.Map<$core.int, ErrorCode> _byValue =

View file

@ -58,6 +58,8 @@ const ErrorCode$json = {
{'1': 'IPAPaymentExpired', '2': 1034}, {'1': 'IPAPaymentExpired', '2': 1034},
{'1': 'UserIsNotInFreePlan', '2': 1035}, {'1': 'UserIsNotInFreePlan', '2': 1035},
{'1': 'ForegroundSessionConnected', '2': 1036}, {'1': 'ForegroundSessionConnected', '2': 1036},
{'1': 'NoRecoveryData', '2': 1037},
{'1': 'InvalidRecoveryData', '2': 1038},
], ],
}; };
@ -80,4 +82,5 @@ final $typed_data.Uint8List errorCodeDescriptor = $convert.base64Decode(
'EIUIEhcKEkFwcFZlcnNpb25PdXRkYXRlZBCGCBIYChNOZXdEZXZpY2VSZWdpc3RlcmVkEIcIEh' 'EIUIEhcKEkFwcFZlcnNpb25PdXRkYXRlZBCGCBIYChNOZXdEZXZpY2VSZWdpc3RlcmVkEIcIEh'
'cKEkludmFsaWRQcm9vZk9mV29yaxCICBIZChRSZWdpc3RyYXRpb25EaXNhYmxlZBCJCBIWChFJ' 'cKEkludmFsaWRQcm9vZk9mV29yaxCICBIZChRSZWdpc3RyYXRpb25EaXNhYmxlZBCJCBIWChFJ'
'UEFQYXltZW50RXhwaXJlZBCKCBIYChNVc2VySXNOb3RJbkZyZWVQbGFuEIsIEh8KGkZvcmVncm' 'UEFQYXltZW50RXhwaXJlZBCKCBIYChNVc2VySXNOb3RJbkZyZWVQbGFuEIsIEh8KGkZvcmVncm'
'91bmRTZXNzaW9uQ29ubmVjdGVkEIwI'); '91bmRTZXNzaW9uQ29ubmVjdGVkEIwIEhMKDk5vUmVjb3ZlcnlEYXRhEI0IEhgKE0ludmFsaWRS'
'ZWNvdmVyeURhdGEQjgg=');

View file

@ -1521,6 +1521,7 @@ enum Response_Ok_Ok {
downloadtokens, downloadtokens,
signedprekey, signedprekey,
proofOfWork, proofOfWork,
passwordlessRecoveryServerKey,
notSet notSet
} }
@ -1541,6 +1542,7 @@ class Response_Ok extends $pb.GeneratedMessage {
Response_DownloadTokens? downloadtokens, Response_DownloadTokens? downloadtokens,
Response_SignedPreKey? signedprekey, Response_SignedPreKey? signedprekey,
Response_ProofOfWork? proofOfWork, Response_ProofOfWork? proofOfWork,
$core.List<$core.int>? passwordlessRecoveryServerKey,
}) { }) {
final result = create(); final result = create();
if (none != null) result.none = none; if (none != null) result.none = none;
@ -1559,6 +1561,8 @@ class Response_Ok extends $pb.GeneratedMessage {
if (downloadtokens != null) result.downloadtokens = downloadtokens; if (downloadtokens != null) result.downloadtokens = downloadtokens;
if (signedprekey != null) result.signedprekey = signedprekey; if (signedprekey != null) result.signedprekey = signedprekey;
if (proofOfWork != null) result.proofOfWork = proofOfWork; if (proofOfWork != null) result.proofOfWork = proofOfWork;
if (passwordlessRecoveryServerKey != null)
result.passwordlessRecoveryServerKey = passwordlessRecoveryServerKey;
return result; return result;
} }
@ -1587,6 +1591,7 @@ class Response_Ok extends $pb.GeneratedMessage {
13: Response_Ok_Ok.downloadtokens, 13: Response_Ok_Ok.downloadtokens,
14: Response_Ok_Ok.signedprekey, 14: Response_Ok_Ok.signedprekey,
15: Response_Ok_Ok.proofOfWork, 15: Response_Ok_Ok.proofOfWork,
16: Response_Ok_Ok.passwordlessRecoveryServerKey,
0: Response_Ok_Ok.notSet 0: Response_Ok_Ok.notSet
}; };
static final $pb.BuilderInfo _i = $pb.BuilderInfo( static final $pb.BuilderInfo _i = $pb.BuilderInfo(
@ -1594,7 +1599,7 @@ class Response_Ok extends $pb.GeneratedMessage {
package: package:
const $pb.PackageName(_omitMessageNames ? '' : 'server_to_client'), const $pb.PackageName(_omitMessageNames ? '' : 'server_to_client'),
createEmptyInstance: create) createEmptyInstance: create)
..oo(0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) ..oo(0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16])
..aOB(1, _omitFieldNames ? '' : 'None', protoName: 'None') ..aOB(1, _omitFieldNames ? '' : 'None', protoName: 'None')
..aInt64(2, _omitFieldNames ? '' : 'userid') ..aInt64(2, _omitFieldNames ? '' : 'userid')
..a<$core.List<$core.int>>( ..a<$core.List<$core.int>>(
@ -1624,6 +1629,10 @@ class Response_Ok extends $pb.GeneratedMessage {
subBuilder: Response_SignedPreKey.create) subBuilder: Response_SignedPreKey.create)
..aOM<Response_ProofOfWork>(15, _omitFieldNames ? '' : 'proofOfWork', ..aOM<Response_ProofOfWork>(15, _omitFieldNames ? '' : 'proofOfWork',
protoName: 'proofOfWork', subBuilder: Response_ProofOfWork.create) protoName: 'proofOfWork', subBuilder: Response_ProofOfWork.create)
..a<$core.List<$core.int>>(
16,
_omitFieldNames ? '' : 'passwordlessRecoveryServerKey',
$pb.PbFieldType.OY)
..hasRequiredFields = false; ..hasRequiredFields = false;
@$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.') @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
@ -1660,6 +1669,7 @@ class Response_Ok extends $pb.GeneratedMessage {
@$pb.TagNumber(13) @$pb.TagNumber(13)
@$pb.TagNumber(14) @$pb.TagNumber(14)
@$pb.TagNumber(15) @$pb.TagNumber(15)
@$pb.TagNumber(16)
Response_Ok_Ok whichOk() => _Response_Ok_OkByTag[$_whichOneof(0)]!; Response_Ok_Ok whichOk() => _Response_Ok_OkByTag[$_whichOneof(0)]!;
@$pb.TagNumber(1) @$pb.TagNumber(1)
@$pb.TagNumber(2) @$pb.TagNumber(2)
@ -1676,6 +1686,7 @@ class Response_Ok extends $pb.GeneratedMessage {
@$pb.TagNumber(13) @$pb.TagNumber(13)
@$pb.TagNumber(14) @$pb.TagNumber(14)
@$pb.TagNumber(15) @$pb.TagNumber(15)
@$pb.TagNumber(16)
void clearOk() => $_clearField($_whichOneof(0)); void clearOk() => $_clearField($_whichOneof(0));
@$pb.TagNumber(1) @$pb.TagNumber(1)
@ -1835,6 +1846,16 @@ class Response_Ok extends $pb.GeneratedMessage {
void clearProofOfWork() => $_clearField(15); void clearProofOfWork() => $_clearField(15);
@$pb.TagNumber(15) @$pb.TagNumber(15)
Response_ProofOfWork ensureProofOfWork() => $_ensure(14); Response_ProofOfWork ensureProofOfWork() => $_ensure(14);
@$pb.TagNumber(16)
$core.List<$core.int> get passwordlessRecoveryServerKey => $_getN(15);
@$pb.TagNumber(16)
set passwordlessRecoveryServerKey($core.List<$core.int> value) =>
$_setBytes(15, value);
@$pb.TagNumber(16)
$core.bool hasPasswordlessRecoveryServerKey() => $_has(15);
@$pb.TagNumber(16)
void clearPasswordlessRecoveryServerKey() => $_clearField(16);
} }
enum Response_Response { ok, error, notSet } enum Response_Response { ok, error, notSet }

View file

@ -623,6 +623,14 @@ const Response_Ok$json = {
'9': 0, '9': 0,
'10': 'proofOfWork' '10': 'proofOfWork'
}, },
{
'1': 'passwordless_recovery_server_key',
'3': 16,
'4': 1,
'5': 12,
'9': 0,
'10': 'passwordlessRecoveryServerKey'
},
], ],
'8': [ '8': [
{'1': 'Ok'}, {'1': 'Ok'},
@ -677,7 +685,7 @@ final $typed_data.Uint8List responseDescriptor = $convert.base64Decode(
'cKD2Rvd25sb2FkX3Rva2VucxgCIAMoDFIOZG93bmxvYWRUb2tlbnMaOQoORG93bmxvYWRUb2tl' 'cKD2Rvd25sb2FkX3Rva2VucxgCIAMoDFIOZG93bmxvYWRUb2tlbnMaOQoORG93bmxvYWRUb2tl'
'bnMSJwoPZG93bmxvYWRfdG9rZW5zGAEgAygMUg5kb3dubG9hZFRva2VucxpFCgtQcm9vZk9mV2' 'bnMSJwoPZG93bmxvYWRfdG9rZW5zGAEgAygMUg5kb3dubG9hZFRva2VucxpFCgtQcm9vZk9mV2'
'9yaxIWCgZwcmVmaXgYASABKAlSBnByZWZpeBIeCgpkaWZmaWN1bHR5GAIgASgDUgpkaWZmaWN1' '9yaxIWCgZwcmVmaXgYASABKAlSBnByZWZpeBIeCgpkaWZmaWN1bHR5GAIgASgDUgpkaWZmaWN1'
'bHR5GtcHCgJPaxIUCgROb25lGAEgASgISABSBE5vbmUSGAoGdXNlcmlkGAIgASgDSABSBnVzZX' 'bHR5GqIICgJPaxIUCgROb25lGAEgASgISABSBE5vbmUSGAoGdXNlcmlkGAIgASgDSABSBnVzZX'
'JpZBImCg1hdXRoY2hhbGxlbmdlGAMgASgMSABSDWF1dGhjaGFsbGVuZ2USSgoLdXBsb2FkdG9r' 'JpZBImCg1hdXRoY2hhbGxlbmdlGAMgASgMSABSDWF1dGhjaGFsbGVuZ2USSgoLdXBsb2FkdG9r'
'ZW4YBCABKAsyJi5zZXJ2ZXJfdG9fY2xpZW50LlJlc3BvbnNlLlVwbG9hZFRva2VuSABSC3VwbG' 'ZW4YBCABKAsyJi5zZXJ2ZXJfdG9fY2xpZW50LlJlc3BvbnNlLlVwbG9hZFRva2VuSABSC3VwbG'
'9hZHRva2VuEkEKCHVzZXJkYXRhGAUgASgLMiMuc2VydmVyX3RvX2NsaWVudC5SZXNwb25zZS5V' '9hZHRva2VuEkEKCHVzZXJkYXRhGAUgASgLMiMuc2VydmVyX3RvX2NsaWVudC5SZXNwb25zZS5V'
@ -694,5 +702,6 @@ final $typed_data.Uint8List responseDescriptor = $convert.base64Decode(
'dG9fY2xpZW50LlJlc3BvbnNlLkRvd25sb2FkVG9rZW5zSABSDmRvd25sb2FkdG9rZW5zEk0KDH' 'dG9fY2xpZW50LlJlc3BvbnNlLkRvd25sb2FkVG9rZW5zSABSDmRvd25sb2FkdG9rZW5zEk0KDH'
'NpZ25lZHByZWtleRgOIAEoCzInLnNlcnZlcl90b19jbGllbnQuUmVzcG9uc2UuU2lnbmVkUHJl' 'NpZ25lZHByZWtleRgOIAEoCzInLnNlcnZlcl90b19jbGllbnQuUmVzcG9uc2UuU2lnbmVkUHJl'
'S2V5SABSDHNpZ25lZHByZWtleRJKCgtwcm9vZk9mV29yaxgPIAEoCzImLnNlcnZlcl90b19jbG' 'S2V5SABSDHNpZ25lZHByZWtleRJKCgtwcm9vZk9mV29yaxgPIAEoCzImLnNlcnZlcl90b19jbG'
'llbnQuUmVzcG9uc2UuUHJvb2ZPZldvcmtIAFILcHJvb2ZPZldvcmtCBAoCT2tCCgoIUmVzcG9u' 'llbnQuUmVzcG9uc2UuUHJvb2ZPZldvcmtIAFILcHJvb2ZPZldvcmsSSQogcGFzc3dvcmRsZXNz'
'c2U='); 'X3JlY292ZXJ5X3NlcnZlcl9rZXkYECABKAxIAFIdcGFzc3dvcmRsZXNzUmVjb3ZlcnlTZXJ2ZX'
'JLZXlCBAoCT2tCCgoIUmVzcG9uc2U=');