From 954d6f98ebd13efa275cace915e3a3a52c063915 Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Fri, 24 Apr 2020 17:27:55 -0400 Subject: initial TypeScript definition file --- javascript/index.d.ts | 89 +++++++++++++++++++++++++++++++++++++++++++++++++ javascript/package.json | 1 + 2 files changed, 90 insertions(+) create mode 100644 javascript/index.d.ts diff --git a/javascript/index.d.ts b/javascript/index.d.ts new file mode 100644 index 0000000..2bf756a --- /dev/null +++ b/javascript/index.d.ts @@ -0,0 +1,89 @@ +/* +Copyright 2020 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +export as namespace Olm; + +declare class Account { + constructor(); + free(); + create(); + identity_keys(): string; + sign(message: string): string; + one_time_keys(): string; + mark_keys_as_published(); + max_number_of_one_time_keys(): number; + generate_one_time_keys(number_of_keys: number); + remove_one_time_keys(session: Session); + pickle(key: string): string; + unpickle(key: string, pickle: string); +} + +declare class Session { + constructor(); + free(): void; + pickle(key: string): string; + unpickle(key: string, pickle: string); + create_outbound( + account: Account, their_identity_key: string, their_one_time_key: string, + ): void; + create_inbound(account: Account, one_time_key_message: string): void; + create_inbound_from( + account: Account, identity_key: string, one_time_key_message: string, + ): void; + session_id(): string; + has_received_message(): boolean; + matches_inbound(one_time_key_message: string): boolean; + matches_inbound_from(identity_key: string, one_time_key_message: string): boolean; + encrypt(plaintext: string): object; + decrypt(message_type: number, message: string): string; + describe(): string; +} + +declare class Utility { + constructor(); + free(): void; + sha256(input: string): string; + ed25519verify(key: string, message: string, signature: string): void; +} + +declare class PkEncryption { + constructor(); + free(): void; + set_recipient_key(key: string): void; + encrypt(plaintext: string): object; +} + +declare class PkDecryption { + constructor(); + free(): void; + init_with_private_key(key: Uint8Array): string; + generate_key(): string; + get_private_key(): Uint8Array; + pickle(key: string): string; + unpickle(key: string, pickle: string): string; +} + +declare class PkSigning { + constructor(); + free(): void; + init_with_seed(seed: Uint8Array): string; + generate_seed(): Uint8Array; + sign(message: string): string; +} + +export function init(): Promise; + +export function get_library_version(): [number, number, number]; diff --git a/javascript/package.json b/javascript/package.json index d68020a..5123c8c 100644 --- a/javascript/package.json +++ b/javascript/package.json @@ -7,6 +7,7 @@ "olm.js", "olm.wasm", "olm_legacy.js", + "index.d.ts", "README.md" ], "scripts": { -- cgit v1.2.3