26#include <jau/debug.hpp>
32static const std::string
_cryptoConfigClazzCtorArgs(
"(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V");
35static const std::string
_packHeaderClazzCtorArgs(
"(Ljava/lang/String;JJJLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/cipherpack/CryptoConfig;[BLjava/util/List;ILjava/lang/String;[BZ)V");
38 std::string pk_type_ = jau::jni::getStringFieldValue(env, jccfg,
"pk_type");
39 std::string pk_fingerprt_hash_algo_ = jau::jni::getStringFieldValue(env, jccfg,
"pk_fingerprt_hash_algo");
40 std::string pk_enc_padding_algo_ = jau::jni::getStringFieldValue(env, jccfg,
"pk_enc_padding_algo");
41 std::string pk_enc_hash_algo_ = jau::jni::getStringFieldValue(env, jccfg,
"pk_enc_hash_algo");
42 std::string pk_sign_algo_ = jau::jni::getStringFieldValue(env, jccfg,
"pk_sign_algo");
43 std::string sym_enc_algo_ = jau::jni::getStringFieldValue(env, jccfg,
"sym_enc_algo");
44 size_t sym_enc_nonce_bytes_ = jau::jni::getLongFieldValue(env, jccfg,
"sym_enc_nonce_bytes");
47 pk_fingerprt_hash_algo_,
52 sym_enc_nonce_bytes_);
56 jstring jpk_type = jau::jni::from_string_to_jstring(env, ccfg.
pk_type);
58 jstring jpk_enc_padding_algo = jau::jni::from_string_to_jstring(env, ccfg.
pk_enc_padding_algo);
59 jstring jpk_enc_hash_algo = jau::jni::from_string_to_jstring(env, ccfg.
pk_enc_hash_algo);
60 jstring jpk_sign_algo = jau::jni::from_string_to_jstring(env, ccfg.
pk_sign_algo);
61 jstring jsym_enc_algo = jau::jni::from_string_to_jstring(env, ccfg.
sym_enc_algo);
62 jau::jni::java_exception_check_and_throw(env, E_FILE_LINE);
65 jmethodID cryptoConfigClazzCtor = jau::jni::search_method(env, cryptoConfigClazz,
"<init>",
_cryptoConfigClazzCtorArgs.c_str(),
false);
67 jobject jccfg = env->NewObject(cryptoConfigClazz, cryptoConfigClazzCtor,
68 jpk_type, jpk_fingerprt_hash_algo, jpk_enc_padding_algo, jpk_enc_hash_algo,
70 jau::jni::java_exception_check_and_throw(env, E_FILE_LINE);
72 env->DeleteLocalRef(cryptoConfigClazz);
74 env->DeleteLocalRef(jpk_type);
75 env->DeleteLocalRef(jpk_fingerprt_hash_algo);
76 env->DeleteLocalRef(jpk_enc_padding_algo);
77 env->DeleteLocalRef(jpk_enc_hash_algo);
78 env->DeleteLocalRef(jpk_sign_algo);
79 env->DeleteLocalRef(jsym_enc_algo);
80 jau::jni::java_exception_check_and_throw(env, E_FILE_LINE);
85 jstring jtarget_path = jau::jni::from_string_to_jstring(env, ph.
target_path());
86 jstring jsubject = jau::jni::from_string_to_jstring(env, ph.
subject());
87 jstring jpversion = jau::jni::from_string_to_jstring(env, ph.
plaintext_version());
93 jbyteArray jsender_fprint = jau::jni::convert_bytes_to_jbytearray(env, ph.
sender_fingerprint());
95 jobject jrecevr_fprints = jau::jni::convert_vector_bytes_to_jarraylist(env, recevr_fprints);
96 jstring jplaintext_hash_algo = jau::jni::from_string_to_jstring(env, ph.
plaintext_hash_algo());
97 jbyteArray jplaintext_hash = jau::jni::convert_bytes_to_jbytearray(env, ph.
plaintext_hash());
100 jmethodID packHeaderClazzCtor = jau::jni::search_method(env, packHeaderClazz,
"<init>",
_packHeaderClazzCtorArgs.c_str(),
false);
102 jobject jph = env->NewObject(packHeaderClazz, packHeaderClazzCtor,
108 jpversion, jpversion_parent,
113 jplaintext_hash_algo,
116 jau::jni::java_exception_check_and_throw(env, E_FILE_LINE);
118 env->DeleteLocalRef(packHeaderClazz);
120 env->DeleteLocalRef(jtarget_path);
121 env->DeleteLocalRef(jsubject);
122 env->DeleteLocalRef(jpversion);
123 env->DeleteLocalRef(jpversion_parent);
124 env->DeleteLocalRef(jccfg);
125 env->DeleteLocalRef(jsender_fprint);
126 env->DeleteLocalRef(jrecevr_fprints);
static const std::string _packHeaderClazzCtorArgs("(Ljava/lang/String;JJJLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/cipherpack/CryptoConfig;[BLjava/util/List;ILjava/lang/String;[BZ)V")
static const std::string _cryptoConfigClassName("org/cipherpack/CryptoConfig")
static const std::string _cryptoConfigClazzCtorArgs("(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V")
static const std::string _packHeaderClassName("org/cipherpack/PackHeader")
jobject to_jPackHeader(JNIEnv *env, const cipherpack::PackHeader &ph)
cipherpack::CryptoConfig to_CryptoConfig(JNIEnv *env, jobject jccfg)
jobject to_jCryptoConfig(JNIEnv *env, const cipherpack::CryptoConfig &ccfg)
CryptoConfig, contains crypto algorithms settings given at encryption wired via the Cipherpack Data S...
size_t sym_enc_nonce_bytes
std::string pk_enc_padding_algo
std::string pk_fingerprt_hash_algo
std::string pk_enc_hash_algo