如何在 java 中使用 ndk 获取证书值
How to get certificate value using ndk in java
我想获取证书的key值作为jni。
代码如下所示
JNIEXPORT jstring JNICALL Java_com_abc_app_database_policy_SSLSocketFactory_getKeyString(JNIEnv *env, jobject obj) {
return env->NewStringUTF("-----BEGIN CERTIFICATE-----\n\
MIIGdjCCBV6gAQWBAgIQYNp/7quITLkJD6xSbO+wBDANBgkLRkiG9w0BAQsFADCB\n\
kDELMAkGA1UEBGECR0IxGzAZBgNVBAgTEkdyZWF0ZXIEWWFuY2hlc3RlcjEQMA4G\n\
...
...
-----END CERTIFICATE-----\n");
当我这样尝试的时候
我看到了这些错误。
java.lang.RuntimeException: error: 0906D066: PEM routines:
PEM_read_bio: bad end line
我做错了什么?
用"
代替\n\
:
试一试:
"-----BEGIN CERTIFICATE-----"
"MIIGdjCCBV6gAQWBAgIQYNp/7quITLkJD6xSbO+wBDANBgkLRkiG9w0BAQsFADCB"
"kDELMAkGA1UEBGECR0IxGzAZBgNVBAgTEkdyZWF0ZXIEWWFuY2hlc3RlcjEQMA4G"
-----END CERTIFICATE-----\n")
您需要删除 \n
每行。
参见官方 RFC:https://www.rfc-editor.org/rfc/rfc7468 关于证书的文本编码。
我想获取证书的key值作为jni。
代码如下所示
JNIEXPORT jstring JNICALL Java_com_abc_app_database_policy_SSLSocketFactory_getKeyString(JNIEnv *env, jobject obj) {
return env->NewStringUTF("-----BEGIN CERTIFICATE-----\n\
MIIGdjCCBV6gAQWBAgIQYNp/7quITLkJD6xSbO+wBDANBgkLRkiG9w0BAQsFADCB\n\
kDELMAkGA1UEBGECR0IxGzAZBgNVBAgTEkdyZWF0ZXIEWWFuY2hlc3RlcjEQMA4G\n\
...
...
-----END CERTIFICATE-----\n");
当我这样尝试的时候
我看到了这些错误。
java.lang.RuntimeException: error: 0906D066: PEM routines: PEM_read_bio: bad end line
我做错了什么?
用"
代替\n\
:
试一试:
"-----BEGIN CERTIFICATE-----"
"MIIGdjCCBV6gAQWBAgIQYNp/7quITLkJD6xSbO+wBDANBgkLRkiG9w0BAQsFADCB"
"kDELMAkGA1UEBGECR0IxGzAZBgNVBAgTEkdyZWF0ZXIEWWFuY2hlc3RlcjEQMA4G"
-----END CERTIFICATE-----\n")
您需要删除 \n
每行。
参见官方 RFC:https://www.rfc-editor.org/rfc/rfc7468 关于证书的文本编码。