|
@@ -2,7 +2,8 @@ import { Component } from "@angular/core";
|
|
|
import {
|
|
|
NavController,
|
|
|
ToastController,
|
|
|
- LoadingController
|
|
|
+ LoadingController,
|
|
|
+ AlertController
|
|
|
} from "ionic-angular";
|
|
|
import { Storage } from "@ionic/storage";
|
|
|
import { CryptoProvider } from "../../providers/crypto/crypto";
|
|
@@ -23,7 +24,8 @@ export class SettingsPage {
|
|
|
private cryptoUtils: CryptoProvider,
|
|
|
private storage: Storage,
|
|
|
private loadingCtrl: LoadingController,
|
|
|
- private sharing: SocialSharing
|
|
|
+ private sharing: SocialSharing,
|
|
|
+ private alertCtrl: AlertController
|
|
|
) {
|
|
|
this.loadValuesFromStorage();
|
|
|
}
|
|
@@ -34,7 +36,33 @@ export class SettingsPage {
|
|
|
this.keywords = await this.storage.get("keywords");
|
|
|
}
|
|
|
|
|
|
- async generateKeys() {
|
|
|
+ generateKeys() {
|
|
|
+ if (this.publicKey.length || this.privateKey.length) {
|
|
|
+ const alert = this.alertCtrl.create({
|
|
|
+ title: "Are you sure?",
|
|
|
+ subTitle:
|
|
|
+ "You already have keys entered. Do you want to overwrite them?",
|
|
|
+ buttons: [
|
|
|
+ {
|
|
|
+ text: "No",
|
|
|
+ role: "cancel"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: "Yes",
|
|
|
+ handler: () => {
|
|
|
+ this.startKeyGeneration();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ });
|
|
|
+
|
|
|
+ alert.present();
|
|
|
+ } else {
|
|
|
+ this.startKeyGeneration();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private async startKeyGeneration() {
|
|
|
const keys = await this.cryptoUtils.generateRsaKeys();
|
|
|
|
|
|
this.publicKey = await this.cryptoUtils.extractPublicKey(keys);
|