cic-staff-client/src/assets/js/hoba-pgp.js

23 lines
780 B
JavaScript
Raw Normal View History

2021-05-10 18:15:25 +02:00
import { hobaResult, hobaToSign } from '@src/assets/js/hoba.js';
const alg = '969';
export async function signChallenge(challenge, realm, origin, keyStore, password) {
2021-06-07 17:49:15 +02:00
const fingerprint = keyStore.getFingerprint();
const nonce_array = new Uint8Array(32);
crypto.getRandomValues(nonce_array);
2021-05-10 18:15:25 +02:00
const kid_array = fingerprint;
2021-05-10 18:15:25 +02:00
const a_kid = btoa(String.fromCharCode.apply(null, kid_array));
const a_nonce = btoa(String.fromCharCode.apply(null, nonce_array));
const a_challenge = btoa(challenge);
const message = hobaToSign(a_nonce, a_kid, a_challenge, realm, origin, alg);
2021-06-07 17:49:15 +02:00
const signature = await keyStore.sign(message, password);
const a_signature = btoa(signature);
2021-05-10 18:15:25 +02:00
const result = hobaResult(a_nonce, a_kid, a_challenge, a_signature);
return result;
}