Skip to content
On this page

Interface: EncryptionSession

Properties

_sessionSymKey

_sessionSymKey: SymKey

Instance of the symKey for this EncryptionSession instance. For internal use only. Do not use directly.


sessionId

sessionId: string

The sessionId for this EncryptionSession instance.

Methods

addRecipients

addRecipients(recipients, opts?): Promise< AuthorizeRecipientResult >

Add new recipients to this session. These recipients will be able to read all encrypted messages of this session.

Parameters

ParameterTypeDescription
recipientsRecipientsWithRights
opts?object
opts.allowUnregisteredUsers?booleanOptional. Whether or not to allow non-seald, unregistered recipients. Defaults to false.

Returns

Promise< AuthorizeRecipientResult >


addSymEncKey

addSymEncKey(args): Promise< string >

Adds a SymEncKey for this session, which allows to retrieve the session without being a recipient, and/or to self-add to the session.

You must pass either a password, or both a rawSecret and rawSymKey.

Returns the id of the newly added SymEncKey.

Parameters

ParameterTypeDescription
argsobject
args.password?stringOptional. Derived automatically to a rawSecret and a rawSymKey.
args.rawSecret?stringOptional. For advanced use. Set a SymEncKey secret manually. Do not use both rawSecret and password, as password is automatically derived into rawSecret.
args.rawSymKey?stringOptional. For advanced use. Set a SymEncKey raw Symmetric key manually. Do not use both rawSymKey and password, as password is automatically derived into rawSymKey. MUST be 512 bits (64 bytes) of cryptographically secure random, encoded as Base64.
args.rights?UserRightsOptional. Rights to assign to this SymEncKey. Defaults to { read: true, forward: true, revoke: false }.

Returns

Promise< string >


changeRecipientsRights

changeRecipientsRights(recipients, opts?): Promise< void >

Change rights for recipients. These recipients must already be allowed on this session. You can add rights by setting them to true, remove rights by setting them to false. Unspecified rights will be left unchanged. To add a right, you must have the right in question plus the forward right. To remove a right, you must have the revoke right.

Parameters

ParameterTypeDescription
recipientsRecipientsWithRights
opts?object
opts.allowUnregisteredUsers?booleanOptional. Whether or not to allow non-seald, unregistered recipients. Defaults to false.

Returns

Promise< void >


changeSymEncKeyRights

changeSymEncKeyRights(symEncKeyId, rights): Promise< void >

Change rights for a SymEncKey. You can add rights by setting them to true, remove rights by setting them to false. Unspecified rights will be left unchanged. To add a right, you must have the right in question plus the forward right. To remove a right, you must have the revoke right.

Parameters

ParameterTypeDescription
symEncKeyIdstring
rightsUserRights

Returns

Promise< void >


decryptFile

decryptFile<T>( encryptedFile, progressCallback?, fileSize?): Promise< { data: T; filename: string; sessionId: string; size: number; type: FileType; } >

Decrypts an encrypted file

Type parameters

Parameter
T extends string | Blob | ReadableStream< any > | Readable | Buffer

Parameters

ParameterTypeDescription
encryptedFileT
progressCallback?(progress) => voidOptional. Progress callback. The progress is given between 0 and 1.
fileSize?numberOptional. Size of the file to decrypt. Needed when using progressCallback with a ReadableStream or NodeReadable as input type.

Returns

Promise< { data: T; filename: string; sessionId: string; size: number; type: FileType; } >


decryptMessage

decryptMessage(encryptedMessage, options?): Promise< string >

Decrypts an encrypted message string into the corresponding clear-text string.

Parameters

ParameterTypeDescription
encryptedMessagestring
options?object
options.raw?booleanOptional. Whether or not the message was encrypted raw. Defaults to false.

Returns

Promise< string >


deleteSymEncKey

deleteSymEncKey(symEncKeyId): Promise< void >

Deletes a SymEncKey from this session.

Parameters

ParameterTypeDescription
symEncKeyIdstring

Returns

Promise< void >


encryptFile

encryptFile<T>( clearFile, filename, opts?): Promise< T >

Encrypts a file

Type parameters

Parameter
T extends string | Blob | ReadableStream< any > | Readable | Buffer

Parameters

ParameterTypeDescription
clearFileT
filenamestringName of the file. Max 256 characters long.
opts?object
opts.fileSize?numberOptional. Needed when using stream.
opts.progressCallback?(p) => void-

Returns

Promise< T >


encryptMessage

encryptMessage(clearString, options?): Promise< string >

Encrypts a clear-text string into an encrypted message, for the recipients of this session.

Parameters

ParameterTypeDescription
clearStringstring
options?object
options.raw?booleanOptional. Whether to include or not the sessionID in the encrypted string. If set to true, the encrypted string cannot be used to retrieve the encryption session. Defaults to false.

Returns

Promise< string >


listRecipients

listRecipients(): Promise< RecipientsList >

Retrieve the list of recipients.

You need to have the 'forward' right on this session to list recipients besides yourself.

Returns

Promise< RecipientsList >


listSymEncKeys

listSymEncKeys(): Promise< { id: string; rights: UserRights; }[] >

List all SymEncKeys added to this session.

Returns

Promise< { id: string; rights: UserRights; }[] >


revoke

revoke(): Promise< RevokeResult >

Entirely revoke this session. You can only do it if you are this session's administrator.

Returns

Promise< RevokeResult >


revokeRecipients

revokeRecipients(recipients, opts?): Promise< RevokeResult >

Revoke recipients from this session. You can only do it if you added these recipients yourself, or if you are this session's administrator.

Parameters

ParameterTypeDescription
recipientsRecipients
opts?object
opts.allowUnregisteredUsers?booleanOptional. Whether or not to allow non-seald, unregistered recipients. Defaults to false.

Returns

Promise< RevokeResult >


serialize

serialize(): string

Serialize session to a string. This is for advanced use. May be used to keep sessions in a cache. WARNING: a user could use this cache to work around being revoked. Use with caution. WARNING: if the cache is accessible to another user, they could use it to decrypt messages they are not supposed to have access to. Make sure only the current user in question can access this cache, for example by encrypting it.

Returns

string


setManagingGroup

setManagingGroup(groupId, user?): Promise< { status: "ok"; } >

DEPRECATED: assign revoke rights to the group instead.

Give the rights to manage this session with the same rights as the given user to anyone belonging to given group. A common way to use this, and the default, is to set user = group : this allows any member of the group to act as the owner of the group's MessageAccess

Warning : this can only be done by the user who created the session. If it is done by anyone else, the behavior is not guaranteed. Also, this will only have the expected behavior if the group is the only direct recipient of the session, which means that, during session creation, the group was the only recipient listed, and that encryptForSelf was set to false.

Parameters

ParameterTypeDescription
groupIdstring
user?RecipientsMust be one of your descendants, possibly the group itself. Defaults to the group

Returns

Promise< { status: "ok"; } >

Deprecated