Skip to content
Snippets Groups Projects
Commit c281837b authored by Dominik Hebeler's avatar Dominik Hebeler
Browse files

fixed time signatures and checks

parent ed49e29c
No related branches found
No related tags found
No related merge requests found
......@@ -73,28 +73,38 @@ class Crypto {
*
* @param {String} blinded_token
* @param {NodeRSA} private_key
* @returns {BigInteger}
* @returns {Promise<BigInteger>}
*/
sign(blinded_token, private_key) {
return BlindSignature.sign({
async sign(blinded_token, private_key) {
let min_ms = 150;
let start = dayjs();
let signature = BlindSignature.sign({
blinded: new BigInteger(blinded_token),
key: private_key,
});
let missing_ms = Math.max(min_ms - dayjs().diff(start, "millisecond"), 0);
await new Promise((resolve) => setTimeout(resolve, missing_ms));
return signature;
}
/**
*
* @param {String} token
* @param {String} expiration
* @param {String} date
*/
async validateToken(token, signature, expiration) {
let date = dayjs(expiration, this.#dayjs_format);
let private_key = await this.get_private_key(date);
return BlindSignature.verify2({
async validateToken(token, signature, date) {
let min_ms = 150;
let start = dayjs();
let current_date = dayjs(date, this.#dayjs_format);
let private_key = await this.get_private_key(current_date);
let verification_result = BlindSignature.verify2({
unblinded: signature,
key: private_key,
message: token,
});
let missing_ms = Math.max(min_ms - dayjs().diff(start, "millisecond"), 0);
await new Promise((resolve) => setTimeout(resolve, missing_ms));
return verification_result;
}
async validateMetaGerPassCode(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment