diff --git a/lib/ssh/keygen.dart b/lib/ssh/keygen.dart new file mode 100644 index 00000000..95d23c12 --- /dev/null +++ b/lib/ssh/keygen.dart @@ -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 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 ""; +} diff --git a/lib/ssh/main_keygen.dart b/lib/ssh/main_keygen.dart new file mode 100644 index 00000000..caf7de00 --- /dev/null +++ b/lib/ssh/main_keygen.dart @@ -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'); +}