signJson method

Map<String, Object?> signJson(
  1. Map<String, Object?> payload
)

Adds a signature to this json from this olm account and returns the signed json.

Implementation

Map<String, Object?> signJson(Map<String, Object?> payload) {
  if (!enabled) throw ('Encryption is disabled');
  final signableJson = SignableJsonMap(payload);

  final canonical = canonicalJson.encode(signableJson.jsonMap);
  final signature = _olmAccount!.sign(String.fromCharCodes(canonical));

  final userSignatures = signableJson.signatures[client.userID!] ??= {};
  userSignatures['ed25519:$ourDeviceId'] = signature.toBase64();

  return signableJson.toJson();
}