mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-28 09:47:35 +08:00
keygen: Try generating the key in dart instead of using git_bindings
This seems to work rather decently, but I'm not ready to put it into production until it is tested quite thoroughly on lots of different platforms.
This commit is contained in:
21
lib/ssh/keygen.dart
Normal file
21
lib/ssh/keygen.dart
Normal file
@ -0,0 +1,21 @@
|
||||
import 'package:git_bindings/git_bindings.dart';
|
||||
import 'package:gitjournal/ssh/rsa_key_pair.dart';
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
|
||||
import 'package:meta/meta.dart';
|
||||
|
||||
Future<String> generateSSHKeys({@required String comment}) async {
|
||||
try {
|
||||
var keyPair = await RsaKeyPair.generateAsync();
|
||||
var publicKeyStr = keyPair.publicKeyString(comment: comment);
|
||||
await setSshKeys(
|
||||
publicKey: publicKeyStr,
|
||||
privateKey: keyPair.privateKeyString(),
|
||||
);
|
||||
return publicKeyStr;
|
||||
} catch (e) {
|
||||
Log.e(e);
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
21
lib/ssh/main_keygen.dart
Normal file
21
lib/ssh/main_keygen.dart
Normal file
@ -0,0 +1,21 @@
|
||||
import 'dart:io';
|
||||
import 'package:gitjournal/ssh/rsa_key_pair.dart';
|
||||
|
||||
void main() {
|
||||
print("Generating new random key");
|
||||
var keyPair = RsaKeyPair.generate();
|
||||
var publicKeyStr = keyPair.publicKeyString(comment: "No Comment");
|
||||
var privateKeyStr = keyPair.privateKeyString();
|
||||
|
||||
var keyName = "key_";
|
||||
var num = 0;
|
||||
while (File(keyName + num.toString()).existsSync()) {
|
||||
num++;
|
||||
}
|
||||
|
||||
print("Writing public key to key_$num.pub");
|
||||
print("Writing private key to key_$num");
|
||||
|
||||
File("key_$num.pub").writeAsStringSync(publicKeyStr + '\n');
|
||||
File("key_$num").writeAsStringSync(privateKeyStr + '\n');
|
||||
}
|
Reference in New Issue
Block a user