implement cryptography for FileTransfer
This commit is contained in:
Vendored
+25
@@ -314,6 +314,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// src/Model/Utility/utility.ts
|
// src/Model/Utility/utility.ts
|
||||||
|
function generateRandomToken(length) {
|
||||||
|
const array = new Uint8Array(length);
|
||||||
|
crypto.getRandomValues(array);
|
||||||
|
return array.join("");
|
||||||
|
}
|
||||||
function createTimestamp() {
|
function createTimestamp() {
|
||||||
return (/* @__PURE__ */ new Date()).toISOString();
|
return (/* @__PURE__ */ new Date()).toISOString();
|
||||||
}
|
}
|
||||||
@@ -4411,6 +4416,24 @@
|
|||||||
taskStatusSuggestions = new ListState();
|
taskStatusSuggestions = new ListState();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// src/Model/Global/fileTransferModel.ts
|
||||||
|
var FileTransferModel = class {
|
||||||
|
storageModel;
|
||||||
|
connectionModel;
|
||||||
|
// methods
|
||||||
|
generateTransferData = () => {
|
||||||
|
return {
|
||||||
|
channel: generateRandomToken(2),
|
||||||
|
key: generateRandomToken(3)
|
||||||
|
};
|
||||||
|
};
|
||||||
|
// init
|
||||||
|
constructor(storageModel2, connectionModel2) {
|
||||||
|
this.storageModel = storageModel2;
|
||||||
|
this.connectionModel = connectionModel2;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// src/View/Components/chatEntry.tsx
|
// src/View/Components/chatEntry.tsx
|
||||||
function ChatEntry(chatViewModel) {
|
function ChatEntry(chatViewModel) {
|
||||||
const view = /* @__PURE__ */ createElement(
|
const view = /* @__PURE__ */ createElement(
|
||||||
@@ -4975,6 +4998,8 @@
|
|||||||
settingsModel,
|
settingsModel,
|
||||||
connectionModel
|
connectionModel
|
||||||
);
|
);
|
||||||
|
var fileTransferModel = new FileTransferModel(storageModel, connectionModel);
|
||||||
|
console.log(fileTransferModel.generateTransferData());
|
||||||
new v1Upgrader(settingsModel, connectionModel, chatListModel);
|
new v1Upgrader(settingsModel, connectionModel, chatListModel);
|
||||||
var coreVieWModel = new CoreViewModel();
|
var coreVieWModel = new CoreViewModel();
|
||||||
var storageViewModel = new StorageViewModel(coreVieWModel, storageModel);
|
var storageViewModel = new StorageViewModel(coreVieWModel, storageModel);
|
||||||
|
|||||||
@@ -2,14 +2,28 @@
|
|||||||
|
|
||||||
import ConnectionModel from "./connectionModel";
|
import ConnectionModel from "./connectionModel";
|
||||||
import StorageModel from "./storageModel";
|
import StorageModel from "./storageModel";
|
||||||
|
import { generateRandomToken } from "../Utility/utility";
|
||||||
|
|
||||||
export default class FileTransferModel {
|
export default class FileTransferModel {
|
||||||
storageModel: StorageModel;
|
storageModel: StorageModel;
|
||||||
connectionModel: ConnectionModel;
|
connectionModel: ConnectionModel;
|
||||||
|
|
||||||
// init
|
// methods
|
||||||
constructor(storageModel: StorageModel, connectionModel: ConnectionModel) {
|
generateTransferData = (): TransferData => {
|
||||||
this.storageModel = storageModel;
|
return {
|
||||||
this.connectionModel = connectionModel;
|
channel: generateRandomToken(2),
|
||||||
}
|
key: generateRandomToken(3),
|
||||||
}
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// init
|
||||||
|
constructor(storageModel: StorageModel, connectionModel: ConnectionModel) {
|
||||||
|
this.storageModel = storageModel;
|
||||||
|
this.connectionModel = connectionModel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TransferData {
|
||||||
|
channel: string;
|
||||||
|
key: string;
|
||||||
|
}
|
||||||
|
|||||||
@@ -4,6 +4,13 @@ export interface Stringifiable {
|
|||||||
toString(): string;
|
toString(): string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// crypto
|
||||||
|
export function generateRandomToken(length: number): string {
|
||||||
|
const array = new Uint8Array(length);
|
||||||
|
crypto.getRandomValues(array);
|
||||||
|
return array.join("");
|
||||||
|
}
|
||||||
|
|
||||||
// date
|
// date
|
||||||
export function createTimestamp(): string {
|
export function createTimestamp(): string {
|
||||||
return new Date().toISOString();
|
return new Date().toISOString();
|
||||||
|
|||||||
@@ -31,6 +31,8 @@ const chatListModel = new ChatListModel(
|
|||||||
);
|
);
|
||||||
const fileTransferModel = new FileTransferModel(storageModel, connectionModel);
|
const fileTransferModel = new FileTransferModel(storageModel, connectionModel);
|
||||||
|
|
||||||
|
console.log(fileTransferModel.generateTransferData());
|
||||||
|
|
||||||
// upgrade
|
// upgrade
|
||||||
new v1Upgrader(settingsModel, connectionModel, chatListModel);
|
new v1Upgrader(settingsModel, connectionModel, chatListModel);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user