Skip to content
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
141 changes: 90 additions & 51 deletions Cargo.lock

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "pubkycore"
version = "0.3.1"
version = "0.4.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

Expand All @@ -19,7 +19,7 @@ url = "2.5.2"
base64 = "0.22.1"
once_cell = "1.19.0"
reqwest = { version = "0.12.0", default-features = false, features = ["rustls-tls"] }
pubky = "0.9.3"
pubky = "0.10.0"
bip39 = { version = "2.2.0", features = ["rand"] }

# Android-only: pkarr's relay HTTP client (via reqwest 0.13's `rustls` feature) uses
Expand Down
20 changes: 16 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ coordinating a migration across those apps.
- **Public keys are always bare z-base32** (52 chars, no prefix) in every
output: `public_key` fields, the session `pubky` field, `get_homeserver`,
and the `publish`/`publish_https` return values. The underlying
`pubky` crate (0.9.x) renders `PublicKey::to_string()` as
`pubky` crate (0.10.x) renders `PublicKey::to_string()` as
`pubky<z32>`, so all output sites must use `.z32()` instead — pubky's own
storage URL parser rejects `pubky://pubky<z32>/...`, and downstream apps
build `pubky://<key>/...` URLs from these values. Inputs accept either form.
Expand All @@ -22,8 +22,20 @@ coordinating a migration across those apps.
`kind` (`"signin"` or `"signup"`; legacy `pubkyauth:///?...` URLs are
`"signin"`) and, for signup links, optional `homeserver` (bare z32) and
`signup_token` fields.
- **Session secrets** are `<z32-pubkey>:<cookie>`, compatible in both
directions with sessions created on pubky 0.6.0-rc.6.
- **Authentication mirrors pubky 0.10.** Grant auth is exposed through
`sign_up_grant`, `sign_in_grant`, `start_grant_auth_flow`, and
`await_grant_auth_approval`; these return `grant_secret` in session JSON.
The unqualified `sign_up`, `sign_in`, `start_auth_flow`, and
`await_auth_approval` names are Grant aliases for downstream migration.
- **Legacy cookie auth remains available** through `sign_up_cookie`,
`sign_in_cookie`, `start_cookie_auth_flow`, and
`await_cookie_auth_approval`; these return `session_secret` in session JSON.
Cookie auth is deprecated upstream, but it is still exposed here because this
crate is a low-level binding layer.
- **Session-token APIs accept either strategy.** `sign_out`,
`revalidate_session`, `put_with_session`, and `delete_with_session` call
`Pubky::restore_session`, so they accept a Grant `grant_secret` or a legacy
cookie `session_secret`.

## Building the SDK

Expand Down Expand Up @@ -450,4 +462,4 @@ try switchNetwork(useTestnet: false) // For default
// Android
switchNetwork(true) // For testnet
switchNetwork(false) // For default
```
```
Binary file modified bindings/android/jniLibs/arm64-v8a/libpubkycore.so
Binary file not shown.
Binary file modified bindings/android/jniLibs/armeabi-v7a/libpubkycore.so
Binary file not shown.
Binary file modified bindings/android/jniLibs/x86/libpubkycore.so
Binary file not shown.
Binary file modified bindings/android/jniLibs/x86_64/libpubkycore.so
Binary file not shown.
289 changes: 212 additions & 77 deletions bindings/android/pubkycore.kt

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -70,24 +70,30 @@ void uniffi_pubkycore_fn_init_callback_eventlistener(ForeignCallback _Nonnull ca
RustBuffer uniffi_pubkycore_fn_func_auth(RustBuffer url, RustBuffer secret_key, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_await_auth_approval(RustCallStatus *_Nonnull out_status


);
RustBuffer uniffi_pubkycore_fn_func_await_cookie_auth_approval(RustCallStatus *_Nonnull out_status

);
RustBuffer uniffi_pubkycore_fn_func_await_grant_auth_approval(RustCallStatus *_Nonnull out_status

);
RustBuffer uniffi_pubkycore_fn_func_create_recovery_file(RustBuffer secret_key, RustBuffer passphrase, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_decrypt_recovery_file(RustBuffer recovery_file, RustBuffer passphrase, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_delete_file(RustBuffer url, RustBuffer secret_key, RustCallStatus *_Nonnull out_status
RustBuffer uniffi_pubkycore_fn_func_delete_file(RustBuffer url, RustBuffer secret_key, RustBuffer client_id, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_delete_with_session(RustBuffer url, RustBuffer session_secret, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_generate_mnemonic_phrase(RustCallStatus *_Nonnull out_status

);
RustBuffer uniffi_pubkycore_fn_func_generate_mnemonic_phrase_and_keypair(RustCallStatus *_Nonnull out_status

);
RustBuffer uniffi_pubkycore_fn_func_generate_secret_key(RustCallStatus *_Nonnull out_status

);
RustBuffer uniffi_pubkycore_fn_func_get(RustBuffer url, RustCallStatus *_Nonnull out_status
);
Expand All @@ -103,16 +109,18 @@ RustBuffer uniffi_pubkycore_fn_func_mnemonic_phrase_to_keypair(RustBuffer mnemon
);
RustBuffer uniffi_pubkycore_fn_func_parse_auth_url(RustBuffer url, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_parse_deep_link(RustBuffer url, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_publish(RustBuffer record_name, RustBuffer record_content, RustBuffer secret_key, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_publish_https(RustBuffer record_name, RustBuffer target, RustBuffer secret_key, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_put(RustBuffer url, RustBuffer content, RustBuffer secret_key, RustCallStatus *_Nonnull out_status
RustBuffer uniffi_pubkycore_fn_func_put(RustBuffer url, RustBuffer content, RustBuffer secret_key, RustBuffer client_id, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_put_with_session(RustBuffer url, RustBuffer content, RustBuffer session_secret, RustCallStatus *_Nonnull out_status
);
void uniffi_pubkycore_fn_func_remove_event_listener(RustCallStatus *_Nonnull out_status

);
RustBuffer uniffi_pubkycore_fn_func_republish_homeserver(RustBuffer secret_key, RustBuffer homeserver, RustCallStatus *_Nonnull out_status
);
Expand All @@ -124,13 +132,25 @@ RustBuffer uniffi_pubkycore_fn_func_revalidate_session(RustBuffer session_secret
);
void uniffi_pubkycore_fn_func_set_event_listener(uint64_t listener, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_sign_in(RustBuffer secret_key, RustCallStatus *_Nonnull out_status
RustBuffer uniffi_pubkycore_fn_func_sign_in(RustBuffer secret_key, RustBuffer client_id, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_sign_in_cookie(RustBuffer secret_key, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_sign_in_grant(RustBuffer secret_key, RustBuffer client_id, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_sign_out(RustBuffer session_secret, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_sign_up(RustBuffer secret_key, RustBuffer homeserver, RustBuffer signup_token, RustCallStatus *_Nonnull out_status
RustBuffer uniffi_pubkycore_fn_func_sign_up(RustBuffer secret_key, RustBuffer homeserver, RustBuffer signup_token, RustBuffer client_id, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_sign_up_cookie(RustBuffer secret_key, RustBuffer homeserver, RustBuffer signup_token, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_start_auth_flow(RustBuffer capabilities_str, RustCallStatus *_Nonnull out_status
RustBuffer uniffi_pubkycore_fn_func_sign_up_grant(RustBuffer secret_key, RustBuffer homeserver, RustBuffer signup_token, RustBuffer client_id, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_start_auth_flow(RustBuffer capabilities_str, RustBuffer client_id, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_start_cookie_auth_flow(RustBuffer capabilities_str, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_start_grant_auth_flow(RustBuffer capabilities_str, RustBuffer client_id, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_switch_network(int8_t use_testnet, RustCallStatus *_Nonnull out_status
);
Expand Down Expand Up @@ -251,105 +271,132 @@ void ffi_pubkycore_rust_future_free_void(void* _Nonnull handle
void ffi_pubkycore_rust_future_complete_void(void* _Nonnull handle, RustCallStatus *_Nonnull out_status
);
uint16_t uniffi_pubkycore_checksum_func_auth(void

);
uint16_t uniffi_pubkycore_checksum_func_await_auth_approval(void


);
uint16_t uniffi_pubkycore_checksum_func_await_cookie_auth_approval(void

);
uint16_t uniffi_pubkycore_checksum_func_await_grant_auth_approval(void

);
uint16_t uniffi_pubkycore_checksum_func_create_recovery_file(void

);
uint16_t uniffi_pubkycore_checksum_func_decrypt_recovery_file(void

);
uint16_t uniffi_pubkycore_checksum_func_delete_file(void

);
uint16_t uniffi_pubkycore_checksum_func_delete_with_session(void

);
uint16_t uniffi_pubkycore_checksum_func_generate_mnemonic_phrase(void

);
uint16_t uniffi_pubkycore_checksum_func_generate_mnemonic_phrase_and_keypair(void

);
uint16_t uniffi_pubkycore_checksum_func_generate_secret_key(void

);
uint16_t uniffi_pubkycore_checksum_func_get(void

);
uint16_t uniffi_pubkycore_checksum_func_get_homeserver(void

);
uint16_t uniffi_pubkycore_checksum_func_get_public_key_from_secret_key(void

);
uint16_t uniffi_pubkycore_checksum_func_get_signup_token(void

);
uint16_t uniffi_pubkycore_checksum_func_list(void

);
uint16_t uniffi_pubkycore_checksum_func_mnemonic_phrase_to_keypair(void

);
uint16_t uniffi_pubkycore_checksum_func_parse_auth_url(void


);
uint16_t uniffi_pubkycore_checksum_func_parse_deep_link(void

);
uint16_t uniffi_pubkycore_checksum_func_publish(void

);
uint16_t uniffi_pubkycore_checksum_func_publish_https(void

);
uint16_t uniffi_pubkycore_checksum_func_put(void

);
uint16_t uniffi_pubkycore_checksum_func_put_with_session(void

);
uint16_t uniffi_pubkycore_checksum_func_remove_event_listener(void

);
uint16_t uniffi_pubkycore_checksum_func_republish_homeserver(void

);
uint16_t uniffi_pubkycore_checksum_func_resolve(void

);
uint16_t uniffi_pubkycore_checksum_func_resolve_https(void

);
uint16_t uniffi_pubkycore_checksum_func_revalidate_session(void

);
uint16_t uniffi_pubkycore_checksum_func_set_event_listener(void

);
uint16_t uniffi_pubkycore_checksum_func_sign_in(void


);
uint16_t uniffi_pubkycore_checksum_func_sign_in_cookie(void

);
uint16_t uniffi_pubkycore_checksum_func_sign_in_grant(void

);
uint16_t uniffi_pubkycore_checksum_func_sign_out(void

);
uint16_t uniffi_pubkycore_checksum_func_sign_up(void


);
uint16_t uniffi_pubkycore_checksum_func_sign_up_cookie(void

);
uint16_t uniffi_pubkycore_checksum_func_sign_up_grant(void

);
uint16_t uniffi_pubkycore_checksum_func_start_auth_flow(void


);
uint16_t uniffi_pubkycore_checksum_func_start_cookie_auth_flow(void

);
uint16_t uniffi_pubkycore_checksum_func_start_grant_auth_flow(void

);
uint16_t uniffi_pubkycore_checksum_func_switch_network(void

);
uint16_t uniffi_pubkycore_checksum_func_validate_mnemonic_phrase(void

);
uint16_t uniffi_pubkycore_checksum_method_eventlistener_on_event_occurred(void

);
uint32_t ffi_pubkycore_uniffi_contract_version(void

);

Binary file not shown.
Loading