Как написать Cipher.getInstance ("DES");в JNI? - PullRequest
2 голосов
/ 24 октября 2011

Я хотел бы изменить

Cipher cipher = Cipher.getInstance("DES"); 

на код cpp в jni. Как это сделать?

Ответы [ 2 ]

3 голосов
/ 24 октября 2011
JNIEnv *jni; //Comes from somewhere
jclass cl = jni->FindClass("javax/crypto/Cipher");
jmethodID MID = jni->GetStaticMethodID(cl, "getInstance", "(Ljava/lang/String)Ljavax/crypto/Cipher;");
jstring s = jni->NewStringUTF("DES");
jobject cipher = jni->CallStaticObjectMethod(cl, MID, s);

Это исключает обработку ошибок.

1 голос
/ 24 октября 2011

Другой альтернативой может быть использование собственного кода для шифрования, например, OpenSSL.

Обязательное предупреждение: не используйте DES.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...