+bool\r
+MatrixOlmAccountUnpickle(\r
+ MatrixOlmAccount * account,\r
+ void * pickled, int pickledLen,\r
+ const void * key, int keyLen)\r
+{\r
+ size_t res;\r
+ res = olm_unpickle_account(account->account,\r
+ key, keyLen,\r
+ pickled, pickledLen);\r
+ if (res == olm_error()) {\r
+ printf("error unpickling olm account:%s\n",\r
+ olm_account_last_error(account->account));\r
+ }\r
+ return res != olm_error();\r
+}\r
+\r
+bool\r
+MatrixOlmAccountGetDeviceKey(\r
+ MatrixOlmAccount * account,\r
+ char * key, int keyCap)\r
+{\r
+ static char deviceKeysJson[OLM_IDENTITY_KEYS_JSON_SIZE];\r
+ size_t res =\r
+ olm_account_identity_keys(account->account,\r
+ deviceKeysJson, OLM_IDENTITY_KEYS_JSON_SIZE);\r
+ mjson_get_string(deviceKeysJson, res,\r
+ "$.curve25519",\r
+ key, keyCap);\r
+ return true;\r
+}\r
+\r
+bool\r
+MatrixOlmAccountGetSigningKey(\r
+ MatrixOlmAccount * account,\r
+ char * key, int keyCap)\r
+{\r
+ static char deviceKeysJson[OLM_IDENTITY_KEYS_JSON_SIZE];\r
+ size_t res =\r
+ olm_account_identity_keys(account->account,\r
+ deviceKeysJson, OLM_IDENTITY_KEYS_JSON_SIZE);\r
+ mjson_get_string(deviceKeysJson, res,\r
+ "$.ed25519",\r
+ key, keyCap);\r
+ return true;\r
+}\r
+\r
+// TODO:in/outbound sessions\r