AuthorizedKeysStore.parse constructor
AuthorizedKeysStore.parse(
- String text
Parses an AuthorizedKeysStore from the line-based text format.
Implementation
factory AuthorizedKeysStore.parse(String text) {
final entries = <AuthorizedKey>[];
for (final rawLine in text.split('\n')) {
final line = rawLine.trim();
if (line.isEmpty || line.startsWith('#')) continue;
final parts = line.split(RegExp(r'\s+'));
if (parts.length < 2) continue;
final roles = parts.length >= 3
? parts[2]
.split(',')
.map((r) => r.trim())
.where((r) => r.isNotEmpty)
.toSet()
: <String>{};
entries.add(
AuthorizedKey(
principal: PrincipalId(parts[0]),
publicKey: Ed25519PublicKey.fromBase64(parts[1]),
roles: roles,
displayName: parts.length >= 4 ? parts.sublist(3).join(' ') : '',
),
);
}
return AuthorizedKeysStore(entries);
}