Skip to content
This repository has been archived by the owner on May 30, 2022. It is now read-only.

Olm 3.2.5: added methods for getting error codes #1

Merged
merged 3 commits into from
Sep 25, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@ jobs:
run:
shell: bash
env:
OLM_VERSION: 3.2.4
OLM_VERSION: 3.2.6

steps:
- name: 'Clone repository'
uses: actions/checkout@v2
with:
fetch-depth: 0

- name: 'Install dependencies'
run: |
Expand Down
43 changes: 43 additions & 0 deletions src/main/java/io/github/brevilo/jolm/jna/OlmLibrary.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,31 @@ public class OlmLibrary implements Library {
Native.register(OlmLibrary.class, OlmLibrary.JNA_NATIVE_LIB);
}

// olm/error.h
public static interface OlmErrorCode {
public static final int OLM_SUCCESS = 0;
public static final int OLM_NOT_ENOUGH_RANDOM = 1;
public static final int OLM_OUTPUT_BUFFER_TOO_SMALL = 2;
public static final int OLM_BAD_MESSAGE_VERSION = 3;
public static final int OLM_BAD_MESSAGE_FORMAT = 4;
public static final int OLM_BAD_MESSAGE_MAC = 5;
public static final int OLM_BAD_MESSAGE_KEY_ID = 6;
public static final int OLM_INVALID_BASE64 = 7;
public static final int OLM_BAD_ACCOUNT_KEY = 8;
public static final int OLM_UNKNOWN_PICKLE_VERSION = 9;
public static final int OLM_CORRUPTED_PICKLE = 10;
public static final int OLM_BAD_SESSION_KEY = 11;
public static final int OLM_UNKNOWN_MESSAGE_INDEX = 12;
public static final int OLM_BAD_LEGACY_ACCOUNT_PICKLE = 13;
public static final int OLM_BAD_SIGNATURE = 14;
public static final int OLM_INPUT_BUFFER_TOO_SMALL = 15;
public static final int OLM_SAS_THEIR_KEY_NOT_SET = 16;
public static final int OLM_PICKLE_EXTRA_DATA = 17;
}
;

public static native String _olm_error_to_string(int error);

// olm/olm.h
public static final long OLM_MESSAGE_TYPE_PRE_KEY = 0;
public static final long OLM_MESSAGE_TYPE_MESSAGE = 1;
Expand All @@ -46,6 +71,8 @@ public class OlmLibrary implements Library {

public static native String olm_inbound_group_session_last_error(PointerByReference session);

public static native int olm_inbound_group_session_last_error_code(PointerByReference session);

public static native NativeSize olm_clear_inbound_group_session(PointerByReference session);

public static native NativeSize olm_pickle_inbound_group_session_length(
Expand Down Expand Up @@ -127,6 +154,8 @@ public static native NativeSize olm_export_inbound_group_session(

public static native String olm_outbound_group_session_last_error(PointerByReference session);

public static native int olm_outbound_group_session_last_error_code(PointerByReference session);

public static native NativeSize olm_clear_outbound_group_session(PointerByReference session);

public static native NativeSize olm_pickle_outbound_group_session_length(
Expand Down Expand Up @@ -210,10 +239,16 @@ public static native void olm_get_library_version(

public static native String olm_account_last_error(PointerByReference account);

public static native int olm_account_last_error_code(PointerByReference account);

public static native String olm_session_last_error(PointerByReference session);

public static native int olm_session_last_error_code(PointerByReference session);

public static native String olm_utility_last_error(PointerByReference utility);

public static native int olm_utility_last_error_code(PointerByReference utility);

public static native NativeSize olm_clear_account(PointerByReference account);

public static native NativeSize olm_clear_session(PointerByReference session);
Expand Down Expand Up @@ -409,6 +444,8 @@ public static native NativeSize olm_ed25519_verify(

public static native String olm_pk_encryption_last_error(PointerByReference encryption);

public static native int olm_pk_encryption_last_error_code(PointerByReference encryption);

public static native NativeSize olm_clear_pk_encryption(PointerByReference encryption);

public static native NativeSize olm_pk_encryption_set_recipient_key(
Expand Down Expand Up @@ -442,6 +479,8 @@ public static native NativeSize olm_pk_encrypt(

public static native String olm_pk_decryption_last_error(PointerByReference decryption);

public static native int olm_pk_decryption_last_error_code(PointerByReference decryption);

public static native NativeSize olm_clear_pk_decryption(PointerByReference decryption);

public static native NativeSize olm_pk_private_key_length();
Expand Down Expand Up @@ -503,6 +542,8 @@ public static native NativeSize olm_pk_get_private_key(

public static native String olm_pk_signing_last_error(PointerByReference sign);

public static native int olm_pk_signing_last_error_code(PointerByReference sign);

public static native NativeSize olm_clear_pk_signing(PointerByReference sign);

public static native NativeSize olm_pk_signing_key_from_seed(
Expand Down Expand Up @@ -535,6 +576,8 @@ public static native NativeSize olm_pk_sign(
// olm/sas.h
public static native String olm_sas_last_error(PointerByReference sas);

public static native int olm_sas_last_error_code(PointerByReference sas);

public static native NativeSize olm_sas_size();

public static native OlmSas olm_sas(Pointer memory);
Expand Down