add comments
This commit is contained in:
parent
765aa5357e
commit
84b2047008
2 changed files with 52 additions and 0 deletions
|
@ -42,6 +42,13 @@ const fetchFile = (list, element = undefined) => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update an element
|
||||||
|
* @param element Element to update
|
||||||
|
* @param text Content of the tag
|
||||||
|
* @param tag Optional: specify a new tag
|
||||||
|
* @returns new element
|
||||||
|
*/
|
||||||
const update = (element, text, tag = undefined) => {
|
const update = (element, text, tag = undefined) => {
|
||||||
if (element) {
|
if (element) {
|
||||||
let parent = element.parentElement;
|
let parent = element.parentElement;
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
import { modInv, modPow } from "./libs/bigint-mod.js";
|
import { modInv, modPow } from "./libs/bigint-mod.js";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate a new RSA keypair
|
||||||
|
* @param bits Key size
|
||||||
|
* @returns RSA keypair
|
||||||
|
*/
|
||||||
export const gen_RSA_keypair = async (bits) => {
|
export const gen_RSA_keypair = async (bits) => {
|
||||||
const getPrime = (bits) => {
|
const getPrime = (bits) => {
|
||||||
return new Promise((ok, ko) => {
|
return new Promise((ok, ko) => {
|
||||||
|
@ -31,14 +36,32 @@ export const gen_RSA_keypair = async (bits) => {
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* RSA algorithm
|
||||||
|
* @param msg data
|
||||||
|
* @param key RSA key used
|
||||||
|
* @returns Encrypted data
|
||||||
|
*/
|
||||||
const RSA = (msg, key) => {
|
const RSA = (msg, key) => {
|
||||||
return modPow(msg, key[0], key[1]);
|
return modPow(msg, key[0], key[1]);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encrypt a string with RSA
|
||||||
|
* @param data string
|
||||||
|
* @param key RSA key used
|
||||||
|
* @returns Int
|
||||||
|
*/
|
||||||
const RSA_enc = (data, key) => {
|
const RSA_enc = (data, key) => {
|
||||||
return RSA(str_to_int(data)[0], key);
|
return RSA(str_to_int(data)[0], key);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encrypt a big string with RSA
|
||||||
|
* @param data big string
|
||||||
|
* @param key RSA key used
|
||||||
|
* @returns Int array
|
||||||
|
*/
|
||||||
export const RSA_enc_data = (data, key) => {
|
export const RSA_enc_data = (data, key) => {
|
||||||
let encoded = [];
|
let encoded = [];
|
||||||
data.match(/(.{1,100})/g).forEach((piece) => {
|
data.match(/(.{1,100})/g).forEach((piece) => {
|
||||||
|
@ -48,10 +71,22 @@ export const RSA_enc_data = (data, key) => {
|
||||||
return encoded;
|
return encoded;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decrypt a int to a string with RSA
|
||||||
|
* @param data int
|
||||||
|
* @param key RSA key used
|
||||||
|
* @returns string
|
||||||
|
*/
|
||||||
const RSA_dec = (data, key) => {
|
const RSA_dec = (data, key) => {
|
||||||
return int_to_str([RSA(data, key)]);
|
return int_to_str([RSA(data, key)]);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decrypt a int array to a string with RSA
|
||||||
|
* @param data int array
|
||||||
|
* @param key RSA key used
|
||||||
|
* @returns big string
|
||||||
|
*/
|
||||||
export const RSA_dec_data = (data, key) => {
|
export const RSA_dec_data = (data, key) => {
|
||||||
let decoded = "";
|
let decoded = "";
|
||||||
data.forEach((piece) => {
|
data.forEach((piece) => {
|
||||||
|
@ -61,6 +96,11 @@ export const RSA_dec_data = (data, key) => {
|
||||||
return decoded;
|
return decoded;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert a string to an int (ASCII)
|
||||||
|
* @param msg string
|
||||||
|
* @returns int (ASCII)
|
||||||
|
*/
|
||||||
const str_to_int = (msg) => {
|
const str_to_int = (msg) => {
|
||||||
let result = "";
|
let result = "";
|
||||||
let table = [];
|
let table = [];
|
||||||
|
@ -75,6 +115,11 @@ const str_to_int = (msg) => {
|
||||||
return table;
|
return table;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert a int to string (ASCII)
|
||||||
|
* @param msg int (ASCII)
|
||||||
|
* @returns string
|
||||||
|
*/
|
||||||
const int_to_str = (msg) => {
|
const int_to_str = (msg) => {
|
||||||
let result = "";
|
let result = "";
|
||||||
for (let k = 0; k < msg.length; k++) {
|
for (let k = 0; k < msg.length; k++) {
|
||||||
|
|
Reference in a new issue