Browse Source

bytearray as parameter for importKey

JNI-88
Volker Birk 6 years ago
parent
commit
d77c52337e
  1. 7
      src/basic_api.cc
  2. 45
      src/gen_java_Engine.ysl2
  3. 2
      src/pEp.yml2
  4. 3
      src/types_java.ysl2

7
src/basic_api.cc

@ -195,20 +195,21 @@ JNIEXPORT void JNICALL Java_org_pEp_jniadapter_Engine_importKey(
jbyteArray key
)
{
char *_key = to_string(env, key);
size_t _size = (size_t) env->GetArrayLength(key);
char *_key = (char *) env->GetByteArrayElements(key, NULL);
if(_key == NULL){
throw_pEp_Exception(env, PEP_OUT_OF_MEMORY);
return;
}
PEP_STATUS status = ::import_key(session(), _key, strlen(_key), NULL);
PEP_STATUS status = ::import_key(session(), _key, _size, NULL);
if (status != PEP_STATUS_OK && status != PEP_KEY_IMPORTED) {
throw_pEp_Exception(env, status);
return;
}
env->ReleaseByteArrayElements(key, (jbyte *) _key, JNI_ABORT);
}
JNIEXPORT void JNICALL Java_org_pEp_jniadapter_Engine_config_1passive_1mode(

45
src/gen_java_Engine.ysl2

@ -29,26 +29,35 @@ tstylesheet {
const "itype" call "toIntermediate" with "type", "@type";
const "jtype" call "toJava" with "type", "@type";
||
private native «$itype» «@name»(`apply "parm/*", mode=basic_iparm`);
public «$jtype» «@name»(`apply "parm/*", mode=basic_parm`) {
||
apply "parm/*", mode=basic_parm_set;
choose {
when "@type = 'void'"
|> «@name»(`apply "parm/*", mode=basic_parm_name`);
when "@type = 'identity'"
|> return new Identity(«@name»(`apply "parm/*", mode=basic_parm_name`));
when "@type = 'bool'"
|> return new Boolean(«@name»(`apply "parm/*", mode=basic_parm_name`));
otherwise
|> return AbstractEngine.toUTF16(«@name»(`apply "parm/*", mode=basic_parm_name`));
}
||
}
when "name(parm/*[1])='bytearray'"
||
public native «$itype» «@name»(`apply "parm/*", mode=basic_iparm`);
||
||
otherwise {
||
private native «$itype» «@name»(`apply "parm/*", mode=basic_iparm`);
public «$jtype» «@name»(`apply "parm/*", mode=basic_parm`) {
||
apply "parm/*", mode=basic_parm_set;
choose {
when "@type = 'void'"
|> «@name»(`apply "parm/*", mode=basic_parm_name`);
when "@type = 'identity'"
|> return new Identity(«@name»(`apply "parm/*", mode=basic_parm_name`));
when "@type = 'bool'"
|> return new Boolean(«@name»(`apply "parm/*", mode=basic_parm_name`));
otherwise
|> return AbstractEngine.toUTF16(«@name»(`apply "parm/*", mode=basic_parm_name`));
}
||
}
||
}
}
}
template "*", mode=basic_parm_name choose {

2
src/pEp.yml2

@ -291,7 +291,7 @@ namespace pEp {
basic void keyResetTrust(identity ident);
basic void trustPersonalKey(identity ident);
basic void trustOwnKey(identity ident);
basic void importKey(string key);
basic void importKey(bytearray key);
basic void blacklist_add(string fpr);
basic void blacklist_delete(string fpr);
basic bool blacklist_is_listed(string fpr);

3
src/types_java.ysl2

@ -15,6 +15,7 @@ function "toJava" {
when "$type='identitylist'" > Vector<Identity>
when "$type='stringlist'" > Vector<String>
when "$type='stringpairlist'" > ArrayList<Pair<String, String>>
when "$type='bytearray'" > byte[]
when "$type='Color'" > Color
when "$type='DecryptFlags'" > DecryptFlags
@ -31,6 +32,7 @@ function "toSig" {
choose {
when "$type='string'" error | # cannot declare "string"
when "$type='bool'" > Z
when "$type='bytearray'" > [b
otherwise {
> L
choose {
@ -65,6 +67,7 @@ function "toIntermediate" {
when "$type='bool'" > boolean
when "$type='int'" > int
when "$type='string' or $type='sstring'" > byte[]
when "$type='bytearray' or $type='sstring'" > byte[]
when "$type='bloblist'" > Vector<_Blob>
when "$type='identity'" > _Identity

Loading…
Cancel
Save