fallback key java bindings
This commit is contained in:
parent
f6309f0281
commit
f647747d27
4 changed files with 45 additions and 2 deletions
|
@ -493,4 +493,22 @@ public class OlmAccount extends CommonSerializeUtils implements Serializable {
|
|||
}
|
||||
|
||||
private native byte[] fallbackKeyJni();
|
||||
|
||||
|
||||
/**
|
||||
* Forget about the old fallback key.
|
||||
*
|
||||
* This should be called once you are reasonably certain that you will not
|
||||
* receive any more messages that use the old fallback key (e.g. 5 minutes
|
||||
* after the new fallback key has been published).
|
||||
**/
|
||||
public void forgetFallbackKey() throws OlmException {
|
||||
try {
|
||||
forgetFallbackKeyJni();
|
||||
} catch (Exception e) {
|
||||
throw new OlmException(OlmException.EXCEPTION_CODE_ACCOUNT_FORGET_FALLBACK_KEY, e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private native void forgetFallbackKeyJni();
|
||||
}
|
||||
|
|
|
@ -37,6 +37,7 @@ public class OlmException extends IOException {
|
|||
public static final int EXCEPTION_CODE_ACCOUNT_SIGN_MESSAGE = 107;
|
||||
public static final int EXCEPTION_CODE_ACCOUNT_GENERATE_FALLBACK_KEY = 108;
|
||||
public static final int EXCEPTION_CODE_ACCOUNT_FALLBACK_KEY = 109;
|
||||
public static final int EXCEPTION_CODE_ACCOUNT_FORGET_FALLBACK_KEY = 110;
|
||||
|
||||
public static final int EXCEPTION_CODE_CREATE_INBOUND_GROUP_SESSION = 200;
|
||||
public static final int EXCEPTION_CODE_INIT_INBOUND_GROUP_SESSION = 201;
|
||||
|
|
|
@ -521,7 +521,7 @@ JNIEXPORT jbyteArray OLM_ACCOUNT_FUNC_DEF(fallbackKeyJni)(JNIEnv *env, jobject t
|
|||
else
|
||||
{
|
||||
// keys memory allocation
|
||||
size_t keysLength = olm_account_fallback_key_length(accountPtr);
|
||||
size_t keysLength = olm_account_unpublished_fallback_key_length(accountPtr);
|
||||
uint8_t *keysBytesPtr = (uint8_t *)malloc(keysLength*sizeof(uint8_t));
|
||||
|
||||
if (!keysBytesPtr)
|
||||
|
@ -532,7 +532,7 @@ JNIEXPORT jbyteArray OLM_ACCOUNT_FUNC_DEF(fallbackKeyJni)(JNIEnv *env, jobject t
|
|||
else
|
||||
{
|
||||
// retrieve key pairs in keysBytesPtr
|
||||
size_t keysResult = olm_account_fallback_key(accountPtr, keysBytesPtr, keysLength);
|
||||
size_t keysResult = olm_account_unpublished_fallback_key(accountPtr, keysBytesPtr, keysLength);
|
||||
|
||||
if (keysResult == olm_error()) {
|
||||
LOGE("## fallbackKeyJni(): failure - error getting fallback key Msg=%s",(const char *)olm_account_last_error(accountPtr));
|
||||
|
@ -567,6 +567,29 @@ JNIEXPORT jbyteArray OLM_ACCOUNT_FUNC_DEF(fallbackKeyJni)(JNIEnv *env, jobject t
|
|||
return byteArrayRetValue;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Forget about the old fallback key.
|
||||
*
|
||||
* This should be called once you are reasonably certain that you will not
|
||||
* receive any more messages that use the old fallback key (e.g. 5 minutes
|
||||
* after the new fallback key has been published).
|
||||
**/
|
||||
JNIEXPORT void OLM_ACCOUNT_FUNC_DEF(forgetFallbackKeyJni)(JNIEnv *env, jobject thiz)
|
||||
{
|
||||
OlmAccount *accountPtr = getAccountInstanceId(env, thiz);
|
||||
|
||||
if (!accountPtr)
|
||||
{
|
||||
LOGE("## forgetFallbackKeyJni(): failure - invalid Account ptr");
|
||||
errorMessage = "invalid Account ptr";
|
||||
}
|
||||
else
|
||||
{
|
||||
olm_account_forget_old_fallback_key(accountPtr)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sign a message with the ed25519 key (fingerprint) for this account.<br>
|
||||
* The signed message is returned by the function.
|
||||
|
|
|
@ -45,6 +45,7 @@ JNIEXPORT void OLM_ACCOUNT_FUNC_DEF(markOneTimeKeysAsPublishedJni)(JNIEnv *env,
|
|||
// fallback keys
|
||||
JNIEXPORT void OLM_ACCOUNT_FUNC_DEF(generateFallbackKeyJni)(JNIEnv *env, jobject thiz);
|
||||
JNIEXPORT jbyteArray OLM_ACCOUNT_FUNC_DEF(fallbackKeyJni)(JNIEnv *env, jobject thiz);
|
||||
JNIEXPORT void OLM_ACCOUNT_FUNC_DEF(forgetFallbackKeyJni)(JNIEnv *env, jobject thiz);
|
||||
|
||||
// signing
|
||||
JNIEXPORT jbyteArray OLM_ACCOUNT_FUNC_DEF(signMessageJni)(JNIEnv *env, jobject thiz, jbyteArray aMessage);
|
||||
|
|
Loading…
Reference in a new issue