keygen experiment: Try to generate an ed25519 key

This commit is contained in:
Vishesh Handa
2020-12-21 21:53:03 +01:00
parent 9fd605a407
commit 1e57a816e7
3 changed files with 57 additions and 5 deletions

View File

@ -1,12 +1,21 @@
import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'package:gitjournal/ssh/rsa_key_pair.dart'; import 'package:cryptography/cryptography.dart';
void main() { import './binary_length_value.dart';
void main() async {
print("Generating new random key"); print("Generating new random key");
var keyPair = RsaKeyPair.generate(); final keyPair = await ed25519.newKeyPair();
var publicKeyStr = keyPair.publicKeyString(comment: "No Comment");
var privateKeyStr = keyPair.privateKeyString(); var publicKey = keyPair.publicKey;
var privateKey = keyPair.privateKey;
var publicKeyStr = publicKeyString(publicKey.bytes);
var privateKeyStr = ""; //keyPair.privateKeyString();
print(privateKey);
var keyName = "key_"; var keyName = "key_";
var num = 0; var num = 0;
@ -20,3 +29,23 @@ void main() {
File("key_$num.pub").writeAsStringSync(publicKeyStr + '\n'); File("key_$num.pub").writeAsStringSync(publicKeyStr + '\n');
File("key_$num").writeAsStringSync(privateKeyStr + '\n'); File("key_$num").writeAsStringSync(privateKeyStr + '\n');
} }
String publicKeyString(List<int> publicKeyBytes, {String comment = ""}) {
var data = BinaryLengthValue.encode([
BinaryLengthValue.fromString("ssh-ed25519"),
BinaryLengthValue(publicKeyBytes),
]);
if (comment.isNotEmpty) {
comment = comment.replaceAll('\r', ' ');
comment = comment.replaceAll('\n', ' ');
comment = ' $comment';
}
return 'ssh-ed25519 ${base64.encode(data)}$comment';
}
String privateKeyString() {
var str = '-----BEGIN OPENSSH PRIVATE KEY-----\n';
return str;
}

View File

@ -162,6 +162,20 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.5" version: "2.1.5"
cryptography:
dependency: "direct main"
description:
name: cryptography
url: "https://pub.dartlang.org"
source: hosted
version: "1.4.1"
cryptography_flutter:
dependency: "direct main"
description:
name: cryptography_flutter
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
crypton: crypton:
dependency: "direct main" dependency: "direct main"
description: description:
@ -339,6 +353,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.2.1" version: "0.2.1"
fixnum:
dependency: transitive
description:
name: fixnum
url: "https://pub.dartlang.org"
source: hosted
version: "0.10.11"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter

View File

@ -22,6 +22,8 @@ dependencies:
badges: ^1.1.1 badges: ^1.1.1
connectivity: ^0.4.6+1 connectivity: ^0.4.6+1
cached_network_image: ^2.2.0+1 cached_network_image: ^2.2.0+1
cryptography: ^1.4.1
cryptography_flutter: ^1.0.0
crypton: ^1.1.3 crypton: ^1.1.3
device_info: ">=0.4.2+4 <2.0.0" device_info: ">=0.4.2+4 <2.0.0"
dots_indicator: ^0.0.3 dots_indicator: ^0.0.3