Merge branch 'master' of https://github.com/BrowserPGP/BrowserPGP.github.io
This commit is contained in:
@@ -1,7 +1,13 @@
|
|||||||

|

|
||||||
# browserPGP.github.io
|
# browserPGP
|
||||||
A website that makes using PGP simple and secure. All work is done client side, so no private data leaves your computer.
|
A website that makes using PGP simple and secure. All work is done client side, so no private data leaves your computer.
|
||||||
|
|
||||||
If you want to be extra secure, disable internet while using this site.
|
If you want to be extra secure, disable internet while using this site.
|
||||||
|
|
||||||
- ar0n#1462
|
- ar0n#1462
|
||||||
|
|
||||||
|
# Donate
|
||||||
|
- Bitcoin: 174pY2VP3VxhWNFcNsnYJz2eAKVySxr4jr
|
||||||
|
- Bitcoin Cash: 1C6XvFHtxZ2PvctJ5hLY8VCgVioMnLVSte
|
||||||
|
- Litecoin: LNq5sNAfs2MdpHoqkwJs71eBeJA91itybd
|
||||||
|
- Dogecoin: DB2GW7Dad5z8RPuJjzG2i24PbNgpaE1G1k
|
||||||
|
|||||||
11
decrypt.html
11
decrypt.html
@@ -1,7 +1,7 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>browserPGP | Decrypt</title>
|
<title>browserPGP | Decrypt</title>
|
||||||
<meta name="description" content="Decrypt PGP in browser, simple and secure.">
|
<meta name="description" content="Decrypt PGP in browser, simple and secure." />
|
||||||
<meta name="keywords" content="browserPGP,PGP,OpenPGP,online,browser,javascript,github,live,secure,key generator,key gen,encrypt,decrypt,sign,verify,signature">
|
<meta name="keywords" content="browserPGP,PGP,OpenPGP,online,browser,javascript,github,live,secure,key generator,key gen,encrypt,decrypt,sign,verify,signature">
|
||||||
<meta name="author" content="ar0n#1462">
|
<meta name="author" content="ar0n#1462">
|
||||||
|
|
||||||
@@ -22,14 +22,14 @@
|
|||||||
const passphrase = document.getElementById("pass").value
|
const passphrase = document.getElementById("pass").value
|
||||||
const encrypted = document.getElementById("pgpMsg").value
|
const encrypted = document.getElementById("pgpMsg").value
|
||||||
|
|
||||||
const privKeyObj = (await openpgp.key.readArmored(privkey)).keys[0]
|
const privKeyObj = (await openpgp.key.readArmored(privkey).catch((err) => {document.getElementById("result").value = err.message;document.getElementById("progressbar").className = "progress-bar bg-danger";})).keys[0]
|
||||||
|
|
||||||
if (passphrase) {
|
if (passphrase) {
|
||||||
await privKeyObj.decrypt(passphrase)
|
await privKeyObj.decrypt(passphrase).catch((err) => {document.getElementById("result").value = err.message;document.getElementById("progressbar").className = "progress-bar bg-danger";})
|
||||||
}
|
}
|
||||||
|
|
||||||
const options = {
|
const options = {
|
||||||
message: await openpgp.message.readArmored(encrypted), // parse armored message
|
message: await openpgp.message.readArmored(encrypted).catch((err) => {document.getElementById("result").value = err.message;document.getElementById("progressbar").className = "progress-bar bg-danger";}), // parse armored message
|
||||||
privateKeys: [privKeyObj] // for decryption
|
privateKeys: [privKeyObj] // for decryption
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -63,6 +63,9 @@
|
|||||||
</button>
|
</button>
|
||||||
<div class="collapse navbar-collapse" id="navbarNav">
|
<div class="collapse navbar-collapse" id="navbarNav">
|
||||||
<ul class="navbar-nav">
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/">About</a>
|
||||||
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="/gen.html">Key Generator</a>
|
<a class="nav-link" href="/gen.html">Key Generator</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
17
encrypt.html
17
encrypt.html
@@ -1,7 +1,7 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>browserPGP | Encrypt</title>
|
<title>browserPGP | Encrypt</title>
|
||||||
<meta name="description" content="Encrypt PGP in browser, simple and secure.">
|
<meta name="description" content="Encrypt PGP in browser, simple and secure." />
|
||||||
<meta name="keywords" content="browserPGP,PGP,OpenPGP,online,browser,javascript,github,live,secure,key generator,key gen,encrypt,decrypt,sign,verify,signature">
|
<meta name="keywords" content="browserPGP,PGP,OpenPGP,online,browser,javascript,github,live,secure,key generator,key gen,encrypt,decrypt,sign,verify,signature">
|
||||||
<meta name="author" content="ar0n#1462">
|
<meta name="author" content="ar0n#1462">
|
||||||
|
|
||||||
@@ -20,15 +20,9 @@
|
|||||||
// put keys in backtick (``) to avoid errors caused by spaces or tabs
|
// put keys in backtick (``) to avoid errors caused by spaces or tabs
|
||||||
const pubkey = document.getElementById("pubKey").value
|
const pubkey = document.getElementById("pubKey").value
|
||||||
|
|
||||||
let options;
|
const options = {
|
||||||
try {
|
message: openpgp.message.fromText(document.getElementById("text").value), // input as Message object
|
||||||
options = {
|
publicKeys: (await openpgp.key.readArmored(pubkey).catch((err) => {document.getElementById("result").value = err.message;document.getElementById("progressbar").className = "progress-bar bg-danger";})).keys, // for encryption
|
||||||
message: openpgp.message.fromText(document.getElementById("text").value), // input as Message object
|
|
||||||
publicKeys: (await openpgp.key.readArmored(pubkey)).keys, // for encryption
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
document.getElementById("result").value = err.message;
|
|
||||||
document.getElementById("progressbar").className = "progress-bar bg-danger";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
openpgp.encrypt(options).then(ciphertext => {
|
openpgp.encrypt(options).then(ciphertext => {
|
||||||
@@ -62,6 +56,9 @@
|
|||||||
</button>
|
</button>
|
||||||
<div class="collapse navbar-collapse" id="navbarNav">
|
<div class="collapse navbar-collapse" id="navbarNav">
|
||||||
<ul class="navbar-nav">
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/">About</a>
|
||||||
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="/gen.html">Key Generator</a>
|
<a class="nav-link" href="/gen.html">Key Generator</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
7
gen.html
7
gen.html
@@ -1,7 +1,7 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>browserPGP | Key Gen</title>
|
<title>browserPGP | Key Gen</title>
|
||||||
<meta name="description" content="Generate PGP keys in browser, simple and secure.">
|
<meta name="description" content="Generate PGP keys in browser, simple and secure." />
|
||||||
<meta name="keywords" content="browserPGP,PGP,OpenPGP,online,browser,javascript,github,live,secure,key generator,key gen,encrypt,decrypt,sign,verify,signature">
|
<meta name="keywords" content="browserPGP,PGP,OpenPGP,online,browser,javascript,github,live,secure,key generator,key gen,encrypt,decrypt,sign,verify,signature">
|
||||||
<meta name="author" content="ar0n#1462">
|
<meta name="author" content="ar0n#1462">
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
const encryptDecryptFunction = async() => {
|
const encryptDecryptFunction = async() => {
|
||||||
document.getElementById("progressbar").className = "progress-bar progress-bar-striped progress-bar-animated";
|
document.getElementById("progressbar").className = "progress-bar progress-bar-striped progress-bar-animated";
|
||||||
|
|
||||||
var options = {
|
const options = {
|
||||||
userIds: [{ name:document.getElementById("name").value, email:document.getElementById("email").value }], // multiple user IDs
|
userIds: [{ name:document.getElementById("name").value, email:document.getElementById("email").value }], // multiple user IDs
|
||||||
numBits: 4096, // RSA key size
|
numBits: 4096, // RSA key size
|
||||||
passphrase: document.getElementById("pass").value // protects the private key
|
passphrase: document.getElementById("pass").value // protects the private key
|
||||||
@@ -59,6 +59,9 @@
|
|||||||
</button>
|
</button>
|
||||||
<div class="collapse navbar-collapse" id="navbarNav">
|
<div class="collapse navbar-collapse" id="navbarNav">
|
||||||
<ul class="navbar-nav">
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/">About</a>
|
||||||
|
</li>
|
||||||
<li class="nav-item active">
|
<li class="nav-item active">
|
||||||
<a class="nav-link" href="/gen.html">Key Generator</a>
|
<a class="nav-link" href="/gen.html">Key Generator</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
10
index.html
10
index.html
@@ -2,7 +2,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<title>browserPGP</title>
|
<title>browserPGP</title>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="description" content="PGP in browser, simple and secure.">
|
<meta name="description" content="PGP in browser, simple and secure." />
|
||||||
<meta name="keywords" content="browserPGP,PGP,OpenPGP,online,browser,javascript,github,live,secure,key generator,key gen,encrypt,decrypt,sign,verify,signature">
|
<meta name="keywords" content="browserPGP,PGP,OpenPGP,online,browser,javascript,github,live,secure,key generator,key gen,encrypt,decrypt,sign,verify,signature">
|
||||||
<meta name="author" content="ar0n#1462">
|
<meta name="author" content="ar0n#1462">
|
||||||
|
|
||||||
@@ -34,6 +34,9 @@
|
|||||||
</button>
|
</button>
|
||||||
<div class="collapse navbar-collapse" id="navbarNav">
|
<div class="collapse navbar-collapse" id="navbarNav">
|
||||||
<ul class="navbar-nav">
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item active">
|
||||||
|
<a class="nav-link" href="/">About</a>
|
||||||
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="/gen.html">Key Generator</a>
|
<a class="nav-link" href="/gen.html">Key Generator</a>
|
||||||
</li>
|
</li>
|
||||||
@@ -54,11 +57,10 @@
|
|||||||
</nav>
|
</nav>
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<h1 class="display-4">browserPGP</h1>
|
<h1 class="display-4">browserPGP</h1>
|
||||||
<a>A website that makes using PGP simple and secure. All work is done client side, so no private data leaves your computer.<br><br>If you want to be extra secure, disable internet while using this site.<br><br>- ar0n#1462</a>
|
<p>A website that makes using PGP simple and secure. All work is done client side, so no private data leaves your computer.<br><br>If you want to be extra secure, disable internet while using this site.<br><br>- ar0n#1462</p>
|
||||||
<br>
|
<br>
|
||||||
<h1 class="display-4">Donate</h1>
|
<h1 class="display-4">Donate</h1>
|
||||||
<a>This website doesn't generate any revenue, any donations would be appreciated.<br><br>Bitcoin: 174pY2VP3VxhWNFcNsnYJz2eAKVySxr4jr<br>Bitcoin Cash: 1C6XvFHtxZ2PvctJ5hLY8VCgVioMnLVSte<br>Litecoin: LNq5sNAfs2MdpHoqkwJs71eBeJA91itybd<br>Dogecoin: DB2GW7Dad5z8RPuJjzG2i24PbNgpaE1G1k</a>
|
<p>This website doesn't generate any revenue, any donations would be appreciated.<br><br>Bitcoin: <code>174pY2VP3VxhWNFcNsnYJz2eAKVySxr4jr</code><br>Bitcoin Cash: <code>1C6XvFHtxZ2PvctJ5hLY8VCgVioMnLVSte</code><br>Litecoin: <code>LNq5sNAfs2MdpHoqkwJs71eBeJA91itybd</code><br>Dogecoin: <code>DB2GW7Dad5z8RPuJjzG2i24PbNgpaE1G1k</code></p>
|
||||||
<br>
|
|
||||||
<div id="worksCheck"></div>
|
<div id="worksCheck"></div>
|
||||||
<noscript><br><div class="alert alert-danger" role="alert">This website requires JavaScript to function, please enable it.</div></noscript>
|
<noscript><br><div class="alert alert-danger" role="alert">This website requires JavaScript to function, please enable it.</div></noscript>
|
||||||
<br>
|
<br>
|
||||||
|
|||||||
28
sign.html
28
sign.html
@@ -1,7 +1,7 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>browserPGP | Sign</title>
|
<title>browserPGP | Sign</title>
|
||||||
<meta name="description" content="Sign PGP in browser, simple and secure.">
|
<meta name="description" content="Sign PGP in browser, simple and secure." />
|
||||||
<meta name="keywords" content="browserPGP,PGP,OpenPGP,online,browser,javascript,github,live,secure,key generator,key gen,encrypt,decrypt,sign,verify,signature">
|
<meta name="keywords" content="browserPGP,PGP,OpenPGP,online,browser,javascript,github,live,secure,key generator,key gen,encrypt,decrypt,sign,verify,signature">
|
||||||
<meta name="author" content="ar0n#1462">
|
<meta name="author" content="ar0n#1462">
|
||||||
|
|
||||||
@@ -23,22 +23,17 @@
|
|||||||
const passphrase = document.getElementById("pass").value
|
const passphrase = document.getElementById("pass").value
|
||||||
const msg = document.getElementById("msg").value
|
const msg = document.getElementById("msg").value
|
||||||
|
|
||||||
let privKeyObj;
|
const privKeyObj = (await openpgp.key.readArmored(privkey).catch((err) => {document.getElementById("result").value = err.message;document.getElementById("progressbar").className = "progress-bar bg-danger";})).keys[0]
|
||||||
let options;
|
|
||||||
try {
|
if (passphrase) {
|
||||||
privKeyObj = (await openpgp.key.readArmored(privkey)).keys[0]
|
await privKeyObj.decrypt(passphrase).catch((err) => {document.getElementById("result").value = err.message;document.getElementById("progressbar").className = "progress-bar bg-danger";})
|
||||||
if (passphrase) {
|
|
||||||
await privKeyObj.decrypt(passphrase)
|
|
||||||
}
|
|
||||||
options = {
|
|
||||||
message: openpgp.cleartext.fromText(msg), // CleartextMessage or Message object
|
|
||||||
privateKeys: [privKeyObj] // for signing
|
|
||||||
};
|
|
||||||
} catch (err) {
|
|
||||||
document.getElementById("result").value = err.message;
|
|
||||||
document.getElementById("progressbar").className = "progress-bar bg-danger";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const options = {
|
||||||
|
message: openpgp.cleartext.fromText(msg), // CleartextMessage or Message object
|
||||||
|
privateKeys: [privKeyObj] // for signing
|
||||||
|
};
|
||||||
|
|
||||||
openpgp.sign(options).then(function(signed) {
|
openpgp.sign(options).then(function(signed) {
|
||||||
cleartext = signed.data; // '-----BEGIN PGP SIGNED MESSAGE ... END PGP SIGNATURE-----'
|
cleartext = signed.data; // '-----BEGIN PGP SIGNED MESSAGE ... END PGP SIGNATURE-----'
|
||||||
document.getElementById("result").value = cleartext;
|
document.getElementById("result").value = cleartext;
|
||||||
@@ -70,6 +65,9 @@
|
|||||||
</button>
|
</button>
|
||||||
<div class="collapse navbar-collapse" id="navbarNav">
|
<div class="collapse navbar-collapse" id="navbarNav">
|
||||||
<ul class="navbar-nav">
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/">About</a>
|
||||||
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="/gen.html">Key Generator</a>
|
<a class="nav-link" href="/gen.html">Key Generator</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
26
verify.html
26
verify.html
@@ -1,7 +1,7 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>browserPGP | Verify</title>
|
<title>browserPGP | Verify</title>
|
||||||
<meta name="description" content="Verify PGP in browser, simple and secure.">
|
<meta name="description" content="Verify PGP in browser, simple and secure." />
|
||||||
<meta name="keywords" content="browserPGP,PGP,OpenPGP,online,browser,javascript,github,live,secure,key generator,key gen,encrypt,decrypt,sign,verify,signature">
|
<meta name="keywords" content="browserPGP,PGP,OpenPGP,online,browser,javascript,github,live,secure,key generator,key gen,encrypt,decrypt,sign,verify,signature">
|
||||||
<meta name="author" content="ar0n#1462">
|
<meta name="author" content="ar0n#1462">
|
||||||
|
|
||||||
@@ -21,21 +21,20 @@
|
|||||||
const pubkey = document.getElementById("pubKey").value
|
const pubkey = document.getElementById("pubKey").value
|
||||||
const cleartext = document.getElementById("signMsg").value
|
const cleartext = document.getElementById("signMsg").value
|
||||||
|
|
||||||
let options;
|
const options = {
|
||||||
try {
|
message: await openpgp.cleartext.readArmored(cleartext).catch((err) => {document.getElementById("result").value = err.message;document.getElementById("progressbar").className = "progress-bar bg-danger";}), // parse armored message
|
||||||
options = {
|
publicKeys: (await openpgp.key.readArmored(pubkey).catch((err) => {document.getElementById("result").value = err.message;document.getElementById("progressbar").className = "progress-bar bg-danger";})).keys // for verification
|
||||||
message: await openpgp.cleartext.readArmored(cleartext), // parse armored message
|
|
||||||
publicKeys: (await openpgp.key.readArmored(pubkey)).keys // for verification
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
document.getElementById("result").value = err.message;
|
|
||||||
document.getElementById("progressbar").className = "progress-bar bg-danger";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
openpgp.verify(options).then(function(verified) {
|
openpgp.verify(options).then(function(verified) {
|
||||||
validity = verified.signatures[0].valid; // true
|
validity = verified.signatures[0].valid; // true
|
||||||
document.getElementById("result").value = 'Signed by key id ' + verified.signatures[0].keyid.toHex();
|
if (validity) {
|
||||||
document.getElementById("progressbar").className = "progress-bar bg-success";
|
document.getElementById("result").value = 'Signed by key id ' + verified.signatures[0].keyid.toHex() + '. Signature is valid!';
|
||||||
|
document.getElementById("progressbar").className = "progress-bar bg-success";
|
||||||
|
} else {
|
||||||
|
document.getElementById("result").value = 'Not signed by key id ' + verified.signatures[0].keyid.toHex() + '. Do not trust!';
|
||||||
|
document.getElementById("progressbar").className = "progress-bar bg-danger";
|
||||||
|
}
|
||||||
}).catch(function(error){
|
}).catch(function(error){
|
||||||
document.getElementById("result").value = error.message;
|
document.getElementById("result").value = error.message;
|
||||||
document.getElementById("progressbar").className = "progress-bar bg-danger";
|
document.getElementById("progressbar").className = "progress-bar bg-danger";
|
||||||
@@ -63,6 +62,9 @@
|
|||||||
</button>
|
</button>
|
||||||
<div class="collapse navbar-collapse" id="navbarNav">
|
<div class="collapse navbar-collapse" id="navbarNav">
|
||||||
<ul class="navbar-nav">
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/">About</a>
|
||||||
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="/gen.html">Key Generator</a>
|
<a class="nav-link" href="/gen.html">Key Generator</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
Reference in New Issue
Block a user