Created
June 3, 2014 02:49
-
-
Save creationix/0e3f70f13243b097d0f4 to your computer and use it in GitHub Desktop.
Generate key as tedit extension.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"use strict"; | |
var rsa = window.forge.rsa; | |
var pki = window.forge.pki; | |
var fs = require('data/fs.js'); | |
var reloadTree = require('ui/tree.js').reload; | |
var notify = require('ui/notify.js'); | |
var modes = require('js-git/lib/modes.js'); | |
var bodec = require('bodec.js'); | |
var privateKey, publicKey; | |
fs.readBlob("private-key.pem", onRead); | |
function onRead(err, entry) { | |
if (!entry || !entry.blob) { | |
notify("Generating RSA key pair.."); | |
return rsa.generateKeyPair({bits: 2048, workers: 2}, onPair); | |
} | |
var pem = bodec.toUnicode(entry.blob); | |
privateKey = pki.privateKeyFromPem(pem); | |
publicKey = pki.setRsaPublicKey(privateKey.n, privateKey.e); | |
onKeys(); | |
} | |
function onPair(err, pair) { | |
if (err) throw err; | |
notify("Generatied RSA key pair"); | |
privateKey = pair.privateKey; | |
publicKey = pair.publicKey; | |
fs.saveAs("", "blob", pki.privateKeyToPem(pair.privateKey), onHash); | |
} | |
function onHash(err, hash) { | |
if (err) throw err; | |
fs.writeEntry("private-key.pem", { | |
mode: modes.blob, | |
hash: hash | |
}, onSaved); | |
} | |
function onSaved(err) { | |
if (err) throw err; | |
console.log("Private Key saved to VFS"); | |
reloadTree(); | |
onKeys(); | |
} | |
function onKeys() { | |
console.log({ | |
privateKey: privateKey, | |
publicKey: publicKey | |
}); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment