Метод шифрования
Методы запроса криптографической подписи сообщений, от SSS
requestSignEncription
- Функция не имеет аргументов
- Возвращаемое значение Promise<EncryptedMessage>
Данная функция запрашивает у пользователя авторизацию, чтобы создать зашифрованное сообщение на основе информации в заданном сообщении.
// window.SSS
const message = "сообщение, которое вы хотите зашифровать";
const pubkey = "===== RECIPIENT PUBLIC KEY =====";
window.SSS.setMessage(message, pubkey);
window.SSS.requestSignEncription().then((msg) => {
console.log({ msg });
});
// sss-module
import { setMessage, requestSignEncription } from "sss-module";
const message = "сообщение, которое вы хотите зашифровать";
const pubkey = "===== RECIPIENT PUBLIC KEY =====";
setMessage(message, pubkey);
requestSignEncription().then((msg) => {
console.log({ msg });
});
getActiveAccountToken
Генерирует безопасный зашифрованный токен аутентификации, используя публичный ключ аккаунта (верификатор) и приватный ключ пользователя, хранящийся в веб-приложении.
window.SSS
- аргумент
- publicKey : string
- customPayload : object (Может быть понижен)
- encryptedPayload : string (Может быть понижен)
- Возвращаемое значение Promise<string>
sss-module
- Аргумент
- publicKey : строка | PublicAccount
- customPayload : объект (Может быть понижен)
- encryptedPayload : строка (Может быть понижен)
- Возвращаемое значение Promise<string>
Генерирует токен криптографической аутентификации из активной учетной записи на указанный публичный ключ. Полезные данные второго аргумента указываются в формате json и объединяются с полезными данными по умолчанию для создания зашифрованного токена аутентификации.
Полезная нагрузка по умолчанию
- signerAddress : ActiveAccount адрес
- iat : время генерации токена
- verufierAddress : ActiveAccount адрес назначения, полученный из сети и публичного ключа назначения, указанного аргументом
- network : ActiveAccount сеть
// window.SSS
const pubkey = "===== RECIPIENT PUBLIC KEY =====";
window.SSS.getActiveAccountToken(pubkey).then((token) => {
console.log({ token });
});
// sss-module
import { getActiveAccountToken } from "sss-module";
const pubkey = "===== RECIPIENT PUBLIC KEY =====";
getActiveAccountToken(pubkey).then((token) => {
console.log({ token });
});
пользовательская полезная нагрузка
Необязательный аргумент, используемый, когда вы хотите включить в токен элементы, отличные от полезной нагрузки по умолчанию. Создает токен проверки подлинности с указанным объектом json вместе с полезными данными по умолчанию.
// window.SSS
const pubkey = "===== RECIPIENT PUBLIC KEY =====";
const customPayload = {
deadline: 60 * 60 * 24,
};
window.SSS.getActiveAccountToken(pubkey, customPayload).then((token) => {
console.log({ token });
});
// sss-module
import { getActiveAccountToken } from "sss-module";
const pubkey = "===== RECIPIENT PUBLIC KEY =====";
const customPayload = {
deadline: 60 * 60 * 24,
};
getActiveAccountToken(pubkey, customPayload).then((token) => {
console.log({ token });
});
Полезная нагрузка шифрования
Указывает полезную нагрузку зашифрованного сообщения, созданного с сервера с использованием закрытого ключа верификатора и открытого ключа пользователя, Создает токен проверки подлинности с заданным на стороне сервера значением секрета.
// window.SSS
const pubkey = "===== RECIPIENT PUBLIC KEY =====";
const customPayload = {
deadline: 60 * 60 * 24,
};
const encryptedPayload = verifier.encryptMessage(
"This is EncriptedPayload",
userPublicKey
);
window.SSS.getActiveAccountToken(pubkey, customPayload, encryptedPayload).then(
(token) => {
console.log({ token });
}
);
// sss-module
import { getActiveAccountToken } from "sss-module";
const pubkey = "===== RECIPIENT PUBLIC KEY =====";
const customPayload = {
deadline: 60 * 60 * 24,
};
const encryptedPayload = verifier.encryptMessage(
"This is EncriptedPayload",
userPublicKey
).payload;
getActiveAccountToken(pubkey, customPayload, encryptedPayload).then((token) => {
console.log({ token });
});
Расшифровка токена аутентификации
Расшифруйте токен, сгенерированный getActiveAccountToken на стороне сервера.
Когда сервер получает токен аутентификации, он использует публичный ключ пользователя и приватный ключ верификатора, которые хранится на сервере, для расшифровки токена аутентификации. Полезная нагрузка расшифрованного сообщения становится содержимым токена аутентификации.
const authToken = "===== AUTH TOKEN =====";
const userPublicKey = PublicAccount.createFromPublicKey(user, nt);
const msg = new EncryptedMessage(authToken, userPublicKey);
const token = verifier.decryptMessage(msg, userPublicKey).payload;
console.log({ token });