diff options
-rw-r--r-- | javascript/index.d.ts | 125 | ||||
-rw-r--r-- | javascript/package.json | 1 |
2 files changed, 126 insertions, 0 deletions
diff --git a/javascript/index.d.ts b/javascript/index.d.ts new file mode 100644 index 0000000..682041e --- /dev/null +++ b/javascript/index.d.ts @@ -0,0 +1,125 @@ +/* +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 InboundGroupSession { + constructor(); + free(): void; + pickle(key: string): string; + unpickle(key: string, pickle: string): string; + create(session_key: string): string; + import_session(session_key: string): string; + decrypt(message: string): object; + session_id(): string; + first_known_index(): number; + export_session(message_index: number): string; +} + +declare class OutboundGroupSession { + constructor(); + free(): void; + pickle(key: string): string; + unpickle(key: string): string; + create(): void; + encrypt(plaintext: string): string; + session_id(): string; + session_key(): string; + message_index(): number; +} + +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; + decrypt(ephemeral_key: string, mac: string, ciphertext: string): string; +} + +declare class PkSigning { + constructor(); + free(): void; + init_with_seed(seed: Uint8Array): string; + generate_seed(): Uint8Array; + sign(message: string): string; +} + +declare class SAS { + constructor(); + free(): void; + get_pubkey(): string; + set_their_key(their_key: string): void; + generate_bytes(info: string, length: number): Uint8Array; + calculate_mac(input: string, info: string): string; + calculate_mac_long_kdf(input: string, info: string): string; +} + +export function init(): Promise<void>; + +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": { |