Android デバイスで fips-openssl ライブラリを使用しようとしています。これまでのところ、fips モジュールをビルドし、それに付属するテスト スイートをデバイスで実行することができました。現在、コードの JNI 部分に特定の証明書をロードしようとしています。しかし、アプリケーションはこのエラーで失敗します。
これが失敗するところです。
cbio = BIO_new_mem_buf((void*)thawteCA, -1);
PEM_read_bio_X509(cbio, &cacert, 0, NULL);
fips objectfile ( fipsanister.o ) を使用して独自の共有ライブラリ "libfips.so" を構築し、それを Java クラスにロードしました。
Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1)
android-log の関連セクションを添付しました。私はNDK開発にかなり慣れていません。これに関する指針は、私にとって非常に役立ちます。
F/libc ( 5488): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1)
I/DEBUG ( 91): debuggerd: tmb file path:'/data/tombstones/tombstone_09'
I/DEBUG ( 91): *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 91): Build fingerprint: 'alps/e1808_v75_jbl1/e1808_v75_jbl1:4.0.3/IML74K/1338672019:user/test-keys'
I/DEBUG ( 91): pid: 5488, tid: 5488 >>> com.work.data <<<
I/DEBUG ( 91): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad
I/DEBUG ( 91): r0 deadbaad r1 00000001 r2 40000000 r3 00000000
I/DEBUG ( 91): r4 00000000 r5 00000027 r6 00000004 r7 40049da4
I/DEBUG ( 91): r8 be997678 r9 40049d9c 10 00000000 fp be99764c
I/DEBUG ( 91): ip ffffffff sp be9975f8 lr 40103589 pc 400ffc8c cpsr 60000030
I/DEBUG ( 91): #00 pc 00017c8c /system/lib/libc.so
D/AEE/debuggerd( 91): stack_depth:1
I/DEBUG ( 91): #01 lr 40103589 /system/lib/libc.so
I/DEBUG ( 91):
I/DEBUG ( 91): code around pc:
I/DEBUG ( 91): 400ffc6c 4623b15c 2c006824 e026d1fb b12368db \.#F$h.,..&..h#.
I/DEBUG ( 91): 400ffc7c 21014a17 6011447a 48124798 24002527 .J.!zD.`.G.H'%.$
I/DEBUG ( 91): 400ffc8c f7f47005 2106eca2 ed30f7f5 f04fa901 .p.....!..0...O.
I/DEBUG ( 91): 400ffc9c 460a5380 93032006 94029401 e8faf7f5 .S.F. ..........
I/DEBUG ( 91): 400ffcac 4622a905 f7f52002 f7f4e904 2106ec8e .."F. .........!
I/DEBUG ( 91):
I/DEBUG ( 91): code around lr:
I/DEBUG ( 91): 40103568 41f0e92d 4c0c4680 447c2600 68a56824 -..A.F.L.&|D$h.h
I/DEBUG ( 91): 40103578 e0076867 300cf9b5 dd022b00 47c04628 gh.....0.+..(F.G
I/DEBUG ( 91): 40103588 35544306 37fff117 6824d5f4 d1ee2c00 .CT5...7..$h.,..
I/DEBUG ( 91): 40103598 e8bd4630 bf0081f0 00027f9a 41f0e92d 0F..........-..A
I/DEBUG ( 91): 401035a8 9004b086 f602fb01 460c461f 46154814 .........F.F.H.F
I/DEBUG ( 91):
I/DEBUG ( 91): memory map around addr deadbaad:
I/DEBUG ( 91): be977000-be998000 [stack]
I/DEBUG ( 91): (no map for address)
I/DEBUG ( 91): ffff0000-ffff1000 [vectors]
I/DEBUG ( 91):
I/DEBUG ( 91): stack:
I/DEBUG ( 91): be9975b8 51226ecc /data/data/com.work.data/lib/libfips.so
I/DEBUG ( 91): be9975bc 0151c478 [heap]
I/DEBUG ( 91): be9975c0 40049da4
I/DEBUG ( 91): be9975c4 511b7570 /data/data/com.work.data/lib/libfips.so
I/DEBUG ( 91): be9975c8 4012b74c /system/lib/libc.so
I/DEBUG ( 91): be9975cc 40130850
I/DEBUG ( 91): be9975d0 00000000
I/DEBUG ( 91): be9975d4 40103589 /system/lib/libc.so
I/DEBUG ( 91): be9975d8 00000000
I/DEBUG ( 91): be9975dc be99760c [stack]
I/DEBUG ( 91): be9975e0 00000004
I/DEBUG ( 91): be9975e4 40049da4
I/DEBUG ( 91): be9975e8 be997678 [stack]
I/DEBUG ( 91): be9975ec 401026c9 /system/lib/libc.so
I/DEBUG ( 91): be9975f0 df0027ad
I/DEBUG ( 91): be9975f4 00000000
I/DEBUG ( 91): #00 be9975f8 51246aec /data/data/com.work.data/lib/libfips.so
I/DEBUG ( 91): be9975fc 0150c8c8 [heap]
I/DEBUG ( 91): be997600 51219f68 /data/data/com.work.data/lib/libfips.so
I/DEBUG ( 91): be997604 00000498
I/DEBUG ( 91): be997608 00000004
I/DEBUG ( 91): be99760c fffffbdf
I/DEBUG ( 91): be997610 012c5680 [heap]
I/DEBUG ( 91): be997614 4c1797c0 /dev/ashmem/dalvik-LinearAlloc (deleted)
I/DEBUG ( 91): be997618 012c5680 [heap]
I/DEBUG ( 91): be99761c 511ca4ec /data/data/com.work.data/lib/libfips.so
I/DEBUG ( 91): be997620 4c1797c0 /dev/ashmem/dalvik-LinearAlloc (deleted)
I/DEBUG ( 91): be997624 51195e00 /data/data/com.work.data/lib/libfips.so
I/DEBUG ( 91): be997628 51238970 /data/data/com.work.data/lib/libfips.so
I/DEBUG ( 91): be99762c 0150c848 [heap]
I/DEBUG ( 91): be997630 293d175e
I/DEBUG ( 91): be997634 4c1797c0 /dev/ashmem/dalvik-LinearAlloc (deleted)
I/DEBUG ( 91): be997638 51219888 /data/data/com.work.data/lib/libfips.so
I/DEBUG ( 91): be99763c 51219f68 /data/data/com.work.data/lib/libfips.so