Перейти к основному содержимому

Метод шифрования

Методы запроса криптографической подписи сообщений, от 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 });