diff --git a/src/codegen/pEp.yml2 b/src/codegen/pEp.yml2 index 13f4965..7ec2584 100644 --- a/src/codegen/pEp.yml2 +++ b/src/codegen/pEp.yml2 @@ -275,7 +275,6 @@ namespace pEp { basic void config_passphrase(string passphrase); basic void config_passphrase_for_new_keys(bool enable, string passphrase); basic bytearray export_key(string fpr); - basic void provision(string url); }; struct message { diff --git a/src/cxx/basic_api.cc b/src/cxx/basic_api.cc index 41729e1..4f9960c 100644 --- a/src/cxx/basic_api.cc +++ b/src/cxx/basic_api.cc @@ -1,11 +1,7 @@ -#include #include #include #include #include -#include -#include - #ifndef ANDROID #include @@ -543,24 +539,5 @@ JNIEXPORT jbyteArray JNICALL Java_foundation_pEp_jniadapter_Engine__1export_1key return from_string(env, buff); } -JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_Engine__1provision(JNIEnv *env, - jobject obj, - jbyteArray url) -{ - const char *_url = to_string(env, url); - - std::cout << "PROVISION: " << _url << std::endl; - - pEp::UpdateClient::product p { "provisioning data", std::string(_url) }; - pEp::UpdateClient::PublicKey update_key; - pEp::UpdateClient::load_key("update_key.der"); - CryptoPP::ed25519PublicKey deployment_key; - SignedPackage::LoadPublicKey("deployment_key-pub.der", deployment_key); - CryptoPP::RSA::PrivateKey provisioning_key; - SignedPackage::LoadPrivateKey("provisioning_key.der", provisioning_key); - SignedPackage::provision_user(p, update_key, deployment_key, provisioning_key); - -} - } // extern "C" diff --git a/src/cxx/foundation_pEp_jniadapter_AbstractEngine.cc b/src/cxx/foundation_pEp_jniadapter_AbstractEngine.cc index 80bcdf0..9574f90 100644 --- a/src/cxx/foundation_pEp_jniadapter_AbstractEngine.cc +++ b/src/cxx/foundation_pEp_jniadapter_AbstractEngine.cc @@ -1,4 +1,7 @@ #include "foundation_pEp_jniadapter_AbstractEngine.h" +#include +#include +#include #include #include #include @@ -289,6 +292,25 @@ JNIEXPORT jboolean JNICALL Java_foundation_pEp_jniadapter_AbstractEngine__1getDe return static_cast(Adapter::pEpLog::get_enabled()); } +JNIEXPORT void JNICALL Java_foundation_pEp_jniadapter_AbstractEngine__1provision(JNIEnv *env, + jclass clazz, + jbyteArray url) +{ + const char *_url = to_string(env, url); + + std::cout << "PROVISION: " << _url << std::endl; + + pEp::UpdateClient::product p { "provisioning data", std::string(_url) }; + pEp::UpdateClient::PublicKey update_key; + pEp::UpdateClient::load_key("update_key.der"); + CryptoPP::ed25519PublicKey deployment_key; + SignedPackage::LoadPublicKey("deployment_key-pub.der", deployment_key); + CryptoPP::RSA::PrivateKey provisioning_key; + SignedPackage::LoadPrivateKey("provisioning_key.der", provisioning_key); + SignedPackage::provision_user(p, update_key, deployment_key, provisioning_key); +} + + JNIEXPORT jstring JNICALL Java_foundation_pEp_jniadapter_AbstractEngine__1getVersion(JNIEnv *env, jobject obj) { diff --git a/src/java/foundation/pEp/jniadapter/AbstractEngine.java b/src/java/foundation/pEp/jniadapter/AbstractEngine.java index 7d160d8..d8f8ba5 100644 --- a/src/java/foundation/pEp/jniadapter/AbstractEngine.java +++ b/src/java/foundation/pEp/jniadapter/AbstractEngine.java @@ -49,6 +49,13 @@ abstract class AbstractEngine extends UniquelyIdentifiable implements AbstractEn private native static boolean _getDebugLogEnabled(); + // CodeGen "basic" + public static void provision(String url) { + byte[] _url = Utils.toUTF8(url); + _provision(_url); + } + + private static native void _provision(byte[] url); public String getVersion() { return _getVersion();