diff --git a/package.json b/package.json index 6e8126f..189611c 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,6 @@ "@angular/router": "^4.0.0", "core-js": "^2.4.1", "rxjs": "^5.1.0", - "webcrypto": "^0.1.0", "zone.js": "^0.8.4" }, "devDependencies": { diff --git a/src/app/app.component.html b/src/app/app.component.html index 3aa9414..94bd2e4 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -2,6 +2,7 @@ Log Manager + diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 342f4ca..0f711b0 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,6 +1,5 @@ import { Component } from '@angular/core'; import { Http, Headers } from '@angular/http'; -import * as crypto from 'webcrypto'; export class NewMessage { public Content: string; @@ -13,20 +12,6 @@ export class NewMessage { styleUrls: ['./app.component.css'] }) export class AppComponent { - pubkey = '-----BEGIN PUBLIC KEY-----\n' + - 'AAAAB3NzaC1yc2EAAAABJQAAAgEAoGk22+PjQH4TEwT0v8qnYxm0YKcil4GB2j03\n' + - 'Ck5RamWid+TZGFH4aW0ekYe1aBB3Qt7FCs49zR3jxPpeQsv4AjehCB6AVU3R1rfL\n' + - '2ze+qiERUVFLcrYr1pzbABn/5YWwkPQFZlgPx82bOMCavDWCY9Z7xLmxeqcdP6P0\n' + - '7pbOe3UnIOSxPZblXvSHiYueAzL1o2bqaT2aJtF2yxuPQq/XDkBjAQ/kcOpVYr5Y\n' + - 'm9/5WwI8bBiipY+xLlXSa78TvVdoTZHdf7EIXZD0rGxmhxOT7KjO1QXycpprX7Yz\n' + - 'eOQVgc8W+B9fCkAaVaznNNo+wfVUUc5qp5urAz/OcF9X0AfjKjI9pXh6eqeipNA1\n' + - 'hBYeGrsxSOuTcd48t2OCQzt9213oj7PZEUImAnkXP3sYKykn2w2HseEzG9q/WszV\n' + - '3mENtPkApY7EapMfNV8wN0H7q8zZSv4AwkG3jhWKYgRfHURNMkx9jdnF2H+LbuH+\n' + - 'uyAh+SXDNuu8iEmMNrZBaUAVPJlqxX1O7i0t0XYiC509jdQvFIGI2FGVPXtudk5c\n' + - 'IXX0miZ8ZXUJHBKu/j/piWzejJTGHfdgBcA9gdnskZjgoNyBkU2adURMgkKwXA+n\n' + - 'Nb6WC+oxojn8RJGz127gwGGVgChX7h+uF2SL8m4C1AgBkV63CU9BNtRiAzZcCJhL\n' + - 'V+g5roU=\n' + - '-----END PUBLIC KEY-----'; showCon = false; showDialog = false; address = 'http://127.0.0.1:8000/api/'; @@ -38,9 +23,6 @@ export class AppComponent { } Decrypt(): void { this.showCon = true; - if (this.pass === 'genmekey') { - this.GenerateKeyPair(); - } } AddNew(): void { this.showDialog = true; @@ -50,11 +32,42 @@ export class AppComponent { this.textarea = null; } GenerateKeyPair(): void { + window.crypto.subtle.generateKey( + { + name: 'RSA-OAEP', + modulusLength: 4096, // can be 1024, 2048, or 4096 + publicExponent: new Uint8Array([0x01, 0x00, 0x01]), + hash: {name: 'SHA-512'}, // can be "SHA-1", "SHA-256", "SHA-384", or "SHA-512" + }, + true, // whether the key is extractable (i.e. can be used in exportKey) + ['encrypt', 'decrypt'] // must be ["encrypt", "decrypt"] or ["wrapKey", "unwrapKey"] + ) + .then(function(key){ + // returns a keypair object + console.log(key); + console.log(key.publicKey); + console.log(key.privateKey); + window.crypto.subtle.exportKey( + 'jwk', // can be "jwk" (public or private), "spki" (public only), or "pkcs8" (private only) + key.publicKey // can be a publicKey or privateKey, as long as extractable was true + ) + .then(function(keydata){ + // returns the exported key data + console.log(keydata); + }); + window.crypto.subtle.exportKey( + 'pkcs8', // can be "jwk" (public or private), "spki" (public only), or "pkcs8" (private only) + key.privateKey // can be a publicKey or privateKey, as long as extractable was true + ) + .then(function(keydata){ + // returns the exported key data + console.log(new Uint8Array(keydata)); + }); + }); } AcceptNew(): void { console.log(this.textarea); - console.log(this.pubkey); - const encrypted_text = crypto.publicEncrypt(this.pubkey, this.textarea); + const encrypted_text = this.textarea; const obj = new NewMessage; obj.Content = encrypted_text; obj.Hash = '';