Skip to content

Commit 33ab56c

Browse files
committed
Element-R: implement event decryption
1 parent dff3361 commit 33ab56c

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

src/rust-crypto/rust-crypto.ts

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,23 @@ export class RustCrypto implements CryptoBackend {
7474
}
7575

7676
public async decryptEvent(event: MatrixEvent): Promise<IEventDecryptionResult> {
77-
await this.olmMachine.decryptRoomEvent("event", new RustSdkCryptoJs.RoomId("room"));
78-
throw new Error("not implemented");
77+
const res = (await this.olmMachine.decryptRoomEvent(
78+
JSON.stringify({
79+
event_id: event.getId(),
80+
type: event.getWireType(),
81+
sender: event.getSender(),
82+
state_key: event.getStateKey(),
83+
content: event.getWireContent(),
84+
origin_server_ts: event.getTs(),
85+
}),
86+
new RustSdkCryptoJs.RoomId(event.getRoomId()!),
87+
)) as DecryptedRoomEvent;
88+
return {
89+
clearEvent: JSON.parse(res.event),
90+
claimedEd25519Key: res.senderClaimedEd25519Key,
91+
senderCurve25519Key: res.senderCurve25519Key,
92+
forwardingCurve25519KeyChain: res.forwardingCurve25519KeyChain,
93+
};
7994
}
8095

8196
public async userHasCrossSigningKeys(): Promise<boolean> {

0 commit comments

Comments
 (0)