[Feature][ZXW-65]merged P49 base code
Change-Id: I3e09c0c3d47483bc645f02310380ecb7fc6f4041
diff --git a/ap/lib/liblpa/libes10.a b/ap/lib/liblpa/libes10.a
index 0b47108..9a8cfa2 100644
--- a/ap/lib/liblpa/libes10.a
+++ b/ap/lib/liblpa/libes10.a
Binary files differ
diff --git a/ap/lib/libnvram/libnvram.a b/ap/lib/libnvram/libnvram.a
index 41560ba..8b03ef5 100644
--- a/ap/lib/libnvram/libnvram.a
+++ b/ap/lib/libnvram/libnvram.a
Binary files differ
diff --git a/ap/lib/libnvram/libnvram.so b/ap/lib/libnvram/libnvram.so
index 2c0325b..d0b2256 100755
--- a/ap/lib/libnvram/libnvram.so
+++ b/ap/lib/libnvram/libnvram.so
Binary files differ
diff --git a/ap/lib/libnvram/libnvram_sc.a b/ap/lib/libnvram/libnvram_sc.a
index b37ddd2..dccc20e 100644
--- a/ap/lib/libnvram/libnvram_sc.a
+++ b/ap/lib/libnvram/libnvram_sc.a
Binary files differ
diff --git a/ap/lib/libnvram/libnvram_sc.so b/ap/lib/libnvram/libnvram_sc.so
index 27f79e2..8ecc19a 100755
--- a/ap/lib/libnvram/libnvram_sc.so
+++ b/ap/lib/libnvram/libnvram_sc.so
Binary files differ
diff --git a/ap/lib/libps/220A1_all/amt/amt.a b/ap/lib/libps/220A1_all/amt/amt.a
index f6caacb..a72a44d 100644
--- a/ap/lib/libps/220A1_all/amt/amt.a
+++ b/ap/lib/libps/220A1_all/amt/amt.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/appstart/appstart.a b/ap/lib/libps/220A1_all/appstart/appstart.a
index a00fbb8..c6b5f83 100644
--- a/ap/lib/libps/220A1_all/appstart/appstart.a
+++ b/ap/lib/libps/220A1_all/appstart/appstart.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/appstart/appstart.o b/ap/lib/libps/220A1_all/appstart/appstart.o
index 72ad9b2..dda4862 100644
--- a/ap/lib/libps/220A1_all/appstart/appstart.o
+++ b/ap/lib/libps/220A1_all/appstart/appstart.o
Binary files differ
diff --git a/ap/lib/libps/220A1_all/drv/amr.a b/ap/lib/libps/220A1_all/drv/amr.a
index 0622ef8..e7b414e 100644
--- a/ap/lib/libps/220A1_all/drv/amr.a
+++ b/ap/lib/libps/220A1_all/drv/amr.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/drv/audio_base.a b/ap/lib/libps/220A1_all/drv/audio_base.a
index 8805c80..08ce164 100644
--- a/ap/lib/libps/220A1_all/drv/audio_base.a
+++ b/ap/lib/libps/220A1_all/drv/audio_base.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/drv/chip.a b/ap/lib/libps/220A1_all/drv/chip.a
index ea2b416..101d125 100644
--- a/ap/lib/libps/220A1_all/drv/chip.a
+++ b/ap/lib/libps/220A1_all/drv/chip.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/drv/drv_sdk.a b/ap/lib/libps/220A1_all/drv/drv_sdk.a
index 5bc884d..381de36 100644
--- a/ap/lib/libps/220A1_all/drv/drv_sdk.a
+++ b/ap/lib/libps/220A1_all/drv/drv_sdk.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/drv/public.a b/ap/lib/libps/220A1_all/drv/public.a
index 17c61e5..2f0624c 100644
--- a/ap/lib/libps/220A1_all/drv/public.a
+++ b/ap/lib/libps/220A1_all/drv/public.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/drv/webrtc.a b/ap/lib/libps/220A1_all/drv/webrtc.a
index fa18ada..730102b 100644
--- a/ap/lib/libps/220A1_all/drv/webrtc.a
+++ b/ap/lib/libps/220A1_all/drv/webrtc.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/gsml1/dwddrv.a b/ap/lib/libps/220A1_all/gsml1/dwddrv.a
index ee86db0..3d0482f 100644
--- a/ap/lib/libps/220A1_all/gsml1/dwddrv.a
+++ b/ap/lib/libps/220A1_all/gsml1/dwddrv.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/gsml1/l1g.a b/ap/lib/libps/220A1_all/gsml1/l1g.a
index 6a9cb35..f7cb49d 100644
--- a/ap/lib/libps/220A1_all/gsml1/l1g.a
+++ b/ap/lib/libps/220A1_all/gsml1/l1g.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/phy/phy.a b/ap/lib/libps/220A1_all/phy/phy.a
index 7b8097e..687865d 100644
--- a/ap/lib/libps/220A1_all/phy/phy.a
+++ b/ap/lib/libps/220A1_all/phy/phy.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_osa_linux.a b/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_osa_linux.a
index ea713b1..28e7bd3 100644
--- a/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_osa_linux.a
+++ b/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_osa_linux.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_psm.a b/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_psm.a
index 99228b1..a04d194 100644
--- a/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_psm.a
+++ b/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_psm.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_sup.a b/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_sup.a
index 46120f8..96b09b7 100644
--- a/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_sup.a
+++ b/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_sup.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/plat/plat_osa_linux.a b/ap/lib/libps/220A1_all/plat/plat_osa_linux.a
index ea713b1..28e7bd3 100644
--- a/ap/lib/libps/220A1_all/plat/plat_osa_linux.a
+++ b/ap/lib/libps/220A1_all/plat/plat_osa_linux.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/plat/plat_psm.a b/ap/lib/libps/220A1_all/plat/plat_psm.a
index 99228b1..a04d194 100644
--- a/ap/lib/libps/220A1_all/plat/plat_psm.a
+++ b/ap/lib/libps/220A1_all/plat/plat_psm.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/plat/plat_sup.a b/ap/lib/libps/220A1_all/plat/plat_sup.a
index 46120f8..96b09b7 100644
--- a/ap/lib/libps/220A1_all/plat/plat_sup.a
+++ b/ap/lib/libps/220A1_all/plat/plat_sup.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/as_com.a b/ap/lib/libps/220A1_all/ps/as_com.a
index db2c130..93112c1 100644
--- a/ap/lib/libps/220A1_all/ps/as_com.a
+++ b/ap/lib/libps/220A1_all/ps/as_com.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/as_gsm.a b/ap/lib/libps/220A1_all/ps/as_gsm.a
index ac6656e..0a42fbf 100644
--- a/ap/lib/libps/220A1_all/ps/as_gsm.a
+++ b/ap/lib/libps/220A1_all/ps/as_gsm.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/ati.a b/ap/lib/libps/220A1_all/ps/ati.a
index f7e0287..8de2d15 100644
--- a/ap/lib/libps/220A1_all/ps/ati.a
+++ b/ap/lib/libps/220A1_all/ps/ati.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/com.a b/ap/lib/libps/220A1_all/ps/com.a
index 5458540..f06073c 100644
--- a/ap/lib/libps/220A1_all/ps/com.a
+++ b/ap/lib/libps/220A1_all/ps/com.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/el2_up.a b/ap/lib/libps/220A1_all/ps/el2_up.a
index 4768b9d..447b2d9 100644
--- a/ap/lib/libps/220A1_all/ps/el2_up.a
+++ b/ap/lib/libps/220A1_all/ps/el2_up.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/eudbg.a b/ap/lib/libps/220A1_all/ps/eudbg.a
index d572130..a6f05e4 100644
--- a/ap/lib/libps/220A1_all/ps/eudbg.a
+++ b/ap/lib/libps/220A1_all/ps/eudbg.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/eurrc.a b/ap/lib/libps/220A1_all/ps/eurrc.a
index f81c062..961ba35 100644
--- a/ap/lib/libps/220A1_all/ps/eurrc.a
+++ b/ap/lib/libps/220A1_all/ps/eurrc.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/l1e.a b/ap/lib/libps/220A1_all/ps/l1e.a
index ea5b4b9..abbc330 100644
--- a/ap/lib/libps/220A1_all/ps/l1e.a
+++ b/ap/lib/libps/220A1_all/ps/l1e.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/nas.a b/ap/lib/libps/220A1_all/ps/nas.a
index 359e324..0641d5d 100644
--- a/ap/lib/libps/220A1_all/ps/nas.a
+++ b/ap/lib/libps/220A1_all/ps/nas.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/ul1t.a b/ap/lib/libps/220A1_all/ps/ul1t.a
index 942fee6..4f704c7 100644
--- a/ap/lib/libps/220A1_all/ps/ul1t.a
+++ b/ap/lib/libps/220A1_all/ps/ul1t.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/ul2_up.a b/ap/lib/libps/220A1_all/ps/ul2_up.a
index 47efe8f..f73a6ef 100644
--- a/ap/lib/libps/220A1_all/ps/ul2_up.a
+++ b/ap/lib/libps/220A1_all/ps/ul2_up.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/urrc.a b/ap/lib/libps/220A1_all/ps/urrc.a
index 68c6061..4317c48 100644
--- a/ap/lib/libps/220A1_all/ps/urrc.a
+++ b/ap/lib/libps/220A1_all/ps/urrc.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/wl1w.a b/ap/lib/libps/220A1_all/ps/wl1w.a
index be3964f..40232b0 100644
--- a/ap/lib/libps/220A1_all/ps/wl1w.a
+++ b/ap/lib/libps/220A1_all/ps/wl1w.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/wl2_up.a b/ap/lib/libps/220A1_all/ps/wl2_up.a
index 63ec98d..6c0f90a 100644
--- a/ap/lib/libps/220A1_all/ps/wl2_up.a
+++ b/ap/lib/libps/220A1_all/ps/wl2_up.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/psbase/base.a b/ap/lib/libps/220A1_all/psbase/base.a
index f266f65..ff3d5fe 100644
--- a/ap/lib/libps/220A1_all/psbase/base.a
+++ b/ap/lib/libps/220A1_all/psbase/base.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ref/com.a b/ap/lib/libps/220A1_all/ref/com.a
index fe03e6d..0f0991e 100644
--- a/ap/lib/libps/220A1_all/ref/com.a
+++ b/ap/lib/libps/220A1_all/ref/com.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ref/ref_drv.a b/ap/lib/libps/220A1_all/ref/ref_drv.a
index f7706d9..d57feb2 100644
--- a/ap/lib/libps/220A1_all/ref/ref_drv.a
+++ b/ap/lib/libps/220A1_all/ref/ref_drv.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/tools/tools.a b/ap/lib/libps/220A1_all/tools/tools.a
index 46c2304..23c1f4f 100644
--- a/ap/lib/libps/220A1_all/tools/tools.a
+++ b/ap/lib/libps/220A1_all/tools/tools.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/usat/usat.a b/ap/lib/libps/220A1_all/usat/usat.a
index ce3444e..1c4736e 100644
--- a/ap/lib/libps/220A1_all/usat/usat.a
+++ b/ap/lib/libps/220A1_all/usat/usat.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/amt/amt.a b/ap/lib/libps/220A1_vehicle_dc/amt/amt.a
index 84cd78d..2f30ca3 100644
--- a/ap/lib/libps/220A1_vehicle_dc/amt/amt.a
+++ b/ap/lib/libps/220A1_vehicle_dc/amt/amt.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/appstart/appstart.a b/ap/lib/libps/220A1_vehicle_dc/appstart/appstart.a
index 54cd910..88dbfdb 100644
--- a/ap/lib/libps/220A1_vehicle_dc/appstart/appstart.a
+++ b/ap/lib/libps/220A1_vehicle_dc/appstart/appstart.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/appstart/appstart.o b/ap/lib/libps/220A1_vehicle_dc/appstart/appstart.o
index 5ff6cef..f12e576 100644
--- a/ap/lib/libps/220A1_vehicle_dc/appstart/appstart.o
+++ b/ap/lib/libps/220A1_vehicle_dc/appstart/appstart.o
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/drv/amr.a b/ap/lib/libps/220A1_vehicle_dc/drv/amr.a
index fb294e6..0af6537 100644
--- a/ap/lib/libps/220A1_vehicle_dc/drv/amr.a
+++ b/ap/lib/libps/220A1_vehicle_dc/drv/amr.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/drv/audio_base.a b/ap/lib/libps/220A1_vehicle_dc/drv/audio_base.a
index 29b01db..9ff41be 100644
--- a/ap/lib/libps/220A1_vehicle_dc/drv/audio_base.a
+++ b/ap/lib/libps/220A1_vehicle_dc/drv/audio_base.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/drv/chip.a b/ap/lib/libps/220A1_vehicle_dc/drv/chip.a
index 273fe4b..c36f8ec 100644
--- a/ap/lib/libps/220A1_vehicle_dc/drv/chip.a
+++ b/ap/lib/libps/220A1_vehicle_dc/drv/chip.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/drv/drv_sdk.a b/ap/lib/libps/220A1_vehicle_dc/drv/drv_sdk.a
index f99861a..58ec015 100644
--- a/ap/lib/libps/220A1_vehicle_dc/drv/drv_sdk.a
+++ b/ap/lib/libps/220A1_vehicle_dc/drv/drv_sdk.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/drv/public.a b/ap/lib/libps/220A1_vehicle_dc/drv/public.a
index 5532b38..af53222 100644
--- a/ap/lib/libps/220A1_vehicle_dc/drv/public.a
+++ b/ap/lib/libps/220A1_vehicle_dc/drv/public.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/drv/webrtc.a b/ap/lib/libps/220A1_vehicle_dc/drv/webrtc.a
index cfff397..34d2701 100644
--- a/ap/lib/libps/220A1_vehicle_dc/drv/webrtc.a
+++ b/ap/lib/libps/220A1_vehicle_dc/drv/webrtc.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/gsml1/dwddrv.a b/ap/lib/libps/220A1_vehicle_dc/gsml1/dwddrv.a
index 3120415..769c575 100644
--- a/ap/lib/libps/220A1_vehicle_dc/gsml1/dwddrv.a
+++ b/ap/lib/libps/220A1_vehicle_dc/gsml1/dwddrv.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/gsml1/l1g.a b/ap/lib/libps/220A1_vehicle_dc/gsml1/l1g.a
index be6decb..ce59df1 100644
--- a/ap/lib/libps/220A1_vehicle_dc/gsml1/l1g.a
+++ b/ap/lib/libps/220A1_vehicle_dc/gsml1/l1g.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/optee/optee_crypto.a b/ap/lib/libps/220A1_vehicle_dc/optee/optee_crypto.a
index 58da128..d13f97f 100644
--- a/ap/lib/libps/220A1_vehicle_dc/optee/optee_crypto.a
+++ b/ap/lib/libps/220A1_vehicle_dc/optee/optee_crypto.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/optee/optee_mbedtls.a b/ap/lib/libps/220A1_vehicle_dc/optee/optee_mbedtls.a
index c5b1b85..2eb5ef6 100644
--- a/ap/lib/libps/220A1_vehicle_dc/optee/optee_mbedtls.a
+++ b/ap/lib/libps/220A1_vehicle_dc/optee/optee_mbedtls.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/optee/optee_ta.a b/ap/lib/libps/220A1_vehicle_dc/optee/optee_ta.a
index 3f3b602..50970bb 100644
--- a/ap/lib/libps/220A1_vehicle_dc/optee/optee_ta.a
+++ b/ap/lib/libps/220A1_vehicle_dc/optee/optee_ta.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/optee/optee_tee.a b/ap/lib/libps/220A1_vehicle_dc/optee/optee_tee.a
index 23351a2..360cda4 100644
--- a/ap/lib/libps/220A1_vehicle_dc/optee/optee_tee.a
+++ b/ap/lib/libps/220A1_vehicle_dc/optee/optee_tee.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/optee/optee_tomcrypt.a b/ap/lib/libps/220A1_vehicle_dc/optee/optee_tomcrypt.a
index cd12b4d..ed7d2b9 100644
--- a/ap/lib/libps/220A1_vehicle_dc/optee/optee_tomcrypt.a
+++ b/ap/lib/libps/220A1_vehicle_dc/optee/optee_tomcrypt.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/optee/optee_utee.a b/ap/lib/libps/220A1_vehicle_dc/optee/optee_utee.a
index 843f9ad..41438d5 100644
--- a/ap/lib/libps/220A1_vehicle_dc/optee/optee_utee.a
+++ b/ap/lib/libps/220A1_vehicle_dc/optee/optee_utee.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/optee/optee_utils.a b/ap/lib/libps/220A1_vehicle_dc/optee/optee_utils.a
index b0b9f29..d4a9257 100644
--- a/ap/lib/libps/220A1_vehicle_dc/optee/optee_utils.a
+++ b/ap/lib/libps/220A1_vehicle_dc/optee/optee_utils.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/phy/phy.a b/ap/lib/libps/220A1_vehicle_dc/phy/phy.a
index 2a5a990..bd965ab 100644
--- a/ap/lib/libps/220A1_vehicle_dc/phy/phy.a
+++ b/ap/lib/libps/220A1_vehicle_dc/phy/phy.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_osa_linux.a b/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_osa_linux.a
index b6d7df2..32e522a 100644
--- a/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_osa_linux.a
+++ b/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_osa_linux.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_psm.a b/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_psm.a
index 0efbccb..202a1d5 100644
--- a/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_psm.a
+++ b/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_psm.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_sup.a b/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_sup.a
index 257cca0..1a5542e 100644
--- a/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_sup.a
+++ b/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_sup.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/plat/plat_osa_linux.a b/ap/lib/libps/220A1_vehicle_dc/plat/plat_osa_linux.a
index b6d7df2..32e522a 100644
--- a/ap/lib/libps/220A1_vehicle_dc/plat/plat_osa_linux.a
+++ b/ap/lib/libps/220A1_vehicle_dc/plat/plat_osa_linux.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/plat/plat_psm.a b/ap/lib/libps/220A1_vehicle_dc/plat/plat_psm.a
index 0efbccb..202a1d5 100644
--- a/ap/lib/libps/220A1_vehicle_dc/plat/plat_psm.a
+++ b/ap/lib/libps/220A1_vehicle_dc/plat/plat_psm.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/plat/plat_sup.a b/ap/lib/libps/220A1_vehicle_dc/plat/plat_sup.a
index 257cca0..1a5542e 100644
--- a/ap/lib/libps/220A1_vehicle_dc/plat/plat_sup.a
+++ b/ap/lib/libps/220A1_vehicle_dc/plat/plat_sup.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/as_com.a b/ap/lib/libps/220A1_vehicle_dc/ps/as_com.a
index db3b5c7..7c69278 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/as_com.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/as_com.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/as_gsm.a b/ap/lib/libps/220A1_vehicle_dc/ps/as_gsm.a
index 7caad11..82d737f 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/as_gsm.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/as_gsm.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/ati.a b/ap/lib/libps/220A1_vehicle_dc/ps/ati.a
index 5b20b5d..a05203d 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/ati.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/ati.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/com.a b/ap/lib/libps/220A1_vehicle_dc/ps/com.a
index 9355aa9..794ec68 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/com.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/com.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/el2_up.a b/ap/lib/libps/220A1_vehicle_dc/ps/el2_up.a
index c61b12a..24048ae 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/el2_up.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/el2_up.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/eudbg.a b/ap/lib/libps/220A1_vehicle_dc/ps/eudbg.a
index dad6901..f6c40ab 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/eudbg.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/eudbg.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/eurrc.a b/ap/lib/libps/220A1_vehicle_dc/ps/eurrc.a
index a30e758..1f7d1eb 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/eurrc.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/eurrc.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/l1e.a b/ap/lib/libps/220A1_vehicle_dc/ps/l1e.a
index 7b3a6f1..bd764d3 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/l1e.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/l1e.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/nas.a b/ap/lib/libps/220A1_vehicle_dc/ps/nas.a
index 870ff76..673ccff 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/nas.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/nas.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/ul1t.a b/ap/lib/libps/220A1_vehicle_dc/ps/ul1t.a
index 47fdecc..15fb1b7 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/ul1t.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/ul1t.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/ul2_up.a b/ap/lib/libps/220A1_vehicle_dc/ps/ul2_up.a
index 3de3f9e..0527699 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/ul2_up.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/ul2_up.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/urrc.a b/ap/lib/libps/220A1_vehicle_dc/ps/urrc.a
index e4df089..91efec1 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/urrc.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/urrc.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/wl1w.a b/ap/lib/libps/220A1_vehicle_dc/ps/wl1w.a
index bac80c8..045bfd7 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/wl1w.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/wl1w.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/wl2_up.a b/ap/lib/libps/220A1_vehicle_dc/ps/wl2_up.a
index bdd6ab4..7d17b79 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/wl2_up.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/wl2_up.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/psbase/base.a b/ap/lib/libps/220A1_vehicle_dc/psbase/base.a
index d0a4e02..c60a1a3 100644
--- a/ap/lib/libps/220A1_vehicle_dc/psbase/base.a
+++ b/ap/lib/libps/220A1_vehicle_dc/psbase/base.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ref/com.a b/ap/lib/libps/220A1_vehicle_dc/ref/com.a
index 0d10194..cd8bdef 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ref/com.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ref/com.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ref/ref_drv.a b/ap/lib/libps/220A1_vehicle_dc/ref/ref_drv.a
index 5fd74e3..6ba5079 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ref/ref_drv.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ref/ref_drv.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/tools/tools.a b/ap/lib/libps/220A1_vehicle_dc/tools/tools.a
index 3ed7a85..cdc5237 100644
--- a/ap/lib/libps/220A1_vehicle_dc/tools/tools.a
+++ b/ap/lib/libps/220A1_vehicle_dc/tools/tools.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/usat/usat.a b/ap/lib/libps/220A1_vehicle_dc/usat/usat.a
index af46dfc..d54efab 100644
--- a/ap/lib/libps/220A1_vehicle_dc/usat/usat.a
+++ b/ap/lib/libps/220A1_vehicle_dc/usat/usat.a
Binary files differ
diff --git a/ap/lib/libsoft_timer/libsoft_timer.a b/ap/lib/libsoft_timer/libsoft_timer.a
index 35fb679..bb8b66a 100644
--- a/ap/lib/libsoft_timer/libsoft_timer.a
+++ b/ap/lib/libsoft_timer/libsoft_timer.a
Binary files differ
diff --git a/ap/lib/libsoft_timer/libsoft_timer.so b/ap/lib/libsoft_timer/libsoft_timer.so
index 95dbf22..846fb66 100755
--- a/ap/lib/libsoft_timer/libsoft_timer.so
+++ b/ap/lib/libsoft_timer/libsoft_timer.so
Binary files differ
diff --git a/ap/lib/libsoft_timer/libsoft_timer_sc.a b/ap/lib/libsoft_timer/libsoft_timer_sc.a
index 7016a73..183103e 100644
--- a/ap/lib/libsoft_timer/libsoft_timer_sc.a
+++ b/ap/lib/libsoft_timer/libsoft_timer_sc.a
Binary files differ
diff --git a/ap/lib/libsoft_timer/libsoft_timer_sc.so b/ap/lib/libsoft_timer/libsoft_timer_sc.so
index 8a9d759..f1950b4 100755
--- a/ap/lib/libsoft_timer/libsoft_timer_sc.so
+++ b/ap/lib/libsoft_timer/libsoft_timer_sc.so
Binary files differ
diff --git a/ap/lib/libssl/openssl-1.1.1o/CHANGES b/ap/lib/libssl/openssl-1.1.1o/CHANGES
index 1e2d651..8945260 100644
--- a/ap/lib/libssl/openssl-1.1.1o/CHANGES
+++ b/ap/lib/libssl/openssl-1.1.1o/CHANGES
@@ -7,6 +7,64 @@
https://github.com/openssl/openssl/commits/ and pick the appropriate
release branch.
+ Changes between 1.1.1t and 1.1.1u [30 May 2023]
+
+ *) Mitigate for the time it takes for `OBJ_obj2txt` to translate gigantic
+ OBJECT IDENTIFIER sub-identifiers to canonical numeric text form.
+
+ OBJ_obj2txt() would translate any size OBJECT IDENTIFIER to canonical
+ numeric text form. For gigantic sub-identifiers, this would take a very
+ long time, the time complexity being O(n^2) where n is the size of that
+ sub-identifier. (CVE-2023-2650)
+
+ To mitigitate this, `OBJ_obj2txt()` will only translate an OBJECT
+ IDENTIFIER to canonical numeric text form if the size of that OBJECT
+ IDENTIFIER is 586 bytes or less, and fail otherwise.
+
+ The basis for this restriction is RFC 2578 (STD 58), section 3.5. OBJECT
+ IDENTIFIER values, which stipulates that OBJECT IDENTIFIERS may have at
+ most 128 sub-identifiers, and that the maximum value that each sub-
+ identifier may have is 2^32-1 (4294967295 decimal).
+
+ For each byte of every sub-identifier, only the 7 lower bits are part of
+ the value, so the maximum amount of bytes that an OBJECT IDENTIFIER with
+ these restrictions may occupy is 32 * 128 / 7, which is approximately 586
+ bytes.
+
+ Ref: https://datatracker.ietf.org/doc/html/rfc2578#section-3.5
+
+ [Richard Levitte]
+
+ *) Reworked the Fix for the Timing Oracle in RSA Decryption (CVE-2022-4304).
+ The previous fix for this timing side channel turned out to cause
+ a severe 2-3x performance regression in the typical use case
+ compared to 1.1.1s. The new fix uses existing constant time
+ code paths, and restores the previous performance level while
+ fully eliminating all existing timing side channels.
+ The fix was developed by Bernd Edlinger with testing support
+ by Hubert Kario.
+ [Bernd Edlinger]
+
+ *) Corrected documentation of X509_VERIFY_PARAM_add0_policy() to mention
+ that it does not enable policy checking. Thanks to
+ David Benjamin for discovering this issue. (CVE-2023-0466)
+ [Tomas Mraz]
+
+ *) Fixed an issue where invalid certificate policies in leaf certificates are
+ silently ignored by OpenSSL and other certificate policy checks are skipped
+ for that certificate. A malicious CA could use this to deliberately assert
+ invalid certificate policies in order to circumvent policy checking on the
+ certificate altogether. (CVE-2023-0465)
+ [Matt Caswell]
+
+ *) Limited the number of nodes created in a policy tree to mitigate
+ against CVE-2023-0464. The default limit is set to 1000 nodes, which
+ should be sufficient for most installations. If required, the limit
+ can be adjusted by setting the OPENSSL_POLICY_TREE_NODES_MAX build
+ time define to a desired maximum number of nodes or zero to allow
+ unlimited growth. (CVE-2023-0464)
+ [Paul Dale]
+
Changes between 1.1.1s and 1.1.1t [7 Feb 2023]
*) Fixed X.400 address type confusion in X.509 GeneralName.
diff --git a/ap/lib/libssl/openssl-1.1.1o/Configurations/descrip.mms.tmpl b/ap/lib/libssl/openssl-1.1.1o/Configurations/descrip.mms.tmpl
index e1aecfa..1685941 100644
--- a/ap/lib/libssl/openssl-1.1.1o/Configurations/descrip.mms.tmpl
+++ b/ap/lib/libssl/openssl-1.1.1o/Configurations/descrip.mms.tmpl
@@ -13,6 +13,8 @@
our $sover_dirname = sprintf "%02d%02d", split(/\./, $config{shlib_version_number});
our $osslver = sprintf "%02d%02d", split(/\./, $config{version});
+ our $shlibvariant = $target{shlib_variant} || "";
+
our $sourcedir = $config{sourcedir};
our $builddir = $config{builddir};
sub sourcefile {
@@ -47,13 +49,13 @@
map { (my $x = $_) =~ s/\.a$//; $x }
@{$unified_info{libraries}};
our @shlibs =
- map { $unified_info{sharednames}->{$_} || () }
+ map { $unified_info{sharednames}->{$_}.$shlibvariant || () }
grep(!/\.a$/, @{$unified_info{libraries}});
our @install_libs =
map { (my $x = $_) =~ s/\.a$//; $x }
@{$unified_info{install}->{libraries}};
our @install_shlibs =
- map { $unified_info{sharednames}->{$_} || () }
+ map { $unified_info{sharednames}->{$_}.$shlibvariant || () }
grep(!/\.a$/, @{$unified_info{install}->{libraries}});
# This is a horrible hack, but is needed because recursive inclusion of files
@@ -695,7 +697,7 @@
}
return map { $_ =~ /\.a$/
? $`.".OLB"
- : $unified_info{sharednames}->{$_}.".EXE" } @_;
+ : $unified_info{sharednames}->{$_}.$shlibvariant.".EXE" } @_;
}
# Helper function to deal with inclusion directory specs.
@@ -912,7 +914,7 @@
sub libobj2shlib {
my %args = @_;
my $lib = $args{lib};
- my $shlib = $args{shlib};
+ my $shlib = $args{shlib}.$shlibvariant;
my $libd = dirname($lib);
my $libn = basename($lib);
my @objs = map { (my $x = $_) =~ s|\.o$|.OBJ|; $x }
diff --git a/ap/lib/libssl/openssl-1.1.1o/Configurations/windows-makefile.tmpl b/ap/lib/libssl/openssl-1.1.1o/Configurations/windows-makefile.tmpl
index 13716e0..f7a6652 100644
--- a/ap/lib/libssl/openssl-1.1.1o/Configurations/windows-makefile.tmpl
+++ b/ap/lib/libssl/openssl-1.1.1o/Configurations/windows-makefile.tmpl
@@ -9,6 +9,7 @@
our $exeext = $target{exe_extension} || ".exe";
our $libext = $target{lib_extension} || ".lib";
our $shlibext = $target{shared_extension} || ".dll";
+ our $shlibvariant = $target{shlib_variant} || "";
our $shlibextimport = $target{shared_import_extension} || ".lib";
our $dsoext = $target{dso_extension} || ".dll";
@@ -35,7 +36,7 @@
my $lib = shift;
return () if $disabled{shared} || $lib =~ /\.a$/;
return () unless defined $unified_info{sharednames}->{$lib};
- return $unified_info{sharednames}->{$lib} . $shlibext;
+ return $unified_info{sharednames}->{$lib} . $shlibvariant . $shlibext;
}
sub lib {
diff --git a/ap/lib/libssl/openssl-1.1.1o/Configure b/ap/lib/libssl/openssl-1.1.1o/Configure
index 6cb1a84..78cc15d 100755
--- a/ap/lib/libssl/openssl-1.1.1o/Configure
+++ b/ap/lib/libssl/openssl-1.1.1o/Configure
@@ -1244,7 +1244,7 @@
}
if ($target =~ /linux.*-mips/ && !$disabled{asm}
- && !grep { $_ !~ /-m(ips|arch=)/ } (@{$config{CFLAGS}})) {
+ && !grep { $_ =~ /-m(ips|arch=)/ } (@{$config{CFLAGS}})) {
# minimally required architecture flags for assembly modules
my $value;
$value = '-mips2' if ($target =~ /mips32/);
diff --git a/ap/lib/libssl/openssl-1.1.1o/NEWS b/ap/lib/libssl/openssl-1.1.1o/NEWS
index 2724fc4..f5a2d5a 100644
--- a/ap/lib/libssl/openssl-1.1.1o/NEWS
+++ b/ap/lib/libssl/openssl-1.1.1o/NEWS
@@ -5,6 +5,15 @@
This file gives a brief overview of the major changes between each OpenSSL
release. For more details please read the CHANGES file.
+ Major changes between OpenSSL 1.1.1t and OpenSSL 1.1.1u [30 May 2023]
+
+ o Mitigate for very slow `OBJ_obj2txt()` performance with gigantic
+ OBJECT IDENTIFIER sub-identities. (CVE-2023-2650)
+ o Fixed documentation of X509_VERIFY_PARAM_add0_policy() (CVE-2023-0466)
+ o Fixed handling of invalid certificate policies in leaf certificates
+ (CVE-2023-0465)
+ o Limited the number of nodes created in a policy tree ([CVE-2023-0464])
+
Major changes between OpenSSL 1.1.1s and OpenSSL 1.1.1t [7 Feb 2023]
o Fixed X.400 address type confusion in X.509 GeneralName (CVE-2023-0286)
diff --git a/ap/lib/libssl/openssl-1.1.1o/README b/ap/lib/libssl/openssl-1.1.1o/README
index b2f806b..b9bf50f 100644
--- a/ap/lib/libssl/openssl-1.1.1o/README
+++ b/ap/lib/libssl/openssl-1.1.1o/README
@@ -1,7 +1,7 @@
- OpenSSL 1.1.1t 7 Feb 2023
+ OpenSSL 1.1.1u 30 May 2023
- Copyright (c) 1998-2022 The OpenSSL Project
+ Copyright (c) 1998-2023 The OpenSSL Project
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
All rights reserved.
diff --git a/ap/lib/libssl/openssl-1.1.1o/crypto/aes/asm/bsaes-armv7.pl b/ap/lib/libssl/openssl-1.1.1o/crypto/aes/asm/bsaes-armv7.pl
index 2b9f241..b22db37 100644
--- a/ap/lib/libssl/openssl-1.1.1o/crypto/aes/asm/bsaes-armv7.pl
+++ b/ap/lib/libssl/openssl-1.1.1o/crypto/aes/asm/bsaes-armv7.pl
@@ -1,5 +1,5 @@
#! /usr/bin/env perl
-# Copyright 2012-2020 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright 2012-2023 The OpenSSL Project Authors. All Rights Reserved.
#
# Licensed under the OpenSSL license (the "License"). You may not use
# this file except in compliance with the License. You can obtain a copy
@@ -14,7 +14,7 @@
# details see http://www.openssl.org/~appro/cryptogams/.
#
# Specific modes and adaptation for Linux kernel by Ard Biesheuvel
-# of Linaro. Permission to use under GPL terms is granted.
+# of Linaro.
# ====================================================================
# Bit-sliced AES for ARM NEON
diff --git a/ap/lib/libssl/openssl-1.1.1o/crypto/asn1/a_bitstr.c b/ap/lib/libssl/openssl-1.1.1o/crypto/asn1/a_bitstr.c
index f462dd1..14b5726 100644
--- a/ap/lib/libssl/openssl-1.1.1o/crypto/asn1/a_bitstr.c
+++ b/ap/lib/libssl/openssl-1.1.1o/crypto/asn1/a_bitstr.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -148,6 +148,9 @@
int w, v, iv;
unsigned char *c;
+ if (n < 0)
+ return 0;
+
w = n / 8;
v = 1 << (7 - (n & 0x07));
iv = ~v;
@@ -182,6 +185,9 @@
{
int w, v;
+ if (n < 0)
+ return 0;
+
w = n / 8;
v = 1 << (7 - (n & 0x07));
if ((a == NULL) || (a->length < (w + 1)) || (a->data == NULL))
diff --git a/ap/lib/libssl/openssl-1.1.1o/crypto/bio/b_print.c b/ap/lib/libssl/openssl-1.1.1o/crypto/bio/b_print.c
index 45d4e9f..c4ed364 100644
--- a/ap/lib/libssl/openssl-1.1.1o/crypto/bio/b_print.c
+++ b/ap/lib/libssl/openssl-1.1.1o/crypto/bio/b_print.c
@@ -305,7 +305,6 @@
case 'G':
case 'g':
/* not implemented for UEFI */
- ERR_raise(ERR_LIB_BIO, ERR_R_UNSUPPORTED);
return 0;
#endif
case 'c':
diff --git a/ap/lib/libssl/openssl-1.1.1o/crypto/bn/bn_asm.c b/ap/lib/libssl/openssl-1.1.1o/crypto/bn/bn_asm.c
index 4d83a8c..e5fa81b 100644
--- a/ap/lib/libssl/openssl-1.1.1o/crypto/bn/bn_asm.c
+++ b/ap/lib/libssl/openssl-1.1.1o/crypto/bn/bn_asm.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -381,25 +381,33 @@
#ifndef OPENSSL_SMALL_FOOTPRINT
while (n & ~3) {
t1 = a[0];
- t2 = b[0];
- r[0] = (t1 - t2 - c) & BN_MASK2;
- if (t1 != t2)
- c = (t1 < t2);
+ t2 = (t1 - c) & BN_MASK2;
+ c = (t2 > t1);
+ t1 = b[0];
+ t1 = (t2 - t1) & BN_MASK2;
+ r[0] = t1;
+ c += (t1 > t2);
t1 = a[1];
- t2 = b[1];
- r[1] = (t1 - t2 - c) & BN_MASK2;
- if (t1 != t2)
- c = (t1 < t2);
+ t2 = (t1 - c) & BN_MASK2;
+ c = (t2 > t1);
+ t1 = b[1];
+ t1 = (t2 - t1) & BN_MASK2;
+ r[1] = t1;
+ c += (t1 > t2);
t1 = a[2];
- t2 = b[2];
- r[2] = (t1 - t2 - c) & BN_MASK2;
- if (t1 != t2)
- c = (t1 < t2);
+ t2 = (t1 - c) & BN_MASK2;
+ c = (t2 > t1);
+ t1 = b[2];
+ t1 = (t2 - t1) & BN_MASK2;
+ r[2] = t1;
+ c += (t1 > t2);
t1 = a[3];
- t2 = b[3];
- r[3] = (t1 - t2 - c) & BN_MASK2;
- if (t1 != t2)
- c = (t1 < t2);
+ t2 = (t1 - c) & BN_MASK2;
+ c = (t2 > t1);
+ t1 = b[3];
+ t1 = (t2 - t1) & BN_MASK2;
+ r[3] = t1;
+ c += (t1 > t2);
a += 4;
b += 4;
r += 4;
@@ -408,10 +416,12 @@
#endif
while (n) {
t1 = a[0];
- t2 = b[0];
- r[0] = (t1 - t2 - c) & BN_MASK2;
- if (t1 != t2)
- c = (t1 < t2);
+ t2 = (t1 - c) & BN_MASK2;
+ c = (t2 > t1);
+ t1 = b[0];
+ t1 = (t2 - t1) & BN_MASK2;
+ r[0] = t1;
+ c += (t1 > t2);
a++;
b++;
r++;
@@ -446,7 +456,7 @@
t += c0; /* no carry */ \
c0 = (BN_ULONG)Lw(t); \
hi = (BN_ULONG)Hw(t); \
- c1 = (c1+hi)&BN_MASK2; if (c1<hi) c2++; \
+ c1 = (c1+hi)&BN_MASK2; c2 += (c1<hi); \
} while(0)
# define mul_add_c2(a,b,c0,c1,c2) do { \
@@ -455,11 +465,11 @@
BN_ULLONG tt = t+c0; /* no carry */ \
c0 = (BN_ULONG)Lw(tt); \
hi = (BN_ULONG)Hw(tt); \
- c1 = (c1+hi)&BN_MASK2; if (c1<hi) c2++; \
+ c1 = (c1+hi)&BN_MASK2; c2 += (c1<hi); \
t += c0; /* no carry */ \
c0 = (BN_ULONG)Lw(t); \
hi = (BN_ULONG)Hw(t); \
- c1 = (c1+hi)&BN_MASK2; if (c1<hi) c2++; \
+ c1 = (c1+hi)&BN_MASK2; c2 += (c1<hi); \
} while(0)
# define sqr_add_c(a,i,c0,c1,c2) do { \
@@ -468,7 +478,7 @@
t += c0; /* no carry */ \
c0 = (BN_ULONG)Lw(t); \
hi = (BN_ULONG)Hw(t); \
- c1 = (c1+hi)&BN_MASK2; if (c1<hi) c2++; \
+ c1 = (c1+hi)&BN_MASK2; c2 += (c1<hi); \
} while(0)
# define sqr_add_c2(a,i,j,c0,c1,c2) \
@@ -483,26 +493,26 @@
BN_ULONG ta = (a), tb = (b); \
BN_ULONG lo, hi; \
BN_UMULT_LOHI(lo,hi,ta,tb); \
- c0 += lo; hi += (c0<lo)?1:0; \
- c1 += hi; c2 += (c1<hi)?1:0; \
+ c0 += lo; hi += (c0<lo); \
+ c1 += hi; c2 += (c1<hi); \
} while(0)
# define mul_add_c2(a,b,c0,c1,c2) do { \
BN_ULONG ta = (a), tb = (b); \
BN_ULONG lo, hi, tt; \
BN_UMULT_LOHI(lo,hi,ta,tb); \
- c0 += lo; tt = hi+((c0<lo)?1:0); \
- c1 += tt; c2 += (c1<tt)?1:0; \
- c0 += lo; hi += (c0<lo)?1:0; \
- c1 += hi; c2 += (c1<hi)?1:0; \
+ c0 += lo; tt = hi + (c0<lo); \
+ c1 += tt; c2 += (c1<tt); \
+ c0 += lo; hi += (c0<lo); \
+ c1 += hi; c2 += (c1<hi); \
} while(0)
# define sqr_add_c(a,i,c0,c1,c2) do { \
BN_ULONG ta = (a)[i]; \
BN_ULONG lo, hi; \
BN_UMULT_LOHI(lo,hi,ta,ta); \
- c0 += lo; hi += (c0<lo)?1:0; \
- c1 += hi; c2 += (c1<hi)?1:0; \
+ c0 += lo; hi += (c0<lo); \
+ c1 += hi; c2 += (c1<hi); \
} while(0)
# define sqr_add_c2(a,i,j,c0,c1,c2) \
@@ -517,26 +527,26 @@
BN_ULONG ta = (a), tb = (b); \
BN_ULONG lo = ta * tb; \
BN_ULONG hi = BN_UMULT_HIGH(ta,tb); \
- c0 += lo; hi += (c0<lo)?1:0; \
- c1 += hi; c2 += (c1<hi)?1:0; \
+ c0 += lo; hi += (c0<lo); \
+ c1 += hi; c2 += (c1<hi); \
} while(0)
# define mul_add_c2(a,b,c0,c1,c2) do { \
BN_ULONG ta = (a), tb = (b), tt; \
BN_ULONG lo = ta * tb; \
BN_ULONG hi = BN_UMULT_HIGH(ta,tb); \
- c0 += lo; tt = hi + ((c0<lo)?1:0); \
- c1 += tt; c2 += (c1<tt)?1:0; \
- c0 += lo; hi += (c0<lo)?1:0; \
- c1 += hi; c2 += (c1<hi)?1:0; \
+ c0 += lo; tt = hi + (c0<lo); \
+ c1 += tt; c2 += (c1<tt); \
+ c0 += lo; hi += (c0<lo); \
+ c1 += hi; c2 += (c1<hi); \
} while(0)
# define sqr_add_c(a,i,c0,c1,c2) do { \
BN_ULONG ta = (a)[i]; \
BN_ULONG lo = ta * ta; \
BN_ULONG hi = BN_UMULT_HIGH(ta,ta); \
- c0 += lo; hi += (c0<lo)?1:0; \
- c1 += hi; c2 += (c1<hi)?1:0; \
+ c0 += lo; hi += (c0<lo); \
+ c1 += hi; c2 += (c1<hi); \
} while(0)
# define sqr_add_c2(a,i,j,c0,c1,c2) \
@@ -551,8 +561,8 @@
BN_ULONG lo = LBITS(a), hi = HBITS(a); \
BN_ULONG bl = LBITS(b), bh = HBITS(b); \
mul64(lo,hi,bl,bh); \
- c0 = (c0+lo)&BN_MASK2; if (c0<lo) hi++; \
- c1 = (c1+hi)&BN_MASK2; if (c1<hi) c2++; \
+ c0 = (c0+lo)&BN_MASK2; hi += (c0<lo); \
+ c1 = (c1+hi)&BN_MASK2; c2 += (c1<hi); \
} while(0)
# define mul_add_c2(a,b,c0,c1,c2) do { \
@@ -561,17 +571,17 @@
BN_ULONG bl = LBITS(b), bh = HBITS(b); \
mul64(lo,hi,bl,bh); \
tt = hi; \
- c0 = (c0+lo)&BN_MASK2; if (c0<lo) tt++; \
- c1 = (c1+tt)&BN_MASK2; if (c1<tt) c2++; \
- c0 = (c0+lo)&BN_MASK2; if (c0<lo) hi++; \
- c1 = (c1+hi)&BN_MASK2; if (c1<hi) c2++; \
+ c0 = (c0+lo)&BN_MASK2; tt += (c0<lo); \
+ c1 = (c1+tt)&BN_MASK2; c2 += (c1<tt); \
+ c0 = (c0+lo)&BN_MASK2; hi += (c0<lo); \
+ c1 = (c1+hi)&BN_MASK2; c2 += (c1<hi); \
} while(0)
# define sqr_add_c(a,i,c0,c1,c2) do { \
BN_ULONG lo, hi; \
sqr64(lo,hi,(a)[i]); \
- c0 = (c0+lo)&BN_MASK2; if (c0<lo) hi++; \
- c1 = (c1+hi)&BN_MASK2; if (c1<hi) c2++; \
+ c0 = (c0+lo)&BN_MASK2; hi += (c0<lo); \
+ c1 = (c1+hi)&BN_MASK2; c2 += (c1<hi); \
} while(0)
# define sqr_add_c2(a,i,j,c0,c1,c2) \
diff --git a/ap/lib/libssl/openssl-1.1.1o/crypto/bn/bn_blind.c b/ap/lib/libssl/openssl-1.1.1o/crypto/bn/bn_blind.c
index dd5beea..e76f610 100644
--- a/ap/lib/libssl/openssl-1.1.1o/crypto/bn/bn_blind.c
+++ b/ap/lib/libssl/openssl-1.1.1o/crypto/bn/bn_blind.c
@@ -13,6 +13,20 @@
#define BN_BLINDING_COUNTER 32
+struct bn_blinding_st {
+ BIGNUM *A;
+ BIGNUM *Ai;
+ BIGNUM *e;
+ BIGNUM *mod; /* just a reference */
+ CRYPTO_THREAD_ID tid;
+ int counter;
+ unsigned long flags;
+ BN_MONT_CTX *m_ctx;
+ int (*bn_mod_exp) (BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
+ const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx);
+ CRYPTO_RWLOCK *lock;
+};
+
BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM *mod)
{
BN_BLINDING *ret = NULL;
@@ -177,7 +191,8 @@
n->top = (int)(rtop & ~mask) | (ntop & mask);
n->flags |= (BN_FLG_FIXED_TOP & ~mask);
}
- ret = BN_mod_mul_montgomery(n, n, r, b->m_ctx, ctx);
+ ret = bn_mul_mont_fixed_top(n, n, r, b->m_ctx, ctx);
+ bn_correct_top_consttime(n);
} else {
ret = BN_mod_mul(n, n, r, b->mod, ctx);
}
diff --git a/ap/lib/libssl/openssl-1.1.1o/crypto/bn/bn_err.c b/ap/lib/libssl/openssl-1.1.1o/crypto/bn/bn_err.c
index 6f5464b..6ea5fc3 100644
--- a/ap/lib/libssl/openssl-1.1.1o/crypto/bn/bn_err.c
+++ b/ap/lib/libssl/openssl-1.1.1o/crypto/bn/bn_err.c
@@ -73,8 +73,6 @@
{ERR_PACK(ERR_LIB_BN, BN_F_BN_SET_WORDS, 0), "bn_set_words"},
{ERR_PACK(ERR_LIB_BN, BN_F_BN_STACK_PUSH, 0), "BN_STACK_push"},
{ERR_PACK(ERR_LIB_BN, BN_F_BN_USUB, 0), "BN_usub"},
- {ERR_PACK(ERR_LIB_BN, BN_F_OSSL_BN_RSA_DO_UNBLIND, 0),
- "ossl_bn_rsa_do_unblind"},
{0, NULL}
};
diff --git a/ap/lib/libssl/openssl-1.1.1o/crypto/bn/bn_lib.c b/ap/lib/libssl/openssl-1.1.1o/crypto/bn/bn_lib.c
index eb4a318..cd6aa34 100644
--- a/ap/lib/libssl/openssl-1.1.1o/crypto/bn/bn_lib.c
+++ b/ap/lib/libssl/openssl-1.1.1o/crypto/bn/bn_lib.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -1001,6 +1001,28 @@
return (words <= a->dmax) ? a : bn_expand2(a, words);
}
+void bn_correct_top_consttime(BIGNUM *a)
+{
+ int j, atop;
+ BN_ULONG limb;
+ unsigned int mask;
+
+ for (j = 0, atop = 0; j < a->dmax; j++) {
+ limb = a->d[j];
+ limb |= 0 - limb;
+ limb >>= BN_BITS2 - 1;
+ limb = 0 - limb;
+ mask = (unsigned int)limb;
+ mask &= constant_time_msb(j - a->top);
+ atop = constant_time_select_int(mask, j + 1, atop);
+ }
+
+ mask = constant_time_eq_int(atop, 0);
+ a->top = atop;
+ a->neg = constant_time_select_int(mask, 0, a->neg);
+ a->flags &= ~BN_FLG_FIXED_TOP;
+}
+
void bn_correct_top(BIGNUM *a)
{
BN_ULONG *ftl;
diff --git a/ap/lib/libssl/openssl-1.1.1o/crypto/bn/bn_local.h b/ap/lib/libssl/openssl-1.1.1o/crypto/bn/bn_local.h
index 30b7614..818e343 100644
--- a/ap/lib/libssl/openssl-1.1.1o/crypto/bn/bn_local.h
+++ b/ap/lib/libssl/openssl-1.1.1o/crypto/bn/bn_local.h
@@ -283,20 +283,6 @@
} cb;
};
-struct bn_blinding_st {
- BIGNUM *A;
- BIGNUM *Ai;
- BIGNUM *e;
- BIGNUM *mod; /* just a reference */
- CRYPTO_THREAD_ID tid;
- int counter;
- unsigned long flags;
- BN_MONT_CTX *m_ctx;
- int (*bn_mod_exp) (BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
- const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx);
- CRYPTO_RWLOCK *lock;
-};
-
/*-
* BN_window_bits_for_exponent_size -- macro for sliding window mod_exp functions
*
@@ -529,10 +515,10 @@
ret = (r); \
BN_UMULT_LOHI(low,high,w,tmp); \
ret += (c); \
- (c) = (ret<(c))?1:0; \
+ (c) = (ret<(c)); \
(c) += high; \
ret += low; \
- (c) += (ret<low)?1:0; \
+ (c) += (ret<low); \
(r) = ret; \
}
@@ -541,7 +527,7 @@
BN_UMULT_LOHI(low,high,w,ta); \
ret = low + (c); \
(c) = high; \
- (c) += (ret<low)?1:0; \
+ (c) += (ret<low); \
(r) = ret; \
}
@@ -557,10 +543,10 @@
high= BN_UMULT_HIGH(w,tmp); \
ret += (c); \
low = (w) * tmp; \
- (c) = (ret<(c))?1:0; \
+ (c) = (ret<(c)); \
(c) += high; \
ret += low; \
- (c) += (ret<low)?1:0; \
+ (c) += (ret<low); \
(r) = ret; \
}
@@ -570,7 +556,7 @@
high= BN_UMULT_HIGH(w,ta); \
ret = low + (c); \
(c) = high; \
- (c) += (ret<low)?1:0; \
+ (c) += (ret<low); \
(r) = ret; \
}
@@ -603,10 +589,10 @@
lt=(bl)*(lt); \
m1=(bl)*(ht); \
ht =(bh)*(ht); \
- m=(m+m1)&BN_MASK2; if (m < m1) ht+=L2HBITS((BN_ULONG)1); \
+ m=(m+m1)&BN_MASK2; ht += L2HBITS((BN_ULONG)(m < m1)); \
ht+=HBITS(m); \
m1=L2HBITS(m); \
- lt=(lt+m1)&BN_MASK2; if (lt < m1) ht++; \
+ lt=(lt+m1)&BN_MASK2; ht += (lt < m1); \
(l)=lt; \
(h)=ht; \
}
@@ -623,7 +609,7 @@
h*=h; \
h+=(m&BN_MASK2h1)>>(BN_BITS4-1); \
m =(m&BN_MASK2l)<<(BN_BITS4+1); \
- l=(l+m)&BN_MASK2; if (l < m) h++; \
+ l=(l+m)&BN_MASK2; h += (l < m); \
(lo)=l; \
(ho)=h; \
}
@@ -637,9 +623,9 @@
mul64(l,h,(bl),(bh)); \
\
/* non-multiply part */ \
- l=(l+(c))&BN_MASK2; if (l < (c)) h++; \
+ l=(l+(c))&BN_MASK2; h += (l < (c)); \
(c)=(r); \
- l=(l+(c))&BN_MASK2; if (l < (c)) h++; \
+ l=(l+(c))&BN_MASK2; h += (l < (c)); \
(c)=h&BN_MASK2; \
(r)=l; \
}
@@ -653,7 +639,7 @@
mul64(l,h,(bl),(bh)); \
\
/* non-multiply part */ \
- l+=(c); if ((l&BN_MASK2) < (c)) h++; \
+ l+=(c); h += ((l&BN_MASK2) < (c)); \
(c)=h&BN_MASK2; \
(r)=l&BN_MASK2; \
}
@@ -683,7 +669,7 @@
int cl, int dl);
int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp,
const BN_ULONG *np, const BN_ULONG *n0, int num);
-
+void bn_correct_top_consttime(BIGNUM *a);
BIGNUM *int_bn_mod_inverse(BIGNUM *in,
const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx,
int *noinv);
diff --git a/ap/lib/libssl/openssl-1.1.1o/crypto/bn/build.info b/ap/lib/libssl/openssl-1.1.1o/crypto/bn/build.info
index c9fe2fd..b9ed532 100644
--- a/ap/lib/libssl/openssl-1.1.1o/crypto/bn/build.info
+++ b/ap/lib/libssl/openssl-1.1.1o/crypto/bn/build.info
@@ -5,8 +5,7 @@
bn_kron.c bn_sqrt.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c \
{- $target{bn_asm_src} -} \
bn_recp.c bn_mont.c bn_mpi.c bn_exp2.c bn_gf2m.c bn_nist.c \
- bn_depr.c bn_const.c bn_x931p.c bn_intern.c bn_dh.c bn_srp.c \
- rsa_sup_mul.c
+ bn_depr.c bn_const.c bn_x931p.c bn_intern.c bn_dh.c bn_srp.c
INCLUDE[bn_exp.o]=..
diff --git a/ap/lib/libssl/openssl-1.1.1o/crypto/bn/rsa_sup_mul.c b/ap/lib/libssl/openssl-1.1.1o/crypto/bn/rsa_sup_mul.c
deleted file mode 100644
index acafefd..0000000
--- a/ap/lib/libssl/openssl-1.1.1o/crypto/bn/rsa_sup_mul.c
+++ /dev/null
@@ -1,614 +0,0 @@
-#include <openssl/e_os2.h>
-#include <stddef.h>
-#include <sys/types.h>
-#include <string.h>
-#include <openssl/bn.h>
-#include <openssl/err.h>
-#include <openssl/rsaerr.h>
-#include "internal/numbers.h"
-#include "internal/constant_time.h"
-#include "bn_local.h"
-
-# if BN_BYTES == 8
-typedef uint64_t limb_t;
-# if defined(__SIZEOF_INT128__) && __SIZEOF_INT128__ == 16
-/* nonstandard; implemented by gcc on 64-bit platforms */
-typedef __uint128_t limb2_t;
-# define HAVE_LIMB2_T
-# endif
-# define LIMB_BIT_SIZE 64
-# define LIMB_BYTE_SIZE 8
-# elif BN_BYTES == 4
-typedef uint32_t limb_t;
-typedef uint64_t limb2_t;
-# define LIMB_BIT_SIZE 32
-# define LIMB_BYTE_SIZE 4
-# define HAVE_LIMB2_T
-# else
-# error "Not supported"
-# endif
-
-/*
- * For multiplication we're using schoolbook multiplication,
- * so if we have two numbers, each with 6 "digits" (words)
- * the multiplication is calculated as follows:
- * A B C D E F
- * x I J K L M N
- * --------------
- * N*F
- * N*E
- * N*D
- * N*C
- * N*B
- * N*A
- * M*F
- * M*E
- * M*D
- * M*C
- * M*B
- * M*A
- * L*F
- * L*E
- * L*D
- * L*C
- * L*B
- * L*A
- * K*F
- * K*E
- * K*D
- * K*C
- * K*B
- * K*A
- * J*F
- * J*E
- * J*D
- * J*C
- * J*B
- * J*A
- * I*F
- * I*E
- * I*D
- * I*C
- * I*B
- * + I*A
- * ==========================
- * N*B N*D N*F
- * + N*A N*C N*E
- * + M*B M*D M*F
- * + M*A M*C M*E
- * + L*B L*D L*F
- * + L*A L*C L*E
- * + K*B K*D K*F
- * + K*A K*C K*E
- * + J*B J*D J*F
- * + J*A J*C J*E
- * + I*B I*D I*F
- * + I*A I*C I*E
- *
- * 1+1 1+3 1+5
- * 1+0 1+2 1+4
- * 0+1 0+3 0+5
- * 0+0 0+2 0+4
- *
- * 0 1 2 3 4 5 6
- * which requires n^2 multiplications and 2n full length additions
- * as we can keep every other result of limb multiplication in two separate
- * limbs
- */
-
-#if defined HAVE_LIMB2_T
-static ossl_inline void _mul_limb(limb_t *hi, limb_t *lo, limb_t a, limb_t b)
-{
- limb2_t t;
- /*
- * this is idiomatic code to tell compiler to use the native mul
- * those three lines will actually compile to single instruction
- */
-
- t = (limb2_t)a * b;
- *hi = t >> LIMB_BIT_SIZE;
- *lo = (limb_t)t;
-}
-#elif (BN_BYTES == 8) && (defined _MSC_VER)
-/* https://learn.microsoft.com/en-us/cpp/intrinsics/umul128?view=msvc-170 */
-#pragma intrinsic(_umul128)
-static ossl_inline void _mul_limb(limb_t *hi, limb_t *lo, limb_t a, limb_t b)
-{
- *lo = _umul128(a, b, hi);
-}
-#else
-/*
- * if the compiler doesn't have either a 128bit data type nor a "return
- * high 64 bits of multiplication"
- */
-static ossl_inline void _mul_limb(limb_t *hi, limb_t *lo, limb_t a, limb_t b)
-{
- limb_t a_low = (limb_t)(uint32_t)a;
- limb_t a_hi = a >> 32;
- limb_t b_low = (limb_t)(uint32_t)b;
- limb_t b_hi = b >> 32;
-
- limb_t p0 = a_low * b_low;
- limb_t p1 = a_low * b_hi;
- limb_t p2 = a_hi * b_low;
- limb_t p3 = a_hi * b_hi;
-
- uint32_t cy = (uint32_t)(((p0 >> 32) + (uint32_t)p1 + (uint32_t)p2) >> 32);
-
- *lo = p0 + (p1 << 32) + (p2 << 32);
- *hi = p3 + (p1 >> 32) + (p2 >> 32) + cy;
-}
-#endif
-
-/* add two limbs with carry in, return carry out */
-static ossl_inline limb_t _add_limb(limb_t *ret, limb_t a, limb_t b, limb_t carry)
-{
- limb_t carry1, carry2, t;
- /*
- * `c = a + b; if (c < a)` is idiomatic code that makes compilers
- * use add with carry on assembly level
- */
-
- *ret = a + carry;
- if (*ret < a)
- carry1 = 1;
- else
- carry1 = 0;
-
- t = *ret;
- *ret = t + b;
- if (*ret < t)
- carry2 = 1;
- else
- carry2 = 0;
-
- return carry1 + carry2;
-}
-
-/*
- * add two numbers of the same size, return overflow
- *
- * add a to b, place result in ret; all arrays need to be n limbs long
- * return overflow from addition (0 or 1)
- */
-static ossl_inline limb_t add(limb_t *ret, limb_t *a, limb_t *b, size_t n)
-{
- limb_t c = 0;
- ossl_ssize_t i;
-
- for(i = n - 1; i > -1; i--)
- c = _add_limb(&ret[i], a[i], b[i], c);
-
- return c;
-}
-
-/*
- * return number of limbs necessary for temporary values
- * when multiplying numbers n limbs large
- */
-static ossl_inline size_t mul_limb_numb(size_t n)
-{
- return 2 * n * 2;
-}
-
-/*
- * multiply two numbers of the same size
- *
- * multiply a by b, place result in ret; a and b need to be n limbs long
- * ret needs to be 2*n limbs long, tmp needs to be mul_limb_numb(n) limbs
- * long
- */
-static void limb_mul(limb_t *ret, limb_t *a, limb_t *b, size_t n, limb_t *tmp)
-{
- limb_t *r_odd, *r_even;
- size_t i, j, k;
-
- r_odd = tmp;
- r_even = &tmp[2 * n];
-
- memset(ret, 0, 2 * n * sizeof(limb_t));
-
- for (i = 0; i < n; i++) {
- for (k = 0; k < i + n + 1; k++) {
- r_even[k] = 0;
- r_odd[k] = 0;
- }
- for (j = 0; j < n; j++) {
- /*
- * place results from even and odd limbs in separate arrays so that
- * we don't have to calculate overflow every time we get individual
- * limb multiplication result
- */
- if (j % 2 == 0)
- _mul_limb(&r_even[i + j], &r_even[i + j + 1], a[i], b[j]);
- else
- _mul_limb(&r_odd[i + j], &r_odd[i + j + 1], a[i], b[j]);
- }
- /*
- * skip the least significant limbs when adding multiples of
- * more significant limbs (they're zero anyway)
- */
- add(ret, ret, r_even, n + i + 1);
- add(ret, ret, r_odd, n + i + 1);
- }
-}
-
-/* modifies the value in place by performing a right shift by one bit */
-static ossl_inline void rshift1(limb_t *val, size_t n)
-{
- limb_t shift_in = 0, shift_out = 0;
- size_t i;
-
- for (i = 0; i < n; i++) {
- shift_out = val[i] & 1;
- val[i] = shift_in << (LIMB_BIT_SIZE - 1) | (val[i] >> 1);
- shift_in = shift_out;
- }
-}
-
-/* extend the LSB of flag to all bits of limb */
-static ossl_inline limb_t mk_mask(limb_t flag)
-{
- flag |= flag << 1;
- flag |= flag << 2;
- flag |= flag << 4;
- flag |= flag << 8;
- flag |= flag << 16;
-#if (LIMB_BYTE_SIZE == 8)
- flag |= flag << 32;
-#endif
- return flag;
-}
-
-/*
- * copy from either a or b to ret based on flag
- * when flag == 0, then copies from b
- * when flag == 1, then copies from a
- */
-static ossl_inline void cselect(limb_t flag, limb_t *ret, limb_t *a, limb_t *b, size_t n)
-{
- /*
- * would be more efficient with non volatile mask, but then gcc
- * generates code with jumps
- */
- volatile limb_t mask;
- size_t i;
-
- mask = mk_mask(flag);
- for (i = 0; i < n; i++) {
-#if (LIMB_BYTE_SIZE == 8)
- ret[i] = constant_time_select_64(mask, a[i], b[i]);
-#else
- ret[i] = constant_time_select_32(mask, a[i], b[i]);
-#endif
- }
-}
-
-static limb_t _sub_limb(limb_t *ret, limb_t a, limb_t b, limb_t borrow)
-{
- limb_t borrow1, borrow2, t;
- /*
- * while it doesn't look constant-time, this is idiomatic code
- * to tell compilers to use the carry bit from subtraction
- */
-
- *ret = a - borrow;
- if (*ret > a)
- borrow1 = 1;
- else
- borrow1 = 0;
-
- t = *ret;
- *ret = t - b;
- if (*ret > t)
- borrow2 = 1;
- else
- borrow2 = 0;
-
- return borrow1 + borrow2;
-}
-
-/*
- * place the result of a - b into ret, return the borrow bit.
- * All arrays need to be n limbs long
- */
-static limb_t sub(limb_t *ret, limb_t *a, limb_t *b, size_t n)
-{
- limb_t borrow = 0;
- ossl_ssize_t i;
-
- for (i = n - 1; i > -1; i--)
- borrow = _sub_limb(&ret[i], a[i], b[i], borrow);
-
- return borrow;
-}
-
-/* return the number of limbs necessary to allocate for the mod() tmp operand */
-static ossl_inline size_t mod_limb_numb(size_t anum, size_t modnum)
-{
- return (anum + modnum) * 3;
-}
-
-/*
- * calculate a % mod, place the result in ret
- * size of a is defined by anum, size of ret and mod is modnum,
- * size of tmp is returned by mod_limb_numb()
- */
-static void mod(limb_t *ret, limb_t *a, size_t anum, limb_t *mod,
- size_t modnum, limb_t *tmp)
-{
- limb_t *atmp, *modtmp, *rettmp;
- limb_t res;
- size_t i;
-
- memset(tmp, 0, mod_limb_numb(anum, modnum) * LIMB_BYTE_SIZE);
-
- atmp = tmp;
- modtmp = &tmp[anum + modnum];
- rettmp = &tmp[(anum + modnum) * 2];
-
- for (i = modnum; i <modnum + anum; i++)
- atmp[i] = a[i-modnum];
-
- for (i = 0; i < modnum; i++)
- modtmp[i] = mod[i];
-
- for (i = 0; i < anum * LIMB_BIT_SIZE; i++) {
- rshift1(modtmp, anum + modnum);
- res = sub(rettmp, atmp, modtmp, anum+modnum);
- cselect(res, atmp, atmp, rettmp, anum+modnum);
- }
-
- memcpy(ret, &atmp[anum], sizeof(limb_t) * modnum);
-}
-
-/* necessary size of tmp for a _mul_add_limb() call with provided anum */
-static ossl_inline size_t _mul_add_limb_numb(size_t anum)
-{
- return 2 * (anum + 1);
-}
-
-/* multiply a by m, add to ret, return carry */
-static limb_t _mul_add_limb(limb_t *ret, limb_t *a, size_t anum,
- limb_t m, limb_t *tmp)
-{
- limb_t carry = 0;
- limb_t *r_odd, *r_even;
- size_t i;
-
- memset(tmp, 0, sizeof(limb_t) * (anum + 1) * 2);
-
- r_odd = tmp;
- r_even = &tmp[anum + 1];
-
- for (i = 0; i < anum; i++) {
- /*
- * place the results from even and odd limbs in separate arrays
- * so that we have to worry about carry just once
- */
- if (i % 2 == 0)
- _mul_limb(&r_even[i], &r_even[i + 1], a[i], m);
- else
- _mul_limb(&r_odd[i], &r_odd[i + 1], a[i], m);
- }
- /* assert: add() carry here will be equal zero */
- add(r_even, r_even, r_odd, anum + 1);
- /*
- * while here it will not overflow as the max value from multiplication
- * is -2 while max overflow from addition is 1, so the max value of
- * carry is -1 (i.e. max int)
- */
- carry = add(ret, ret, &r_even[1], anum) + r_even[0];
-
- return carry;
-}
-
-static ossl_inline size_t mod_montgomery_limb_numb(size_t modnum)
-{
- return modnum * 2 + _mul_add_limb_numb(modnum);
-}
-
-/*
- * calculate a % mod, place result in ret
- * assumes that a is in Montgomery form with the R (Montgomery modulus) being
- * smallest power of two big enough to fit mod and that's also a power
- * of the count of number of bits in limb_t (B).
- * For calculation, we also need n', such that mod * n' == -1 mod B.
- * anum must be <= 2 * modnum
- * ret needs to be modnum words long
- * tmp needs to be mod_montgomery_limb_numb(modnum) limbs long
- */
-static void mod_montgomery(limb_t *ret, limb_t *a, size_t anum, limb_t *mod,
- size_t modnum, limb_t ni0, limb_t *tmp)
-{
- limb_t carry, v;
- limb_t *res, *rp, *tmp2;
- ossl_ssize_t i;
-
- res = tmp;
- /*
- * for intermediate result we need an integer twice as long as modulus
- * but keep the input in the least significant limbs
- */
- memset(res, 0, sizeof(limb_t) * (modnum * 2));
- memcpy(&res[modnum * 2 - anum], a, sizeof(limb_t) * anum);
- rp = &res[modnum];
- tmp2 = &res[modnum * 2];
-
- carry = 0;
-
- /* add multiples of the modulus to the value until R divides it cleanly */
- for (i = modnum; i > 0; i--, rp--) {
- v = _mul_add_limb(rp, mod, modnum, rp[modnum - 1] * ni0, tmp2);
- v = v + carry + rp[-1];
- carry |= (v != rp[-1]);
- carry &= (v <= rp[-1]);
- rp[-1] = v;
- }
-
- /* perform the final reduction by mod... */
- carry -= sub(ret, rp, mod, modnum);
-
- /* ...conditionally */
- cselect(carry, ret, rp, ret, modnum);
-}
-
-/* allocated buffer should be freed afterwards */
-static void BN_to_limb(const BIGNUM *bn, limb_t *buf, size_t limbs)
-{
- int i;
- int real_limbs = (BN_num_bytes(bn) + LIMB_BYTE_SIZE - 1) / LIMB_BYTE_SIZE;
- limb_t *ptr = buf + (limbs - real_limbs);
-
- for (i = 0; i < real_limbs; i++)
- ptr[i] = bn->d[real_limbs - i - 1];
-}
-
-#if LIMB_BYTE_SIZE == 8
-static ossl_inline uint64_t be64(uint64_t host)
-{
- const union {
- long one;
- char little;
- } is_endian = { 1 };
-
- if (is_endian.little) {
- uint64_t big = 0;
-
- big |= (host & 0xff00000000000000) >> 56;
- big |= (host & 0x00ff000000000000) >> 40;
- big |= (host & 0x0000ff0000000000) >> 24;
- big |= (host & 0x000000ff00000000) >> 8;
- big |= (host & 0x00000000ff000000) << 8;
- big |= (host & 0x0000000000ff0000) << 24;
- big |= (host & 0x000000000000ff00) << 40;
- big |= (host & 0x00000000000000ff) << 56;
- return big;
- } else {
- return host;
- }
-}
-
-#else
-/* Not all platforms have htobe32(). */
-static ossl_inline uint32_t be32(uint32_t host)
-{
- const union {
- long one;
- char little;
- } is_endian = { 1 };
-
- if (is_endian.little) {
- uint32_t big = 0;
-
- big |= (host & 0xff000000) >> 24;
- big |= (host & 0x00ff0000) >> 8;
- big |= (host & 0x0000ff00) << 8;
- big |= (host & 0x000000ff) << 24;
- return big;
- } else {
- return host;
- }
-}
-#endif
-
-/*
- * We assume that intermediate, possible_arg2, blinding, and ctx are used
- * similar to BN_BLINDING_invert_ex() arguments.
- * to_mod is RSA modulus.
- * buf and num is the serialization buffer and its length.
- *
- * Here we use classic/Montgomery multiplication and modulo. After the calculation finished
- * we serialize the new structure instead of BIGNUMs taking endianness into account.
- */
-int ossl_bn_rsa_do_unblind(const BIGNUM *intermediate,
- const BN_BLINDING *blinding,
- const BIGNUM *possible_arg2,
- const BIGNUM *to_mod, BN_CTX *ctx,
- unsigned char *buf, int num)
-{
- limb_t *l_im = NULL, *l_mul = NULL, *l_mod = NULL;
- limb_t *l_ret = NULL, *l_tmp = NULL, l_buf;
- size_t l_im_count = 0, l_mul_count = 0, l_size = 0, l_mod_count = 0;
- size_t l_tmp_count = 0;
- int ret = 0;
- size_t i;
- unsigned char *tmp;
- const BIGNUM *arg1 = intermediate;
- const BIGNUM *arg2 = (possible_arg2 == NULL) ? blinding->Ai : possible_arg2;
-
- l_im_count = (BN_num_bytes(arg1) + LIMB_BYTE_SIZE - 1) / LIMB_BYTE_SIZE;
- l_mul_count = (BN_num_bytes(arg2) + LIMB_BYTE_SIZE - 1) / LIMB_BYTE_SIZE;
- l_mod_count = (BN_num_bytes(to_mod) + LIMB_BYTE_SIZE - 1) / LIMB_BYTE_SIZE;
-
- l_size = l_im_count > l_mul_count ? l_im_count : l_mul_count;
- l_im = OPENSSL_zalloc(l_size * LIMB_BYTE_SIZE);
- l_mul = OPENSSL_zalloc(l_size * LIMB_BYTE_SIZE);
- l_mod = OPENSSL_zalloc(l_mod_count * LIMB_BYTE_SIZE);
-
- if ((l_im == NULL) || (l_mul == NULL) || (l_mod == NULL))
- goto err;
-
- BN_to_limb(arg1, l_im, l_size);
- BN_to_limb(arg2, l_mul, l_size);
- BN_to_limb(to_mod, l_mod, l_mod_count);
-
- l_ret = OPENSSL_malloc(2 * l_size * LIMB_BYTE_SIZE);
-
- if (blinding->m_ctx != NULL) {
- l_tmp_count = mul_limb_numb(l_size) > mod_montgomery_limb_numb(l_mod_count) ?
- mul_limb_numb(l_size) : mod_montgomery_limb_numb(l_mod_count);
- l_tmp = OPENSSL_malloc(l_tmp_count * LIMB_BYTE_SIZE);
- } else {
- l_tmp_count = mul_limb_numb(l_size) > mod_limb_numb(2 * l_size, l_mod_count) ?
- mul_limb_numb(l_size) : mod_limb_numb(2 * l_size, l_mod_count);
- l_tmp = OPENSSL_malloc(l_tmp_count * LIMB_BYTE_SIZE);
- }
-
- if ((l_ret == NULL) || (l_tmp == NULL))
- goto err;
-
- if (blinding->m_ctx != NULL) {
- limb_mul(l_ret, l_im, l_mul, l_size, l_tmp);
- mod_montgomery(l_ret, l_ret, 2 * l_size, l_mod, l_mod_count,
- blinding->m_ctx->n0[0], l_tmp);
- } else {
- limb_mul(l_ret, l_im, l_mul, l_size, l_tmp);
- mod(l_ret, l_ret, 2 * l_size, l_mod, l_mod_count, l_tmp);
- }
-
- /* modulus size in bytes can be equal to num but after limbs conversion it becomes bigger */
- if (num < BN_num_bytes(to_mod)) {
- BNerr(BN_F_OSSL_BN_RSA_DO_UNBLIND, ERR_R_PASSED_INVALID_ARGUMENT);
- goto err;
- }
-
- memset(buf, 0, num);
- tmp = buf + num - BN_num_bytes(to_mod);
- for (i = 0; i < l_mod_count; i++) {
-#if LIMB_BYTE_SIZE == 8
- l_buf = be64(l_ret[i]);
-#else
- l_buf = be32(l_ret[i]);
-#endif
- if (i == 0) {
- int delta = LIMB_BYTE_SIZE - ((l_mod_count * LIMB_BYTE_SIZE) - num);
-
- memcpy(tmp, ((char *)&l_buf) + LIMB_BYTE_SIZE - delta, delta);
- tmp += delta;
- } else {
- memcpy(tmp, &l_buf, LIMB_BYTE_SIZE);
- tmp += LIMB_BYTE_SIZE;
- }
- }
- ret = num;
-
- err:
- OPENSSL_free(l_im);
- OPENSSL_free(l_mul);
- OPENSSL_free(l_mod);
- OPENSSL_free(l_tmp);
- OPENSSL_free(l_ret);
-
- return ret;
-}
diff --git a/ap/lib/libssl/openssl-1.1.1o/crypto/conf/conf_sap.c b/ap/lib/libssl/openssl-1.1.1o/crypto/conf/conf_sap.c
index 82105de..db4f94e 100644
--- a/ap/lib/libssl/openssl-1.1.1o/crypto/conf/conf_sap.c
+++ b/ap/lib/libssl/openssl-1.1.1o/crypto/conf/conf_sap.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2019 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2002-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -43,16 +43,19 @@
int openssl_config_int(const OPENSSL_INIT_SETTINGS *settings)
{
int ret = 0;
+#if defined(OPENSSL_INIT_DEBUG) || !defined(OPENSSL_SYS_UEFI)
const char *filename;
const char *appname;
unsigned long flags;
+#endif
if (openssl_configured)
return 1;
-
+#if defined(OPENSSL_INIT_DEBUG) || !defined(OPENSSL_SYS_UEFI)
filename = settings ? settings->filename : NULL;
appname = settings ? settings->appname : NULL;
flags = settings ? settings->flags : DEFAULT_CONF_MFLAGS;
+#endif
#ifdef OPENSSL_INIT_DEBUG
fprintf(stderr, "OPENSSL_INIT: openssl_config_int(%s, %s, %lu)\n",
diff --git a/ap/lib/libssl/openssl-1.1.1o/crypto/err/openssl.txt b/ap/lib/libssl/openssl-1.1.1o/crypto/err/openssl.txt
index ba3a46d..9f91a4a 100644
--- a/ap/lib/libssl/openssl-1.1.1o/crypto/err/openssl.txt
+++ b/ap/lib/libssl/openssl-1.1.1o/crypto/err/openssl.txt
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved.
#
# Licensed under the OpenSSL license (the "License"). You may not use
# this file except in compliance with the License. You can obtain a copy
@@ -232,7 +232,6 @@
BN_F_BN_SET_WORDS:144:bn_set_words
BN_F_BN_STACK_PUSH:148:BN_STACK_push
BN_F_BN_USUB:115:BN_usub
-BN_F_OSSL_BN_RSA_DO_UNBLIND:151:ossl_bn_rsa_do_unblind
BUF_F_BUF_MEM_GROW:100:BUF_MEM_grow
BUF_F_BUF_MEM_GROW_CLEAN:105:BUF_MEM_grow_clean
BUF_F_BUF_MEM_NEW:101:BUF_MEM_new
diff --git a/ap/lib/libssl/openssl-1.1.1o/crypto/objects/obj_dat.c b/ap/lib/libssl/openssl-1.1.1o/crypto/objects/obj_dat.c
index 7e8de72..e1b4c58 100644
--- a/ap/lib/libssl/openssl-1.1.1o/crypto/objects/obj_dat.c
+++ b/ap/lib/libssl/openssl-1.1.1o/crypto/objects/obj_dat.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -428,6 +428,25 @@
first = 1;
bl = NULL;
+ /*
+ * RFC 2578 (STD 58) says this about OBJECT IDENTIFIERs:
+ *
+ * > 3.5. OBJECT IDENTIFIER values
+ * >
+ * > An OBJECT IDENTIFIER value is an ordered list of non-negative
+ * > numbers. For the SMIv2, each number in the list is referred to as a
+ * > sub-identifier, there are at most 128 sub-identifiers in a value,
+ * > and each sub-identifier has a maximum value of 2^32-1 (4294967295
+ * > decimal).
+ *
+ * So a legitimate OID according to this RFC is at most (32 * 128 / 7),
+ * i.e. 586 bytes long.
+ *
+ * Ref: https://datatracker.ietf.org/doc/html/rfc2578#section-3.5
+ */
+ if (len > 586)
+ goto err;
+
while (len > 0) {
l = 0;
use_bn = 0;
diff --git a/ap/lib/libssl/openssl-1.1.1o/crypto/rsa/rsa_ossl.c b/ap/lib/libssl/openssl-1.1.1o/crypto/rsa/rsa_ossl.c
index 2e3ee4a..cf5a10a 100644
--- a/ap/lib/libssl/openssl-1.1.1o/crypto/rsa/rsa_ossl.c
+++ b/ap/lib/libssl/openssl-1.1.1o/crypto/rsa/rsa_ossl.c
@@ -226,6 +226,7 @@
* will only read the modulus from BN_BLINDING. In both cases it's safe
* to access the blinding without a lock.
*/
+ BN_set_flags(f, BN_FLG_CONSTTIME);
return BN_BLINDING_invert_ex(f, unblind, b, ctx);
}
@@ -412,6 +413,11 @@
goto err;
}
+ if (rsa->flags & RSA_FLAG_CACHE_PUBLIC)
+ if (!BN_MONT_CTX_set_locked(&rsa->_method_mod_n, rsa->lock,
+ rsa->n, ctx))
+ goto err;
+
if (!(rsa->flags & RSA_FLAG_NO_BLINDING)) {
blinding = rsa_get_blinding(rsa, &local_blinding, ctx);
if (blinding == NULL) {
@@ -449,13 +455,6 @@
goto err;
}
BN_with_flags(d, rsa->d, BN_FLG_CONSTTIME);
-
- if (rsa->flags & RSA_FLAG_CACHE_PUBLIC)
- if (!BN_MONT_CTX_set_locked(&rsa->_method_mod_n, rsa->lock,
- rsa->n, ctx)) {
- BN_free(d);
- goto err;
- }
if (!rsa->meth->bn_mod_exp(ret, f, d, rsa->n, ctx,
rsa->_method_mod_n)) {
BN_free(d);
@@ -465,20 +464,11 @@
BN_free(d);
}
- if (blinding) {
- /*
- * ossl_bn_rsa_do_unblind() combines blinding inversion and
- * 0-padded BN BE serialization
- */
- j = ossl_bn_rsa_do_unblind(ret, blinding, unblind, rsa->n, ctx,
- buf, num);
- if (j == 0)
+ if (blinding)
+ if (!rsa_blinding_invert(blinding, ret, unblind, ctx))
goto err;
- } else {
- j = BN_bn2binpad(ret, buf, num);
- if (j < 0)
- goto err;
- }
+
+ j = BN_bn2binpad(ret, buf, num);
switch (padding) {
case RSA_PKCS1_PADDING:
diff --git a/ap/lib/libssl/openssl-1.1.1o/crypto/ui/ui_lib.c b/ap/lib/libssl/openssl-1.1.1o/crypto/ui/ui_lib.c
index 49cc450..335a3d3 100644
--- a/ap/lib/libssl/openssl-1.1.1o/crypto/ui/ui_lib.c
+++ b/ap/lib/libssl/openssl-1.1.1o/crypto/ui/ui_lib.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2001-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -529,6 +529,10 @@
ok = 0;
break;
}
+ } else {
+ ui->flags &= ~UI_FLAG_REDOABLE;
+ ok = -2;
+ goto err;
}
}
diff --git a/ap/lib/libssl/openssl-1.1.1o/crypto/ui/ui_util.c b/ap/lib/libssl/openssl-1.1.1o/crypto/ui/ui_util.c
index 32a3c4e..754c756 100644
--- a/ap/lib/libssl/openssl-1.1.1o/crypto/ui/ui_util.c
+++ b/ap/lib/libssl/openssl-1.1.1o/crypto/ui/ui_util.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2002-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -32,7 +32,7 @@
int UI_UTIL_read_pw(char *buf, char *buff, int size, const char *prompt,
int verify)
{
- int ok = 0;
+ int ok = -2;
UI *ui;
if (size < 1)
@@ -47,8 +47,6 @@
ok = UI_process(ui);
UI_free(ui);
}
- if (ok > 0)
- ok = 0;
return ok;
}
diff --git a/ap/lib/libssl/openssl-1.1.1o/crypto/x509/x509_vfy.c b/ap/lib/libssl/openssl-1.1.1o/crypto/x509/x509_vfy.c
index 925fbb5..66b532a 100644
--- a/ap/lib/libssl/openssl-1.1.1o/crypto/x509/x509_vfy.c
+++ b/ap/lib/libssl/openssl-1.1.1o/crypto/x509/x509_vfy.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -1649,18 +1649,25 @@
}
/* Invalid or inconsistent extensions */
if (ret == X509_PCY_TREE_INVALID) {
- int i;
+ int i, cbcalled = 0;
/* Locate certificates with bad extensions and notify callback. */
- for (i = 1; i < sk_X509_num(ctx->chain); i++) {
+ for (i = 0; i < sk_X509_num(ctx->chain); i++) {
X509 *x = sk_X509_value(ctx->chain, i);
if (!(x->ex_flags & EXFLAG_INVALID_POLICY))
continue;
+ cbcalled = 1;
if (!verify_cb_cert(ctx, x, i,
X509_V_ERR_INVALID_POLICY_EXTENSION))
return 0;
}
+ if (!cbcalled) {
+ /* Should not be able to get here */
+ X509err(X509_F_CHECK_POLICY, ERR_R_INTERNAL_ERROR);
+ return 0;
+ }
+ /* The callback ignored the error so we return success */
return 1;
}
if (ret == X509_PCY_TREE_FAILURE) {
diff --git a/ap/lib/libssl/openssl-1.1.1o/crypto/x509v3/pcy_local.h b/ap/lib/libssl/openssl-1.1.1o/crypto/x509v3/pcy_local.h
index 5daf78d..70d77bf 100644
--- a/ap/lib/libssl/openssl-1.1.1o/crypto/x509v3/pcy_local.h
+++ b/ap/lib/libssl/openssl-1.1.1o/crypto/x509v3/pcy_local.h
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2004-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -111,6 +111,11 @@
};
struct X509_POLICY_TREE_st {
+ /* The number of nodes in the tree */
+ size_t node_count;
+ /* The maximum number of nodes in the tree */
+ size_t node_maximum;
+
/* This is the tree 'level' data */
X509_POLICY_LEVEL *levels;
int nlevel;
@@ -159,7 +164,8 @@
X509_POLICY_NODE *level_add_node(X509_POLICY_LEVEL *level,
X509_POLICY_DATA *data,
X509_POLICY_NODE *parent,
- X509_POLICY_TREE *tree);
+ X509_POLICY_TREE *tree,
+ int extra_data);
void policy_node_free(X509_POLICY_NODE *node);
int policy_node_match(const X509_POLICY_LEVEL *lvl,
const X509_POLICY_NODE *node, const ASN1_OBJECT *oid);
diff --git a/ap/lib/libssl/openssl-1.1.1o/crypto/x509v3/pcy_node.c b/ap/lib/libssl/openssl-1.1.1o/crypto/x509v3/pcy_node.c
index e2d7b15..78bf8b6 100644
--- a/ap/lib/libssl/openssl-1.1.1o/crypto/x509v3/pcy_node.c
+++ b/ap/lib/libssl/openssl-1.1.1o/crypto/x509v3/pcy_node.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2004-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -59,10 +59,15 @@
X509_POLICY_NODE *level_add_node(X509_POLICY_LEVEL *level,
X509_POLICY_DATA *data,
X509_POLICY_NODE *parent,
- X509_POLICY_TREE *tree)
+ X509_POLICY_TREE *tree,
+ int extra_data)
{
X509_POLICY_NODE *node;
+ /* Verify that the tree isn't too large. This mitigates CVE-2023-0464 */
+ if (tree->node_maximum > 0 && tree->node_count >= tree->node_maximum)
+ return NULL;
+
node = OPENSSL_zalloc(sizeof(*node));
if (node == NULL) {
X509V3err(X509V3_F_LEVEL_ADD_NODE, ERR_R_MALLOC_FAILURE);
@@ -70,7 +75,7 @@
}
node->data = data;
node->parent = parent;
- if (level) {
+ if (level != NULL) {
if (OBJ_obj2nid(data->valid_policy) == NID_any_policy) {
if (level->anyPolicy)
goto node_error;
@@ -90,24 +95,33 @@
}
}
- if (tree) {
+ if (extra_data) {
if (tree->extra_data == NULL)
tree->extra_data = sk_X509_POLICY_DATA_new_null();
if (tree->extra_data == NULL){
X509V3err(X509V3_F_LEVEL_ADD_NODE, ERR_R_MALLOC_FAILURE);
- goto node_error;
+ goto extra_data_error;
}
if (!sk_X509_POLICY_DATA_push(tree->extra_data, data)) {
X509V3err(X509V3_F_LEVEL_ADD_NODE, ERR_R_MALLOC_FAILURE);
- goto node_error;
+ goto extra_data_error;
}
}
+ tree->node_count++;
if (parent)
parent->nchild++;
return node;
+ extra_data_error:
+ if (level != NULL) {
+ if (level->anyPolicy == node)
+ level->anyPolicy = NULL;
+ else
+ (void) sk_X509_POLICY_NODE_pop(level->nodes);
+ }
+
node_error:
policy_node_free(node);
return NULL;
diff --git a/ap/lib/libssl/openssl-1.1.1o/crypto/x509v3/pcy_tree.c b/ap/lib/libssl/openssl-1.1.1o/crypto/x509v3/pcy_tree.c
index 6e8322c..8f09c9d 100644
--- a/ap/lib/libssl/openssl-1.1.1o/crypto/x509v3/pcy_tree.c
+++ b/ap/lib/libssl/openssl-1.1.1o/crypto/x509v3/pcy_tree.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2004-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -14,6 +14,20 @@
#include "pcy_local.h"
/*
+ * If the maximum number of nodes in the policy tree isn't defined, set it to
+ * a generous default of 1000 nodes.
+ *
+ * Defining this to be zero means unlimited policy tree growth which opens the
+ * door on CVE-2023-0464.
+ */
+
+#ifndef OPENSSL_POLICY_TREE_NODES_MAX
+# define OPENSSL_POLICY_TREE_NODES_MAX 1000
+#endif
+
+static void exnode_free(X509_POLICY_NODE *node);
+
+/*
* Enable this to print out the complete policy tree at various point during
* evaluation.
*/
@@ -168,6 +182,9 @@
return X509_PCY_TREE_INTERNAL;
}
+ /* Limit the growth of the tree to mitigate CVE-2023-0464 */
+ tree->node_maximum = OPENSSL_POLICY_TREE_NODES_MAX;
+
/*
* http://tools.ietf.org/html/rfc5280#section-6.1.2, figure 3.
*
@@ -184,7 +201,7 @@
level = tree->levels;
if ((data = policy_data_new(NULL, OBJ_nid2obj(NID_any_policy), 0)) == NULL)
goto bad_tree;
- if (level_add_node(level, data, NULL, tree) == NULL) {
+ if (level_add_node(level, data, NULL, tree, 1) == NULL) {
policy_data_free(data);
goto bad_tree;
}
@@ -243,7 +260,8 @@
* Return value: 1 on success, 0 otherwise
*/
static int tree_link_matching_nodes(X509_POLICY_LEVEL *curr,
- X509_POLICY_DATA *data)
+ X509_POLICY_DATA *data,
+ X509_POLICY_TREE *tree)
{
X509_POLICY_LEVEL *last = curr - 1;
int i, matched = 0;
@@ -253,13 +271,13 @@
X509_POLICY_NODE *node = sk_X509_POLICY_NODE_value(last->nodes, i);
if (policy_node_match(last, node, data->valid_policy)) {
- if (level_add_node(curr, data, node, NULL) == NULL)
+ if (level_add_node(curr, data, node, tree, 0) == NULL)
return 0;
matched = 1;
}
}
if (!matched && last->anyPolicy) {
- if (level_add_node(curr, data, last->anyPolicy, NULL) == NULL)
+ if (level_add_node(curr, data, last->anyPolicy, tree, 0) == NULL)
return 0;
}
return 1;
@@ -272,7 +290,8 @@
* Return value: 1 on success, 0 otherwise.
*/
static int tree_link_nodes(X509_POLICY_LEVEL *curr,
- const X509_POLICY_CACHE *cache)
+ const X509_POLICY_CACHE *cache,
+ X509_POLICY_TREE *tree)
{
int i;
@@ -280,7 +299,7 @@
X509_POLICY_DATA *data = sk_X509_POLICY_DATA_value(cache->data, i);
/* Look for matching nodes in previous level */
- if (!tree_link_matching_nodes(curr, data))
+ if (!tree_link_matching_nodes(curr, data, tree))
return 0;
}
return 1;
@@ -311,7 +330,7 @@
/* Curr may not have anyPolicy */
data->qualifier_set = cache->anyPolicy->qualifier_set;
data->flags |= POLICY_DATA_FLAG_SHARED_QUALIFIERS;
- if (level_add_node(curr, data, node, tree) == NULL) {
+ if (level_add_node(curr, data, node, tree, 1) == NULL) {
policy_data_free(data);
return 0;
}
@@ -373,7 +392,7 @@
}
/* Finally add link to anyPolicy */
if (last->anyPolicy &&
- level_add_node(curr, cache->anyPolicy, last->anyPolicy, NULL) == NULL)
+ level_add_node(curr, cache->anyPolicy, last->anyPolicy, tree, 0) == NULL)
return 0;
return 1;
}
@@ -555,15 +574,24 @@
extra->qualifier_set = anyPolicy->data->qualifier_set;
extra->flags = POLICY_DATA_FLAG_SHARED_QUALIFIERS
| POLICY_DATA_FLAG_EXTRA_NODE;
- node = level_add_node(NULL, extra, anyPolicy->parent, tree);
+ node = level_add_node(NULL, extra, anyPolicy->parent,
+ tree, 1);
+ if (node == NULL) {
+ policy_data_free(extra);
+ return 0;
+ }
}
if (!tree->user_policies) {
tree->user_policies = sk_X509_POLICY_NODE_new_null();
- if (!tree->user_policies)
- return 1;
+ if (!tree->user_policies) {
+ exnode_free(node);
+ return 0;
+ }
}
- if (!sk_X509_POLICY_NODE_push(tree->user_policies, node))
+ if (!sk_X509_POLICY_NODE_push(tree->user_policies, node)) {
+ exnode_free(node);
return 0;
+ }
}
return 1;
}
@@ -582,7 +610,7 @@
for (i = 1; i < tree->nlevel; i++, curr++) {
cache = policy_cache_set(curr->cert);
- if (!tree_link_nodes(curr, cache))
+ if (!tree_link_nodes(curr, cache, tree))
return X509_PCY_TREE_INTERNAL;
if (!(curr->flags & X509_V_FLAG_INHIBIT_ANY)
diff --git a/ap/lib/libssl/openssl-1.1.1o/doc/fingerprints.txt b/ap/lib/libssl/openssl-1.1.1o/doc/fingerprints.txt
index 3604fbd..0655df2 100644
--- a/ap/lib/libssl/openssl-1.1.1o/doc/fingerprints.txt
+++ b/ap/lib/libssl/openssl-1.1.1o/doc/fingerprints.txt
@@ -12,6 +12,11 @@
The following is the list of fingerprints for the keys that are
currently in use to sign OpenSSL distributions:
+pub rsa4096 2014-10-04
+ Key fingerprint = EFC0 A467 D613 CB83 C7ED 6D30 D894 E2CE 8B3D 79F5
+uid OpenSSL OMC <openssl-omc@openssl.org>
+uid OpenSSL Security <openssl-security@openssl.org>
+
pub 4096R/7DF9EE8C 2014-10-04
Key fingerprint = 7953 AC1F BC3D C8B3 B292 393E D5E9 E43F 7DF9 EE8C
uid Richard Levitte <richard@opensslfoundation.com>
diff --git a/ap/lib/libssl/openssl-1.1.1o/doc/man3/X509_VERIFY_PARAM_set_flags.pod b/ap/lib/libssl/openssl-1.1.1o/doc/man3/X509_VERIFY_PARAM_set_flags.pod
index f6f304b..6c79b42 100644
--- a/ap/lib/libssl/openssl-1.1.1o/doc/man3/X509_VERIFY_PARAM_set_flags.pod
+++ b/ap/lib/libssl/openssl-1.1.1o/doc/man3/X509_VERIFY_PARAM_set_flags.pod
@@ -92,8 +92,9 @@
X509_VERIFY_PARAM_set_time() sets the verification time in B<param> to
B<t>. Normally the current time is used.
-X509_VERIFY_PARAM_add0_policy() enables policy checking (it is disabled
-by default) and adds B<policy> to the acceptable policy set.
+X509_VERIFY_PARAM_add0_policy() adds B<policy> to the acceptable policy set.
+Contrary to preexisting documentation of this function it does not enable
+policy checking.
X509_VERIFY_PARAM_set1_policies() enables policy checking (it is disabled
by default) and sets the acceptable policy set to B<policies>. Any existing
@@ -377,9 +378,13 @@
The X509_VERIFY_PARAM_get_hostflags() function was added in OpenSSL 1.1.0i.
+The function X509_VERIFY_PARAM_add0_policy() was historically documented as
+enabling policy checking however the implementation has never done this.
+The documentation was changed to align with the implementation.
+
=head1 COPYRIGHT
-Copyright 2009-2020 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2009-2023 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
diff --git a/ap/lib/libssl/openssl-1.1.1o/engines/e_padlock.c b/ap/lib/libssl/openssl-1.1.1o/engines/e_padlock.c
index a82c07e..80756e8 100644
--- a/ap/lib/libssl/openssl-1.1.1o/engines/e_padlock.c
+++ b/ap/lib/libssl/openssl-1.1.1o/engines/e_padlock.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2019 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2004-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -144,6 +144,19 @@
return (padlock_use_rng || padlock_use_ace);
}
+# ifndef AES_ASM
+static int padlock_aes_set_encrypt_key(const unsigned char *userKey,
+ const int bits,
+ AES_KEY *key);
+static int padlock_aes_set_decrypt_key(const unsigned char *userKey,
+ const int bits,
+ AES_KEY *key);
+# define AES_ASM
+# define AES_set_encrypt_key padlock_aes_set_encrypt_key
+# define AES_set_decrypt_key padlock_aes_set_decrypt_key
+# include "../crypto/aes/aes_core.c"
+# endif
+
/*
* This stuff is needed if this ENGINE is being compiled into a
* self-contained shared-library.
@@ -639,12 +652,10 @@
AES_set_decrypt_key(key, key_len, &cdata->ks);
else
AES_set_encrypt_key(key, key_len, &cdata->ks);
-# ifndef AES_ASM
/*
* OpenSSL C functions use byte-swapped extended key.
*/
padlock_key_bswap(&cdata->ks);
-# endif
cdata->cword.b.keygen = 1;
break;
diff --git a/ap/lib/libssl/openssl-1.1.1o/include/crypto/bn.h b/ap/lib/libssl/openssl-1.1.1o/include/crypto/bn.h
index 9f866ed..250914c 100644
--- a/ap/lib/libssl/openssl-1.1.1o/include/crypto/bn.h
+++ b/ap/lib/libssl/openssl-1.1.1o/include/crypto/bn.h
@@ -86,10 +86,5 @@
int bn_rshift_fixed_top(BIGNUM *r, const BIGNUM *a, int n);
int bn_div_fixed_top(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m,
const BIGNUM *d, BN_CTX *ctx);
-int ossl_bn_rsa_do_unblind(const BIGNUM *intermediate,
- const BN_BLINDING *blinding,
- const BIGNUM *possible_arg2,
- const BIGNUM *to_mod, BN_CTX *ctx,
- unsigned char *buf, int num);
#endif
diff --git a/ap/lib/libssl/openssl-1.1.1o/include/openssl/opensslv.h b/ap/lib/libssl/openssl-1.1.1o/include/openssl/opensslv.h
index 7b6c212..5ed047d 100644
--- a/ap/lib/libssl/openssl-1.1.1o/include/openssl/opensslv.h
+++ b/ap/lib/libssl/openssl-1.1.1o/include/openssl/opensslv.h
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2022 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -39,8 +39,8 @@
* (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for
* major minor fix final patch/beta)
*/
-# define OPENSSL_VERSION_NUMBER 0x1010114fL
-# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.1t 7 Feb 2023"
+# define OPENSSL_VERSION_NUMBER 0x1010115fL
+# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.1u 30 May 2023"
/*-
* The macros below are to be used for shared library (.so, .dll, ...)
diff --git a/ap/lib/libssl/openssl-1.1.1o/test/certs/ca-pol-cert.pem b/ap/lib/libssl/openssl-1.1.1o/test/certs/ca-pol-cert.pem
new file mode 100644
index 0000000..244af32
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/test/certs/ca-pol-cert.pem
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDFzCCAf+gAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTIzMDMwODEyMjMxNloYDzIxMjMwMzA5MTIyMzE2WjANMQswCQYDVQQD
+DAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJadpD0ASxxfxsvd
+j9IxsogVzMSGLFziaYuE9KejU9+R479RifvwfBANO62sNWJ19X//9G5UjwWmkiOz
+n1k50DkYsBBA3mJzik6wjt/c58lBIlSEgAgpvDU8ht8w3t20JP9+YqXAeugqFj/W
+l9rFQtsvaWSRywjXVlp5fxuEQelNnXcJEKhsKTNExsBUZebo4/J1BWpklWzA9P0l
+YW5INvDAAwcF1nzlEf0Y6Eot03IMNyg2MTE4hehxjdgCSci8GYnFirE/ojXqqpAc
+ZGh7r2dqWgZUD1Dh+bT2vjrUzj8eTH3GdzI+oljt29102JIUaqj3yzRYkah8FLF9
+CLNNsUcCAwEAAaN7MHkwDwYDVR0TAQH/BAUwAwEB/zALBgNVHQ8EBAMCAQYwHQYD
+VR0OBBYEFLQRM/HX4l73U54gIhBPhga/H8leMB8GA1UdIwQYMBaAFI71Ja8em2uE
+PXyAmslTnE1y96NSMBkGA1UdIAQSMBAwDgYMKwYBBAGBgVy8+0cBMA0GCSqGSIb3
+DQEBCwUAA4IBAQBbE+MO9mewWIUY2kt85yhl0oZtvVxbn9K2Hty59ItwJGRNfzx7
+Ge7KgawkvNzMOXmj6qf8TpbJnf41ZLWdRyVZBVyIwrAKIVw1VxfGh8aEifHKN97H
+unZkBPcUkAhUJSiC1BOD/euaMYqOi8QwiI702Q6q1NBY1/UKnV/ZIBLecnqfj9vZ
+7T0wKxrwGYBztP4pNcxCmBoD9Dg+Dx3ZElo0WXyO4SOh/BgrsKJHKyhbuTpjrI/g
+DhcINRp6+lIzuFBtJ67+YXnAEspb3lKMk0YL/LXrCNF2scdmNfOPwHi+OKBqt69C
+9FJyWFEMxx2qm/ENE9sbOswgJRnKkaAqHBHx
+-----END CERTIFICATE-----
diff --git a/ap/lib/libssl/openssl-1.1.1o/test/certs/ee-cert-policies-bad.pem b/ap/lib/libssl/openssl-1.1.1o/test/certs/ee-cert-policies-bad.pem
new file mode 100644
index 0000000..0fcd637
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/test/certs/ee-cert-policies-bad.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDTTCCAjWgAwIBAgIBAjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDDAJDQTAg
+Fw0yMzAzMDgxMjIzMzJaGA8yMTIzMDMwOTEyMjMzMlowGTEXMBUGA1UEAwwOc2Vy
+dmVyLmV4YW1wbGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo/4lY
+YYWu3tssD9Vz++K3qBt6dWAr1H08c3a1rt6TL38kkG3JHPSKOM2fooAWVsu0LLuT
+5Rcf/w3GQ/4xNPgo2HXpo7uIgu+jcuJTYgVFTeAxl++qnRDSWA2eBp4yuxsIVl1l
+Dz9mjsI2oBH/wFk1/Ukc3RxCMwZ4rgQ4I+XndWfTlK1aqUAfrFkQ9QzBZK1KxMY1
+U7OWaoIbFYvRmavknm+UqtKW5Vf7jJFkijwkFsbSGb6CYBM7YrDtPh2zyvlr3zG5
+ep5LR2inKcc/SuIiJ7TvkGPX79ByST5brbkb1Ctvhmjd1XMSuEPJ3EEPoqNGT4tn
+iIQPYf55NB9KiR+3AgMBAAGjgakwgaYwHQYDVR0OBBYEFOeb4iqtimw6y3ZR5Y4H
+mCKX4XOiMB8GA1UdIwQYMBaAFLQRM/HX4l73U54gIhBPhga/H8leMAkGA1UdEwQC
+MAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwGQYDVR0RBBIwEIIOc2VydmVyLmV4YW1w
+bGUwKQYDVR0gBCIwIDAOBgwrBgEEAYGBXLz7RwEwDgYMKwYBBAGBgVy8+0cBMA0G
+CSqGSIb3DQEBCwUAA4IBAQArwtwNO++7kStcJeMg3ekz2D/m/8UEjTA1rknBjQiQ
+P0FK7tNeRqus9i8PxthNWk+biRayvDzaGIBV7igpDBPfXemDgmW9Adc4MKyiQDfs
+YfkHi3xJKvsK2fQmyCs2InVDaKpVAkNFcgAW8nSOhGliqIxLb0EOLoLNwaktou0N
+XQHmRzY8S7aIr8K9Qo9y/+MLar+PS4h8l6FkLLkTICiFzE4/wje5S3NckAnadRJa
+QpjwM2S6NuA+tYWuOcN//r7BSpW/AZKanYWPzHMrKlqCh+9o7sthPd72+hObG9kx
+wSGdzfStNK1I1zM5LiI08WtXCvR6AfLANTo2x1AYhSxF
+-----END CERTIFICATE-----
diff --git a/ap/lib/libssl/openssl-1.1.1o/test/certs/ee-cert-policies.pem b/ap/lib/libssl/openssl-1.1.1o/test/certs/ee-cert-policies.pem
new file mode 100644
index 0000000..2f06d74
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/test/certs/ee-cert-policies.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDPTCCAiWgAwIBAgIBAjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQDDAJDQTAg
+Fw0yMzAzMDgxMjIzMjNaGA8yMTIzMDMwOTEyMjMyM1owGTEXMBUGA1UEAwwOc2Vy
+dmVyLmV4YW1wbGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo/4lY
+YYWu3tssD9Vz++K3qBt6dWAr1H08c3a1rt6TL38kkG3JHPSKOM2fooAWVsu0LLuT
+5Rcf/w3GQ/4xNPgo2HXpo7uIgu+jcuJTYgVFTeAxl++qnRDSWA2eBp4yuxsIVl1l
+Dz9mjsI2oBH/wFk1/Ukc3RxCMwZ4rgQ4I+XndWfTlK1aqUAfrFkQ9QzBZK1KxMY1
+U7OWaoIbFYvRmavknm+UqtKW5Vf7jJFkijwkFsbSGb6CYBM7YrDtPh2zyvlr3zG5
+ep5LR2inKcc/SuIiJ7TvkGPX79ByST5brbkb1Ctvhmjd1XMSuEPJ3EEPoqNGT4tn
+iIQPYf55NB9KiR+3AgMBAAGjgZkwgZYwHQYDVR0OBBYEFOeb4iqtimw6y3ZR5Y4H
+mCKX4XOiMB8GA1UdIwQYMBaAFLQRM/HX4l73U54gIhBPhga/H8leMAkGA1UdEwQC
+MAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwGQYDVR0RBBIwEIIOc2VydmVyLmV4YW1w
+bGUwGQYDVR0gBBIwEDAOBgwrBgEEAYGBXLz7RwEwDQYJKoZIhvcNAQELBQADggEB
+AGbWslmAAdMX3+5ChcnFrX+NqDGoyhb3PTgWdtlQB5qtWdIt4rSxN50OcQxFTX0D
+QOBabSzR0DDKrgfBe4waL19WsdEvR9GyO4M7ASze/A3IEZue9C9k0n7Vq8zDaAZl
+CiR/Zqo9nAOuhKHMgmC/NjUlX7STv5pJVgc4SH8VEKmSRZDmNihaOalUtK5X8/Oa
+dawKxsZcaP5IKnOEPPKjtVNJxBu5CXywJHsO0GcoDEnEx1/NLdFoJ6WFw8NuTyDK
+NGLq2MHEdyKaigHQlptEs9bXyu9McJjzbx0uXj3BenRULASreccFej0L1RU6jDlk
+D3brBn24UISaFRZoB7jsjok=
+-----END CERTIFICATE-----
diff --git a/ap/lib/libssl/openssl-1.1.1o/test/certs/mkcert.sh b/ap/lib/libssl/openssl-1.1.1o/test/certs/mkcert.sh
index d8e7042..f7aec41 100755
--- a/ap/lib/libssl/openssl-1.1.1o/test/certs/mkcert.sh
+++ b/ap/lib/libssl/openssl-1.1.1o/test/certs/mkcert.sh
@@ -1,6 +1,6 @@
#! /bin/bash
#
-# Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright 2016-2023 The OpenSSL Project Authors. All Rights Reserved.
# Copyright (c) 2016 Viktor Dukhovni <openssl-users@dukhovni.org>.
# All rights reserved.
#
@@ -117,11 +117,12 @@
local OPTIND=1
local purpose=
- while getopts p: o
+ while getopts p:c: o
do
case $o in
p) purpose="$OPTARG";;
- *) echo "Usage: $0 genca [-p EKU] cn keyname certname cakeyname cacertname" >&2
+ c) certpol="$OPTARG";;
+ *) echo "Usage: $0 genca [-p EKU][-c policyoid] cn keyname certname cakeyname cacertname" >&2
return 1;;
esac
done
@@ -142,6 +143,10 @@
if [ -n "$NC" ]; then
exts=$(printf "%s\nnameConstraints = %s\n" "$exts" "$NC")
fi
+ if [ -n "$certpol" ]; then
+ exts=$(printf "%s\ncertificatePolicies = %s\n" "$exts" "$certpol")
+ fi
+
csr=$(req "$key" "CN = $cn") || return 1
echo "$csr" |
cert "$cert" "$exts" -CA "${cacert}.pem" -CAkey "${cakey}.pem" \
diff --git a/ap/lib/libssl/openssl-1.1.1o/test/certs/setup.sh b/ap/lib/libssl/openssl-1.1.1o/test/certs/setup.sh
index 020f6ce..1cbef67 100755
--- a/ap/lib/libssl/openssl-1.1.1o/test/certs/setup.sh
+++ b/ap/lib/libssl/openssl-1.1.1o/test/certs/setup.sh
@@ -405,3 +405,9 @@
root-ed448-key root-ed448-cert
OPENSSL_SIGALG=ED448 OPENSSL_KEYALG=ed448 ./mkcert.sh genee ed448 \
server-ed448-key server-ed448-cert root-ed448-key root-ed448-cert
+
+# certificatePolicies extension
+./mkcert.sh genca -c "1.3.6.1.4.1.16604.998855.1" "CA" ca-key ca-pol-cert root-key root-cert
+./mkcert.sh geneeextra server.example ee-key ee-cert-policies ca-key ca-cert "certificatePolicies=1.3.6.1.4.1.16604.998855.1"
+# We can create a cert with a duplicate policy oid - but its actually invalid!
+./mkcert.sh geneeextra server.example ee-key ee-cert-policies-bad ca-key ca-cert "certificatePolicies=1.3.6.1.4.1.16604.998855.1,1.3.6.1.4.1.16604.998855.1"
diff --git a/ap/lib/libssl/openssl-1.1.1o/test/recipes/25-test_verify.t b/ap/lib/libssl/openssl-1.1.1o/test/recipes/25-test_verify.t
index ffa48ed..0084dd2 100644
--- a/ap/lib/libssl/openssl-1.1.1o/test/recipes/25-test_verify.t
+++ b/ap/lib/libssl/openssl-1.1.1o/test/recipes/25-test_verify.t
@@ -1,5 +1,5 @@
#! /usr/bin/env perl
-# Copyright 2015-2021 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright 2015-2023 The OpenSSL Project Authors. All Rights Reserved.
#
# Licensed under the OpenSSL license (the "License"). You may not use
# this file except in compliance with the License. You can obtain a copy
@@ -27,7 +27,7 @@
run(app([@args]));
}
-plan tests => 146;
+plan tests => 148;
# Canonical success
ok(verify("ee-cert", "sslserver", ["root-cert"], ["ca-cert"]),
@@ -409,3 +409,14 @@
"ED25519 signature");
}
+
+# Certificate Policies
+ok(verify("ee-cert-policies", "sslserver", ["root-cert"], ["ca-pol-cert"],
+ "-policy_check", "-policy", "1.3.6.1.4.1.16604.998855.1",
+ "-explicit_policy"),
+ "Certificate policy");
+
+ok(!verify("ee-cert-policies-bad", "sslserver", ["root-cert"], ["ca-pol-cert"],
+ "-policy_check", "-policy", "1.3.6.1.4.1.16604.998855.1",
+ "-explicit_policy"),
+ "Bad certificate policy");
diff --git a/ap/lib/libssl/openssl-1.1.1o/test/recipes/80-test_cms.t b/ap/lib/libssl/openssl-1.1.1o/test/recipes/80-test_cms.t
index 79ae130..adb60e1 100644
--- a/ap/lib/libssl/openssl-1.1.1o/test/recipes/80-test_cms.t
+++ b/ap/lib/libssl/openssl-1.1.1o/test/recipes/80-test_cms.t
@@ -590,7 +590,7 @@
sub {
ok(run(app(['openssl', 'cms', '-encrypt',
'-in', srctop_file("test", "smcont.txt"),
- '-stream', '-recip',
+ '-aes128', '-stream', '-recip',
srctop_file("test/smime-certs", "badrsa.pem"),
])),
"Check failure during BIO setup with -stream is handled correctly");
diff --git a/ap/lib/libssl/openssl-1.1.1o/test/recipes/80-test_policy_tree.t b/ap/lib/libssl/openssl-1.1.1o/test/recipes/80-test_policy_tree.t
new file mode 100644
index 0000000..1ddd65e
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/test/recipes/80-test_policy_tree.t
@@ -0,0 +1,43 @@
+#! /usr/bin/env perl
+# Copyright 2023 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the Apache License 2.0 (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use POSIX;
+use OpenSSL::Test qw/:DEFAULT srctop_file with data_file/;
+
+use OpenSSL::Test::Utils;
+use OpenSSL::Glob;
+
+setup("test_policy_tree");
+
+plan skip_all => "No EC support" if disabled("ec");
+
+plan tests => 2;
+
+# The small pathological tree is expected to work
+my $small_chain = srctop_file("test", "recipes", "80-test_policy_tree_data",
+ "small_policy_tree.pem");
+my $small_leaf = srctop_file("test", "recipes", "80-test_policy_tree_data",
+ "small_leaf.pem");
+
+ok(run(app(["openssl", "verify", "-CAfile", $small_chain,
+ "-policy_check", $small_leaf])),
+ "test small policy tree");
+
+# The large pathological tree is expected to fail
+my $large_chain = srctop_file("test", "recipes", "80-test_policy_tree_data",
+ "large_policy_tree.pem");
+my $large_leaf = srctop_file("test", "recipes", "80-test_policy_tree_data",
+ "large_leaf.pem");
+
+ok(!run(app(["openssl", "verify", "-CAfile", $large_chain,
+ "-policy_check", $large_leaf])),
+ "test large policy tree");
diff --git a/ap/lib/libssl/openssl-1.1.1o/test/recipes/80-test_policy_tree_data/large_leaf.pem b/ap/lib/libssl/openssl-1.1.1o/test/recipes/80-test_policy_tree_data/large_leaf.pem
new file mode 100644
index 0000000..39ed6a7
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/test/recipes/80-test_policy_tree_data/large_leaf.pem
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBmTCCAT+gAwIBAgIBADAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
+Q0EgMTAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowGjEYMBYGA1UE
+AxMPd3d3LmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEp6Qe
+jrN6A0ZjqaFbX/zO01aVYXH5kthBDTEO/fU4H0CdwqrfyMsFrObwssrTJcsmSFKP
+x1FYr8wT2wCACs19lqN4MHYwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMAwGA1UdEwEB/wQCMAAwGgYDVR0RBBMwEYIPd3d3LmV4YW1wbGUuY29t
+MCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMAoGCCqGSM49
+BAMCA0gAMEUCIDGT8SVBkWJEZ2EzXm8M895NrNRmfc8uoheP0KKv+ndHAiEA2Onr
+20J+zTaR7vONY/1DleMm7fGY3UxTobSHSvOKbfY=
+-----END CERTIFICATE-----
diff --git a/ap/lib/libssl/openssl-1.1.1o/test/recipes/80-test_policy_tree_data/large_policy_tree.pem b/ap/lib/libssl/openssl-1.1.1o/test/recipes/80-test_policy_tree_data/large_policy_tree.pem
new file mode 100644
index 0000000..5cd31c3
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/test/recipes/80-test_policy_tree_data/large_policy_tree.pem
@@ -0,0 +1,434 @@
+-----BEGIN CERTIFICATE-----
+MIICEDCCAbagAwIBAgIBATAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
+Q0EgMjAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
+AxMLUG9saWN5IENBIDEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATgyLz1C0dD
+ib5J/QmoE4d+Nf5yvvlzjVZHWIu7iCMEqK67cnA1RtMp1d0xdiNQS6si3ExNPBF+
+ELdkP0E6x26Jo4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSs+ml5upH1h25oUB0Ep4vd
+SUdZ/DAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSAAwRQIhAOME8j1/cMogNnuNCb0O
+RIOE9pLP4je78KJiP8CZm0iOAiALr8NI67orD/VpfRptkjCmOd7rTWMVOOJfBr6N
+VJFLjw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICDzCCAbagAwIBAgIBAjAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
+Q0EgMzAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
+AxMLUG9saWN5IENBIDIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASIdzU/FF3Y
+rTsTX04fRIN2yrZwxvOAfZ6DuEgKRxEimJx1nCyETuMmfDowm52mx/Cyk08xorp8
+PhGEbacMd9kio4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSwok/8RfJbVGTzyF5jhWLc
+hO7pcDAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDRwAwRAIgYVF7bXxUuOzAZF6SmeIJ
+s+iL15bLSQ2rW7QDc6QYp9MCIAup6YokIcr8JaGttHmLaKbASQLxYDGHhfFIVZuI
+BDvT
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEDCCAbagAwIBAgIBAzAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
+Q0EgNDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
+AxMLUG9saWN5IENBIDMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ38Llxxj32
+H3NN4Z1V8IuRKXLNhdU4z+NbT1rahusEyAHF+z9VTjim+HHfqFKV1QyNOJZ4rMA9
+J/gODWsNCT4po4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS11YgFNKTx3a6kssIijnA9
+DiOhoTAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSAAwRQIhAJXNZHMpvlnMfxhcG6EF
+Vw1pEXJ+iZnWT+Yu02a2zhamAiAiOKNhALBw/iKhQrwLo0cdx6UEfUKbaqTSGiax
+tHUylA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEDCCAbagAwIBAgIBBDAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
+Q0EgNTAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
+AxMLUG9saWN5IENBIDQwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATo81HWQ/we
+egmoO/LMntQK1VQ9YzU627nblv/XWoOjEd/tBeE8+Un4jUnhZqNrP2TAzy48jEaT
+1DShCQNQGek7o4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS6/F38QgbZSHib0W1XtMfs
+4O5DTDAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSAAwRQIgXMYCQWi5/6iQw+zqyEav
+CE7kOfTpm9GN4bZX5Eau5AACIQD0rDZwsjWf6hI2Hn8IlpwYVVC9bpxrAM/JmYuu
+79V/uw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEDCCAbagAwIBAgIBBTAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
+Q0EgNjAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
+AxMLUG9saWN5IENBIDUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARsPMjOkmzJ
+2jwT30mKUvAFYVgOlgcoXxYr61p54mbQMmmH49ABmJQMu5rjwjwYlYA3UzbEN9ki
+hMsJz/4JIrJGo4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQeflZRWUze+7jne9MkYYy5
+iWFgJDAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSAAwRQIhAIN6BjMnPlixl3i6Z1Xa
+pZQt52MOCHPm0XzXDn2XlC9+AiAn146u8rbppdEGMFr21vfFZaktwEb0cZkC9fBp
+S1uKwQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEDCCAbagAwIBAgIBBjAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
+Q0EgNzAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
+AxMLUG9saWN5IENBIDYwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASVmpozZzxX
+f6rFinkqS0y8sfbOwcM0gNuR0x83mmZH5+a8W4ug5W80QiBaS3rHtwTsFHpCeQKq
+eJvfb/esgJu8o4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQPuF2sXR0vOHJynh57qefK
++h7RGDAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSAAwRQIgDX0jHPq1alZoMbPDmbZp
+QYuM9UQagQ5KJgVU1B0Mh2ECIQCtdyfT2h5jZvz3lLKkQ9a6LddIuqsyNKDAxbpb
+PlBOOA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEDCCAbagAwIBAgIBBzAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
+Q0EgODAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
+AxMLUG9saWN5IENBIDcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASb+9fN9RLe
+SHGynsKXhLWGhIS/kZ6Yl97+h23xpjLaZUOzhn5VafXdmLrQ4BmqSMHqIKzcc8IB
+STV3NwO4NxPBo4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTBF9x+MrsyqoCaTQ2kB7Bn
+tpK2qDAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSAAwRQIhAI37Di/5MrSj2clr+2pX
+iXzeDIvlaxzVetyH3ibUZZBSAiA41aPIssHi9evv2mZonEvXY8g+DKbh/3L2mSub
+/AyLoA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICETCCAbagAwIBAgIBCDAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
+Q0EgOTAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
+AxMLUG9saWN5IENBIDgwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASrRS12/zEP
+RUNye9SLadN4xK+xfTwyXfxeC+jam+J98lOMcHz6abnLpk5tJ7wab4Pkygsbj1V2
+STxeW+YH23dto4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQYpYFLhosbir7KoyYdehsQ
+6DdLfzAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSQAwRgIhAPTCN+zWFG2cFzJ+nlfg
+JMY4U2e3vqTQmFeBXYlBASb9AiEA0KvsyNwloF1YeeaYcP5iHoRGRo8UMD3QWKEE
+vWI14Uk=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEDCCAbegAwIBAgIBCTAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMTAwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBYxFDASBgNV
+BAMTC1BvbGljeSBDQSA5MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEoR4udEgt
+usb9f946+Xznm7Q3OaW4DTZjO7wqX1I+27zDp0JrUbCZwtm0Cw+pYkG5kPpNcFTK
+7yG3YgqM1sT+6aOB8jCB7zAOBgNVHQ8BAf8EBAMCAgQwEwYDVR0lBAwwCgYIKwYB
+BQUHAwEwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjgtOHvFBcUQ03AKUbvuJ
+IWO5lzUwJQYDVR0gBB4wHDAMBgpghkgBZQMCATABMAwGCmCGSAFlAwIBMAIwcQYD
+VR0hBGowaDAYBgpghkgBZQMCATABBgpghkgBZQMCATABMBgGCmCGSAFlAwIBMAEG
+CmCGSAFlAwIBMAIwGAYKYIZIAWUDAgEwAgYKYIZIAWUDAgEwATAYBgpghkgBZQMC
+ATACBgpghkgBZQMCATACMAoGCCqGSM49BAMCA0cAMEQCICIboTAzG1DvCY/0tA/o
+l18zrW9qKVnt4mxih5JQe4fOAiBOF2ZeUT2/ZtdFhZmg+zl/fGrQ1xEx09/S956k
+Ig4S9Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEjCCAbigAwIBAgIBCjAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMTEwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAxMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLxetqJp
+VR6apJytboxFCCooQ7jVcc7yoHhjlH8HsaJS3GrWpyMgiqOfyWt4KFMynKkgCU1K
+1QcU9aC5BfRQpyWjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFD6etMtD6Qpa7TjVQBgV
+/4PhZP4DMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNIADBFAiEA+5uiOjJoq5nU7lKN
+rZtBdYNqUKvHuYB+jiNEfWvxx2cCIFZEJCGw8fzqkAyGWkLe10w8PUzPM64nh757
+pEtxCzZh
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEjCCAbigAwIBAgIBCzAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMTIwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAxMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPQuXEeo
+BrbyENdz9HqAoWMSQx1BErsUcQaneq3L0/VHHJBPKihb8s4nB/2yZaEarr8LFAvi
+ofx+4egydkP0mJ+jgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFIoC4qL79Uy3+m26Y+ch
++sE6gCOMMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNIADBFAiEAx/vMDhaH4EYTM2v9
+GeM1xTP9pNRgak69JQLKLu1VM1YCIF1RYC8Fma5Bc0cZAYY+Gj7dEf9qHj1TODA5
+C9es2CPY
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICETCCAbigAwIBAgIBDDAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMTMwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAxMjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDlEv73o
+ej8Xvc3UodhSHkech80DbuBKdeldOTrRp6ZaVUP3vMgjNUJkh4WkvP3UVTe5SV4D
+zQXDIiwAEJu+zdmjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCAn0wYXyRdliJOBFvvJ
+eZoGTiyOMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNHADBEAiAo2PPmLBZpcT0bst/C
+SXvnl3gztIZu89O1MKsNwFcM9QIgIzqZx/o9MF/fP7zbLWErVcUQViOGiCRBLVh7
+ppb7CoA=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEzCCAbigAwIBAgIBDTAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMTQwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAxMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABB8mgAoN
+rmFo937IBKXKuxHedUjOL7y3cpDYD1H3C4HRDBQDVOL31lC5kJUhS4HBLvJQwebR
+2kW35E3AnhbY/oKjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFBGbO20Xp/q0fPChjLHL
+WuJwSNc1MCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNJADBGAiEA3qGzdevdYfmiSBj9
+t9oE8hfEP+APqGiStlOLKD6xVK0CIQDq9cVa2KXMEz7YwmMO3lxoQFDPEXftbRaC
+edFB7q/YXg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEzCCAbigAwIBAgIBDjAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMTUwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAxNDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABHDiOMtx
+5sfJs/WDnw0xS5NYlkbgy2eOZHAmC/jhRp6cjShZrr2/S4IJsH8B2VMcYAHgum6a
+eMjqWFIMxIjN5xyjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOWtYUeAPk66m0o6Z7ax
+1RN42wmkMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNJADBGAiEA+AcazVKKPfqkpcJw
+rkXWIyZrTe+1PNETQzaJCooGNGkCIQDdfHf1I78e+ogaDcjkDe0s3R9VhkvjCty6
+uKKFtNGHMQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEjCCAbigAwIBAgIBDzAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMTYwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAxNTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKCkdSYz
++zyHItG2rQSyCh018b4bu9Zrw8nzkCBgkT2IyycNtpabYkWhxcEL29ZFqBnB+l7N
+5fYmHl5CmflJPh+jgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNanrmjMEN3PndPGeucm
+mST9ucNWMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNIADBFAiAFt48yhTTv0rP29N8H
+yRhAQGfnV4t1b8JucixLSfe32QIhAOef6iiwLxbBOMUn5ZN/WAK5TERem6DLSzWN
+/PTXHAAt
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICETCCAbigAwIBAgIBEDAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMTcwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAxNjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH5txyDp
+DfRsIyYPTAQ+fuxk08E3/tpChVWoog4XQvod61wcUO1/nhoTGNKZZOhN5uhKWJWb
+1futz+XxV2QxTCyjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHSlcxgh3gxgVag1JvAk
+zbHlgMbEMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNHADBEAiA9Ee47PnxqW0QmELB+
+dd90Fz8wcQFZlNmkPW4Oq2xr/wIgGlxfutQq7l3TU5hyyO0Lh01AHn2DC5KPFPwE
+l8S9VeY=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEzCCAbigAwIBAgIBETAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMTgwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABAJvlQKB
+gJZ+Tysa6iwhllPXCeJrkan6WUm+oqOIY02/SpI5Mba1Kwg73Fsswx3Eywt8sxA2
+4fiaqwg+xZoil06jgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFM/udZ1ib8qDfShdfdfX
+8gL6w7VMMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNJADBGAiEA6kK7vAYF2TPXzywn
++SDLsiGbU6Sj8aTtsJZf9DmhKr4CIQCt4FfI7IWinqNlURXe4HSBPsekcQkOpwjK
+PuJRx3fuFw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEzCCAbigAwIBAgIBEjAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMTkwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAxODBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEerejCw
+gAy7GecLVbQw6eL8k1cGWwLt+wl3sn8he8fA0I+KoFfcOCgtvOF59RMXnjZ1+7OC
+kz3mNDVSbKY6KO2jgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFM0OUOtOKTcTMRXGQwbw
+GOoLCOEYMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNJADBGAiEAziPsm2dArB/3ILqm
+04mZl8/DX6dB4EmU+FPF2UpAeLwCIQCofc27tisg3L1mPNeiwZ26+rDe5SdixiUc
+S3KWOJ1cTg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEjCCAbigAwIBAgIBEzAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMjAwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAxOTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPmB5spr
+C64/21ssufcbshGnQtAWbk2o2l+ej6pMMPIZhmNyvM450L3dFX12UBNcaERCABmr
+BEJL7IubGWE9CVOjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJCh/1mh0Hl2+LE0osUv
+OJCmV3IYMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNIADBFAiEAtxMIkO4xCRSQCU6d
+0jt+Go4xj/R4bQFWbZrlS9+fYUECICuWAgT3evhoo34o04pU84UaYOvO5V0GJsTt
+hrS1v3hT
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEzCCAbigAwIBAgIBFDAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMjEwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAyMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABHdvTDYo
+M/padIV3LdTnrzwMy1HSTeJ2aTUalkVV17uL2i3C51rWM2pl+qlRordq6W2GboMz
+/+78HhKMcCrMWKCjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFAbZN0eSPw3MyvWIEix6
+GnYRIiFkMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNJADBGAiEAlaapLXHwGNkeEwc0
+jsY2XhuR3RlVhD4T2k/QyJRQ0s0CIQD5E+e+5QTe5s+534Lwcxe2iFb3oFm+8g81
+OBVtfmSMGg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEjCCAbigAwIBAgIBFTAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMjIwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAyMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLTu8R5Y
+7Po4W05hWperfod6mXezwWgAVk2RW2EG2vy4NeZeML2EFhg2geNc6N5Goep9t7pn
+d+BtORRvR75oCDijgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNs0d2vXsRj3YYsBrWDo
+jrvcEA+eMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNIADBFAiBB603Ui+L60FcUWPrB
+Ch06hmgle2u0P07Go/XjTk00ZQIhALGhNArJFEY0gu+XUtyKEZt7BZ0/sh5dtLDP
+xkRgR6Wh
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEzCCAbigAwIBAgIBFjAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMjMwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAyMjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPXpzC9/
+KGblQyjhdcS0a8KBPAiS7c0n+V0i9JItbyze38Ncrctp0wIGHZLjRoB4DZYX1I8e
+K5C7KVeUPEE9eOGjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFISsw9orkX/cBVWcK5KA
+//kldz8HMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNJADBGAiEA1gazdApLS91ql8Am
+4gb4Ku7Lgll4jV+BrLkbABE2cI0CIQCEH1GUJ6ARJB1GdcHrPyaLgeZ5jV2p63UW
+UV2QL6aETA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEjCCAbigAwIBAgIBFzAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMjQwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAyMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKdweprb
+RZmuUk4og1Xa9Skb1vu7jsLozlm9CtDhKLbJ+cDX/VeKj/b8FuvakBO3L1QV5XU0
+iFswsIVBVZ3m+TyjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFPgcEbHfKHt0o/PCS0kD
+XWW9XkqMMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNIADBFAiEA9XDj0w5qMS/tLlr9
+Z2j8JtVR4M7pF/Wx2U43vmPFJEACIBAlAiUnCm1Nfj16t2cojrW+m2t1cU80ihmj
+Ld1U+dRD
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICETCCAbigAwIBAgIBGDAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMjUwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAyNDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABAq2PphK
+4oVsc+ml3zskBLiMa+dz64k+PrrfKIGSG2Ri5Du/orj0dO9639LeCkkMwWpXAfSx
+wxHHQX0I1KwsudGjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEqcfkso+ynKq2eFaJy8
+mzNBdN2PMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNHADBEAiBZ71jDD33HFFqMkLAW
+gTAGMmzh9b/vZ8jAclPDKHRghQIgf2GBOF1eEF8Ino9F1n1ia5c3EryvXnvVoklw
+cjMIQ5g=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEjCCAbigAwIBAgIBGTAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMjYwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAyNTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJRoDkj7
+iDlIygt4YmMgw4pizu2sx4436MGtw5fFHhjy7T+pPMGjYFg3dixxUOu1NHORpdJq
+8Y7SN8p8Y0XsDpijgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOutMoKSOv5lEGZaqYZM
+zNFwpX3KMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNIADBFAiEAks62lsAHmN6xkZsF
+6ocGONpH/XmHLpoO6RfMoRCnWkICIFNFD+W6pSSvdDB96sn8jnZ7W/Y0hyLzscBO
+WtkzqqJJ
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEzCCAbigAwIBAgIBGjAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMjcwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAyNjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABE3seRj5
+LVNKi9sZk7qv5cBVUG8BLXXfDRUhCUzT10YAU1J0yd2wmLTbwPyYm65GaecvAHSR
+SExOzX6bC35nNt6jgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNx5XhDdoflDgPrW/HyU
+tCokuJ0AMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNJADBGAiEApAQVb0KQedyAw1SJ
+J8At4uxxm2b8W13s6ENapxw+lwwCIQC7326NFPsDjbfBKhFDQhCIMkAkYq2wzRJ7
+ubTwkdT19g==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEzCCAbigAwIBAgIBGzAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMjgwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAyNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABC+FQF2E
+TrZ4YGNyxFxzpTQBjlu9QUrwgHzabAn47toqRkWUGAS68jBfSdR+j2c7/oehQHhO
+relHcbQilhZnh4ijgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFIOlwsa4FjZWhzQYTAY3
+c2TSYhsEMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNJADBGAiEAwxNBi+8baAU76yng
++XvMpY62aqPO4bAe/uedaxBb2jMCIQDJHXqibgIAm1T4/YHimllVlLQudQL5OkbF
+Krj3uVHtBg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEjCCAbigAwIBAgIBHDAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMjkwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAyODBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBmhjGvk
+C3QfSVdY5zuHEY4Rf3eKVro6vcKymgdBPFjjDggZNktR3OMnayCabJB51g2VL7Fg
+MegdwzJWzPvQreyjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEvevGIfitXek0IStYIR
+5ne2SkJwMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNIADBFAiBzlv0TggDJWUWx0UHl
+cqxuMpoNdy+ifizQIlcjWcrzvgIhAJdQfkPaZdc4/j/HfGaVNN9InJuBWGrPYU6A
+iwsSB0jY
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEzCCAbigAwIBAgIBHTAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMzAwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAyOTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCrC5p+Z
+ywMukm1LRuXeJ5V1M6V+8A8PjqB3tgHVeEn973HOfia8lt2/7EoKaLKzP8A7D3eC
+aBJUmTgHauaolYOjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFGG5D5h1FRA+aZMbSXfZ
+Mp8pjYUEMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNJADBGAiEAnI2IhyXtBCRiv+Xs
+EzsO497oVf1U8SJiVR8SaEx0gzgCIQC0+un/Hcb0OWvpvoeHKcRi7e8SZkX+vn2i
+u+KsPqlfzA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEjCCAbigAwIBAgIBHjAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMzEwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAzMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABHg1qbhT
+bpV0agLQkk6di7EdwrrqIn7yCiBCfPwoDI7czY1bHwkR2E8EdrG4ZLBHHFXYNHau
+kEo9nueljxbA6MGjgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFGXSqDk/Zov8a62kkXDr
+8YhtqdkTMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNIADBFAiEA1D2Fm3D8REQtj8o4
+ZrnDyWam0Rx6cEMsvmeoafOBUeUCIBW0IoUYmF46faRQWKN7R8wnvbjUw0bxztzy
+okUR5Pma
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEjCCAbigAwIBAgIBHzAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxQb2xpY3kg
+Q0EgMzEwIBcNMDAwMTAxMDAwMDAwWhgPMjEwMDAxMDEwMDAwMDBaMBcxFTATBgNV
+BAMTDFBvbGljeSBDQSAzMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABIwGMmHl
+/QJSpu6KHakSe4gkf3L+NpsrtQpxu6sNfmSjO++dGv6sj2v3+DZNeyagVUJRVHaD
+IZzpoyVVrBBO6vijgfIwge8wDgYDVR0PAQH/BAQDAgIEMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFA+f9g1sP2kM5sOT/8Ge
+IDKq5FcUMCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMHEG
+A1UdIQRqMGgwGAYKYIZIAWUDAgEwAQYKYIZIAWUDAgEwATAYBgpghkgBZQMCATAB
+BgpghkgBZQMCATACMBgGCmCGSAFlAwIBMAIGCmCGSAFlAwIBMAEwGAYKYIZIAWUD
+AgEwAgYKYIZIAWUDAgEwAjAKBggqhkjOPQQDAgNIADBFAiEAvQlbAmF3pS041Zo2
+eHrxMO3j8thB+XqHU8RatCZ60WACIG1vUFPH7UwzTTann7Sgp4s+Gd/jLOkrJnEk
+W3De9dSX
+-----END CERTIFICATE-----
diff --git a/ap/lib/libssl/openssl-1.1.1o/test/recipes/80-test_policy_tree_data/small_leaf.pem b/ap/lib/libssl/openssl-1.1.1o/test/recipes/80-test_policy_tree_data/small_leaf.pem
new file mode 100644
index 0000000..c40ddff
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/test/recipes/80-test_policy_tree_data/small_leaf.pem
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBmjCCAT+gAwIBAgIBADAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
+Q0EgMTAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowGjEYMBYGA1UE
+AxMPd3d3LmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAER7oh
+z+MnwilNhyEB2bZTuYBpeiwW4QlpYZU6b/8uWOldyMXCaPmaXwY60nrMznfFJX6F
+h8dC6XIzvQmjUMdSoqN4MHYwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsG
+AQUFBwMBMAwGA1UdEwEB/wQCMAAwGgYDVR0RBBMwEYIPd3d3LmV4YW1wbGUuY29t
+MCUGA1UdIAQeMBwwDAYKYIZIAWUDAgEwATAMBgpghkgBZQMCATACMAoGCCqGSM49
+BAMCA0kAMEYCIQC2km5juUULIRYsRgHuLFEiABBR0pDAyTbl9LRjlkSeEQIhAO9b
+ye60dMNbhY1OOzrr4mDRv0tuNmbGBErcFs61YZkC
+-----END CERTIFICATE-----
diff --git a/ap/lib/libssl/openssl-1.1.1o/test/recipes/80-test_policy_tree_data/small_policy_tree.pem b/ap/lib/libssl/openssl-1.1.1o/test/recipes/80-test_policy_tree_data/small_policy_tree.pem
new file mode 100644
index 0000000..040542d
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/test/recipes/80-test_policy_tree_data/small_policy_tree.pem
@@ -0,0 +1,70 @@
+-----BEGIN CERTIFICATE-----
+MIICETCCAbagAwIBAgIBATAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
+Q0EgMjAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
+AxMLUG9saWN5IENBIDEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQu7GyNFjN6
+Sqwk1CZAt+lzTC/Us6ZkO5nsmb8yAuPb6RJ0A2LvUbsmZea+UyBFq3VuEbbuCoeE
+KRbKkS6wefAzo4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSQkJvfn8gFHIXVTBJ4hrtP
+ypA9QTAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSQAwRgIhALn6/b3H+jLusJE5QiaS
+PiwrLcl+NDguWCnxo0c6AfduAiEApkXUN+7vRfXeFFd9CfA1BnTW3eUzBOsukZoN
+zaj+utk=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICDzCCAbagAwIBAgIBAjAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
+Q0EgMzAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
+AxMLUG9saWN5IENBIDIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT+p+A+K6MI
+R3eVP/+2O7lam32HU10frEKpyQslZAabYJwkc9iq5WatMbTMPQibuOIWHFl02uJ8
+cxGKy/Hke8P5o4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSSOt6HCXw+L/4uzJsInqqA
+XrWt8DAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDRwAwRAIgS/vh3osFy+q1MLuVnAdg
+gMINfiIJw1+3zbYsJYlNhWgCICu6Qgzee4NwIrJagcdVA0RAfnCOo6wfvikpl0ts
+EepA
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEDCCAbagAwIBAgIBAzAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
+Q0EgNDAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
+AxMLUG9saWN5IENBIDMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQONHKgpAJ6
+vE41FYBekpLzybpBQp/gUmgRPKrcL0z4lLTDjCG3j6yIbZma8u2bPM1MBXw5otZ7
+xVFhQ1AkZIOco4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQ69465BL89BXORf4sSnneU
+exkm0jAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSAAwRQIhAPK9PqPxgme9x6TPFh2z
+vv+qVEM2WxOTdRKOPgUYzCp9AiBl8qO3szv5jNDzb0fRIqVp37v9yBjWcgO9Wl02
+QDCpGw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICETCCAbagAwIBAgIBBDAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
+Q0EgNTAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
+AxMLUG9saWN5IENBIDQwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASLrUP7BFi7
++LE2uDVCZ2Z2HK6BpL/kjBbwKkLxlJe+LqNolzu53b8+WtHwrvPPVkD9t3KMdWXU
+K7NtHYgXUz07o4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS0kaY2oJVEBLtjkqI8pXsv
+eqm3VDAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSQAwRgIhAJuTMvMUda4Y29V1Tm5O
+jCqBThR2NwdQfnET1sjch3Q7AiEA7nEudfXKMljjz608aWtafTkw5V5I2/SbuUKr
+vjprfIo=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICEDCCAbagAwIBAgIBBTAKBggqhkjOPQQDAjAWMRQwEgYDVQQDEwtQb2xpY3kg
+Q0EgNTAgFw0wMDAxMDEwMDAwMDBaGA8yMTAwMDEwMTAwMDAwMFowFjEUMBIGA1UE
+AxMLUG9saWN5IENBIDUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ9RuYVzUGB
+FkAEM9kHe9xynDo/NcsiaAO3+E2u7jJQQN50d6hVEDHf9961omldhKhP4HTNfhqj
+VMIHKGMhXCgKo4HyMIHvMA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAKBggrBgEF
+BQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTVrjWaVjkfMpilq5tGZ4zZ
+iJtaSDAlBgNVHSAEHjAcMAwGCmCGSAFlAwIBMAEwDAYKYIZIAWUDAgEwAjBxBgNV
+HSEEajBoMBgGCmCGSAFlAwIBMAEGCmCGSAFlAwIBMAEwGAYKYIZIAWUDAgEwAQYK
+YIZIAWUDAgEwAjAYBgpghkgBZQMCATACBgpghkgBZQMCATABMBgGCmCGSAFlAwIB
+MAIGCmCGSAFlAwIBMAIwCgYIKoZIzj0EAwIDSAAwRQIhAPVgPpACX2ylQMEMSntw
+izxKHTSPhXuF6IHhNHRz7KFnAiB8y/QcF7N2iXNZEqffWSkVted/XOw3Xrck0sJ6
+4eXNcw==
+-----END CERTIFICATE-----
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/mkdef.pl b/ap/lib/libssl/openssl-1.1.1o/util/mkdef.pl
index 3ac7982..2486412 100755
--- a/ap/lib/libssl/openssl-1.1.1o/util/mkdef.pl
+++ b/ap/lib/libssl/openssl-1.1.1o/util/mkdef.pl
@@ -1,5 +1,5 @@
#! /usr/bin/env perl
-# Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
#
# Licensed under the OpenSSL license (the "License"). You may not use
# this file except in compliance with the License. You can obtain a copy
@@ -197,6 +197,7 @@
}
$libname = $unified_info{sharednames}->{libcrypto} if $do_crypto;
$libname = $unified_info{sharednames}->{libssl} if $do_ssl;
+$libname .= $target{shlib_variant} || "";
if (!$libname) {
if ($do_ssl) {
diff --git a/ap/lib/libtinyalsa/audio_mixer_ctrl.c b/ap/lib/libtinyalsa/audio_mixer_ctrl.c
index 3ec6fe3..311ceca 100755
--- a/ap/lib/libtinyalsa/audio_mixer_ctrl.c
+++ b/ap/lib/libtinyalsa/audio_mixer_ctrl.c
@@ -1289,6 +1289,17 @@
{
return 0;
}
+int mix_set_vploop(struct mixer *mixer, int path)
+{
+
+ return 0;
+}
+int mix_get_vploop(struct mixer *mixer, int *state)
+{
+ return 0;
+}
+
+
#else
int mix_set_output_path(struct mixer *mixer, int path)
{
@@ -1833,6 +1844,28 @@
}
+int mix_set_vploop(struct mixer *mixer, int path)
+{
+ struct mixer_ctl *ctl;
+ char name[] = "vp loop";
+ ctl = mixer_get_ctl_by_name(mixer, name);
+ if (!ctl) {
+ fprintf(stderr, "Invalid mixer control\n");
+ return -1;
+ }
+
+ mixer_ctl_set_value(ctl, 0, path);
+
+ return 0;
+}
+int mix_get_vploop(struct mixer *mixer, int *state)
+{
+
+ mix_get_value_wrap(mixer, "vp loop", state);
+
+ return 0;
+
+}
#endif
diff --git a/ap/lib/libupi_ab/inc/upi_fotaflag_partition.h b/ap/lib/libupi_ab/inc/upi_fotaflag_partition.h
index f172b50..97c46c7 100755
--- a/ap/lib/libupi_ab/inc/upi_fotaflag_partition.h
+++ b/ap/lib/libupi_ab/inc/upi_fotaflag_partition.h
@@ -34,10 +34,10 @@
/* Êý¾ÝÀàÐÍ */
typedef enum
{
- SYSTEM_FLAG_FOTA_MAIN = 0,
- SYSTEM_FLAG_FOTA_BACKUP,
+ SYSTEM_FLAG_FOTA_MAIN = 0,
+ SYSTEM_FLAG_FOTA_BACKUP,
} E_SYSTEM_FLAG_DATA_TYPE;
-
+
/*******************************************************************************
@@ -54,48 +54,48 @@
#define DUALSYSTEM_STATUS_SUCCESSFUL (0x5CCF) /* Äܳɹ¦Æô¶¯ */
#define DUALSYSTEM_STATUS_UNBOOTABLE (0xBABE) /* ²»¿ÉÆô¶¯ */
-typedef struct
+typedef struct
{
- int status; /* bootable/successful/unbootable */
- int try_cnt;
+ int status; /* bootable/successful/unbootable */
+ int try_cnt;
} T_DualSystem_Status;
typedef enum
{
- DUAL_SYSTEM = 0x875A, /* µÚÒ»¸öϵͳ */
- DUAL_SYSTEM2 = 0x986B, /* µÚ¶þ¸öϵͳ */
+ DUAL_SYSTEM = 0x875A, /* µÚÒ»¸öϵͳ */
+ DUAL_SYSTEM2 = 0x986B, /* µÚ¶þ¸öϵͳ */
} T_BOOT_TARGET;
/* ˫ϵͳÀàÐÍ */
typedef enum
{
- DUALSYSTEM_RECOVERY = 0x7575, /* normal-recovery˫ϵͳ */
- DUALSYSTEM_AA = 0xAAAA, /* AA˫ϵͳ */
- DUALSYSTEM_AB = 0xABAB /* AB˫ϵͳ */
+ DUALSYSTEM_RECOVERY = 0x7575, /* normal-recovery˫ϵͳ */
+ DUALSYSTEM_AA = 0xAAAA, /* AA˫ϵͳ */
+ DUALSYSTEM_AB = 0xABAB /* AB˫ϵͳ */
} T_BOOT_DUALSYSTEM_TYPE;
-typedef struct
+typedef struct
{
- unsigned int magic; /* Êý¾ÝÓÐЧÐÔħÊõ×Ö */
- T_BOOT_TARGET boot_to; /* µ±Ç°Æô¶¯ÏµÍ³±êÖ¾*/
- unsigned int fota_status; /* fota״̬ */
- T_DualSystem_Status system; /* µÚÒ»¸öϵͳ״̬ */
- T_DualSystem_Status system2; /* µÚ¶þ¸öϵͳ״̬ */
+ unsigned int magic; /* Êý¾ÝÓÐЧÐÔħÊõ×Ö */
+ T_BOOT_TARGET boot_to; /* µ±Ç°Æô¶¯ÏµÍ³±êÖ¾*/
+ unsigned int fota_status; /* fota״̬ */
+ T_DualSystem_Status system; /* µÚÒ»¸öϵͳ״̬ */
+ T_DualSystem_Status system2; /* µÚ¶þ¸öϵͳ״̬ */
} T_BOOT_FOTA_FLAG;
-typedef struct
+typedef struct
{
- unsigned int magic; /* Êý¾ÝÓÐЧÐÔħÊõ×Ö */
- T_BOOT_DUALSYSTEM_TYPE dualsys_type; /* ˫ϵͳÀàÐÍ */
- char system_boot_env[128];
- char system2_boot_env[128];
+ unsigned int magic; /* Êý¾ÝÓÐЧÐÔħÊõ×Ö */
+ T_BOOT_DUALSYSTEM_TYPE dualsys_type; /* ˫ϵͳÀàÐÍ */
+ char system_boot_env[128];
+ char system2_boot_env[128];
} T_BOOT_ENV;
-typedef struct
+typedef struct
{
- T_BOOT_FOTA_FLAG boot_flag;
- T_BOOT_ENV boot_env;
+ T_BOOT_FOTA_FLAG boot_flag;
+ T_BOOT_ENV boot_env;
} T_FOTA_FLAG_INFO;
diff --git a/ap/lib/libupi_ab/inc/upi_hash.h b/ap/lib/libupi_ab/inc/upi_hash.h
index 9d8bc29..f511e53 100755
--- a/ap/lib/libupi_ab/inc/upi_hash.h
+++ b/ap/lib/libupi_ab/inc/upi_hash.h
@@ -36,9 +36,10 @@
* Type definitions *
******************************************************************************/
-typedef enum E_HASH_TYPE{
- HASH_SHA512 = 0,
- HASH_SHA526 = 1
+typedef enum E_HASH_TYPE
+{
+ HASH_SHA512 = 0,
+ HASH_SHA526 = 1
} hash_type_e;
/*******************************************************************************
@@ -51,9 +52,11 @@
******************************************************************************/
int check_image_hash(partition_mtd_info_t *mtd_info, int len, char * digest);
-int get_hash_from_fd(int hash_type, int fd, unsigned int offset, unsigned int len, unsigned int read_size_per_time, unsigned char* digest);
+int get_hash_from_fd(int hash_type, int fd, unsigned int offset, unsigned int len, unsigned int read_size_per_time,
+ unsigned char* digest);
-int get_hash_from_file_path_segment(int hash_type, const char* file_path, unsigned int offset, unsigned int len, unsigned char* digest);
+int get_hash_from_file_path_segment(int hash_type, const char* file_path, unsigned int offset, unsigned int len,
+ unsigned char* digest);
/*******************************************************************************
diff --git a/ap/lib/libupi_ab/inc/upi_img_interface.h b/ap/lib/libupi_ab/inc/upi_img_interface.h
index 2a0ea67..895dde1 100755
--- a/ap/lib/libupi_ab/inc/upi_img_interface.h
+++ b/ap/lib/libupi_ab/inc/upi_img_interface.h
@@ -3,15 +3,16 @@
-typedef struct {
- unsigned int mtd_totalsize; // mtd device total size
- unsigned int mtd_pageperblock; // mtd device page per block
- unsigned int mtd_blocksize; // mtd device block size
- unsigned int mtd_pagesize; // mtd device page size
- unsigned int mtd_oobsize; // mtd device oob size
-// char mtd_path[256]; // mtd path
- int parti_file_desc; // partition update file description
-}partition_mtd_info_t;
+typedef struct
+{
+ unsigned int mtd_totalsize; // mtd device total size
+ unsigned int mtd_pageperblock; // mtd device page per block
+ unsigned int mtd_blocksize; // mtd device block size
+ unsigned int mtd_pagesize; // mtd device page size
+ unsigned int mtd_oobsize; // mtd device oob size
+ // char mtd_path[256]; // mtd path
+ int parti_file_desc; // partition update file description
+} partition_mtd_info_t;
#if 0
int ZXIC_GetBlockSize(partition_mtd_info_t *mtd_info, int *block_size);
@@ -26,17 +27,17 @@
int ZXIC_ReadImageSeg(
partition_mtd_info_t *mtd_info,
- unsigned char *buffer,
- int start_address,
- int stop_address,
- int index,
+ unsigned char *buffer,
+ int start_address,
+ int stop_address,
+ int index,
int size) ;
int ZXIC_WriteBlockSeg(
partition_mtd_info_t *mtd_info,
int start_address,
- int stop_address,
+ int stop_address,
int index,
unsigned char *buffer,
int size);
diff --git a/ap/lib/libupi_ab/inc/upi_mtd.h b/ap/lib/libupi_ab/inc/upi_mtd.h
index a856ffb..95d2b4a 100755
--- a/ap/lib/libupi_ab/inc/upi_mtd.h
+++ b/ap/lib/libupi_ab/inc/upi_mtd.h
@@ -25,11 +25,12 @@
* Type definitions *
******************************************************************************/
-typedef enum {
- DEVICE_MTD = 0,
- DEVICE_ZFTL = 1,
- DEVICE_MTD_BLOCK,
- DEVICE_UNKNOWN,
+typedef enum
+{
+ DEVICE_MTD = 0,
+ DEVICE_ZFTL = 1,
+ DEVICE_MTD_BLOCK,
+ DEVICE_UNKNOWN,
} device_type_t;
/*******************************************************************************
diff --git a/ap/lib/libupi_ab/inc/upi_public.h b/ap/lib/libupi_ab/inc/upi_public.h
index 0ade3d3..a0bbb09 100755
--- a/ap/lib/libupi_ab/inc/upi_public.h
+++ b/ap/lib/libupi_ab/inc/upi_public.h
@@ -58,7 +58,7 @@
#define EXTRA_NAME_LEN (32)
-
+
#define FOTA_AB_UPGRADE_STATUS "fota_ab_upgrade_status"
#define FOTA_AB_UPGRADE_TOTAL_SIZE "fota_ab_upgrade_total_size"
@@ -93,24 +93,26 @@
* Type definitions *
******************************************************************************/
-typedef enum {
- HASH_TYPE_SHA_512 = 0,
- HASH_TYPE_SHA_256
+typedef enum
+{
+ HASH_TYPE_SHA_512 = 0,
+ HASH_TYPE_SHA_256
} Hash_type_s;
/**
* @brief ϵͳ·ÖÇøÐÅϢͷ
-* @param magic ħÊõ×Ö
+* @param magic ħÊõ×Ö
* @param plat ƽ̨: 0 - V3T, 1 - 8501
* @param plat_partition_num ƽ̨·ÖÇøÊý
* @param oem_partition_num oem·ÖÇøÊý
*/
-typedef struct {
- char magic[SYSTEM_UPGRADE_PARTITION_INFO_HEAD_MAGIC_LEN];
- int plat;
- int plat_partition_num;
- int oem_partition_num;
+typedef struct
+{
+ char magic[SYSTEM_UPGRADE_PARTITION_INFO_HEAD_MAGIC_LEN];
+ int plat;
+ int plat_partition_num;
+ int oem_partition_num;
} system_partition_info_head_t;
@@ -120,10 +122,11 @@
* @param system_type ËùÊôϵͳÀàÐÍ - 0 ƽ̨ÀàÐÍ, 1 oem
* @param partition_type ·ÖÇøÀàÐÍ
*/
-typedef struct {
- char name[PARTITION_NAME_LEN];
- int system_type;
- int partition_type;
+typedef struct
+{
+ char name[PARTITION_NAME_LEN];
+ int system_type;
+ int partition_type;
} platform_partition_info_t;
@@ -133,10 +136,11 @@
* @param system_type ËùÊôϵͳÀàÐÍ - 0 ƽ̨ÀàÐÍ, 1 oem
* @param partition_type ·ÖÇøÀàÐÍ
*/
-typedef struct {
- char name[PARTITION_NAME_LEN];
- int system_type;
- int partition_type;
+typedef struct
+{
+ char name[PARTITION_NAME_LEN];
+ int system_type;
+ int partition_type;
} oem_partition_info_t;
@@ -145,16 +149,18 @@
* @param platform_partition_info ƽ̨¿ÉÉý¼¶·ÖÇøÐÅÏ¢
* @param oem_partition_info oem¿ÉÉý¼¶·ÖÇøÐÅÏ¢
*/
-typedef struct {
- system_partition_info_head_t system_partition_info_head;
- platform_partition_info_t *platform_partition_info;
- oem_partition_info_t *oem_partition_info;
+typedef struct
+{
+ system_partition_info_head_t system_partition_info_head;
+ platform_partition_info_t *platform_partition_info;
+ oem_partition_info_t *oem_partition_info;
} system_upgrade_partition_info_t;
/*******************************************************************************
* Global variable declarations *
******************************************************************************/
+extern char FOTA_PACKAGE_FILE[128];
/*******************************************************************************
diff --git a/ap/lib/libupi_ab/inc/upi_sync_system.h b/ap/lib/libupi_ab/inc/upi_sync_system.h
index 9ca0409..598aa3c 100755
--- a/ap/lib/libupi_ab/inc/upi_sync_system.h
+++ b/ap/lib/libupi_ab/inc/upi_sync_system.h
@@ -25,10 +25,11 @@
/*******************************************************************************
* Type definitions *
******************************************************************************/
-typedef enum {
- SYNC_STATUS_FAIL = -1,
- SYNC_STATUS_SUCCESS = 0,
- SYNC_STATUS_SYNCING
+typedef enum
+{
+ SYNC_STATUS_FAIL = -1,
+ SYNC_STATUS_SUCCESS = 0,
+ SYNC_STATUS_SYNCING
} sync_status_t;
diff --git a/ap/lib/libupi_ab/inc/upi_update.h b/ap/lib/libupi_ab/inc/upi_update.h
index 486707e..255d47b 100755
--- a/ap/lib/libupi_ab/inc/upi_update.h
+++ b/ap/lib/libupi_ab/inc/upi_update.h
@@ -16,38 +16,42 @@
#include "zxic_fota_ab_upgrade.h"
-#define FOTA_PACKAGE_FILE "/cache/zte_fota_ab/upgrade.package"
+// #define FOTA_PACKAGE_FILE "/cache/zte_fota_ab/upgrade.package"
-typedef enum {
- UPGRADE_STATUS_UNKNOWN = -1,
- UPGRADE_STATUS_VERIFING = 0,
- UPGRADE_STATUS_VERIFY_SUCCESS,
- UPGRADE_STATUS_VERIFY_FAIL,
- UPGRADE_STATUS_UPDATING,
- UPGRADE_STATUS_UPDATE_SUCCESS,
- UPGRADE_STATUS_UPDATE_FAIL,
- UPGRADE_STATUS_NO_NEED_UPDATE,
- UPGRADE_STATUS_NEED_UPDATE
+
+typedef enum
+{
+ UPGRADE_STATUS_UNKNOWN = -1,
+ UPGRADE_STATUS_VERIFING = 0,
+ UPGRADE_STATUS_VERIFY_SUCCESS,
+ UPGRADE_STATUS_VERIFY_FAIL,
+ UPGRADE_STATUS_UPDATING,
+ UPGRADE_STATUS_UPDATE_SUCCESS,
+ UPGRADE_STATUS_UPDATE_FAIL,
+ UPGRADE_STATUS_NO_NEED_UPDATE,
+ UPGRADE_STATUS_NEED_UPDATE
} upgrade_status_s_type;
-typedef struct {
- int upgrage_package_file_desc; // upgrade package file description
- unsigned int upgrade_data_offset; // upgrade package offset in file
- unsigned int upgrade_file_size; // upgrade package file size
-}partition_upgrade_package_info_t;
+typedef struct
+{
+ int upgrage_package_file_desc; // upgrade package file description
+ unsigned int upgrade_data_offset; // upgrade package offset in file
+ unsigned int upgrade_file_size; // upgrade package file size
+} partition_upgrade_package_info_t;
-typedef struct {
- char partition_name[PARTITION_NAME_LEN];
- int partition_type;
- long long len;
- int offset;
- int zipped;
- char hash[HASH_MAX_LEN];
- int index;
- int partition_total_count;
- partition_upgrade_package_info_t pkg_info;
- partition_mtd_info_t mtd_info;
+typedef struct
+{
+ char partition_name[PARTITION_NAME_LEN];
+ int partition_type;
+ long long len;
+ int offset;
+ int zipped;
+ char hash[HASH_MAX_LEN];
+ int index;
+ int partition_total_count;
+ partition_upgrade_package_info_t pkg_info;
+ partition_mtd_info_t mtd_info;
} device_data_t;
int upi_update(z_upgrade_flush_status_t* flush_status);
diff --git a/ap/lib/libupi_ab/inc/upi_upgrade_package.h b/ap/lib/libupi_ab/inc/upi_upgrade_package.h
index b4604dc..0fb5c38 100755
--- a/ap/lib/libupi_ab/inc/upi_upgrade_package.h
+++ b/ap/lib/libupi_ab/inc/upi_upgrade_package.h
@@ -48,20 +48,21 @@
-typedef struct {
- char magic_word[UPGRADE_PACKAGE_HEAD_MAGIC_LEN];
- int upgrade_package_version;
- int plat;
- int upgrade_package_type;
- int upgrade_type;
- int partition_num;
- int extra_num;
- int hash_type;
- int block_size;
- char version_src[VERSION_LEN];
- char version_dst[VERSION_LEN];
- unsigned char hash[HASH_MAX_LEN];
- char reserve[28];
+typedef struct
+{
+ char magic_word[UPGRADE_PACKAGE_HEAD_MAGIC_LEN];
+ int upgrade_package_version;
+ int plat;
+ int upgrade_package_type;
+ int upgrade_type;
+ int partition_num;
+ int extra_num;
+ int hash_type;
+ int block_size;
+ char version_src[VERSION_LEN];
+ char version_dst[VERSION_LEN];
+ unsigned char hash[HASH_MAX_LEN];
+ char reserve[28];
} upgrade_package_head_info_t;
/**
@@ -74,14 +75,15 @@
* @param reserve: ±£Áô
* @param hash: ÖÆ×÷²î·Ö·ÖÇøµÄÔ´·ÖÇøÎļþmd5
*/
-typedef struct {
- char name[PARTITION_NAME_LEN];
- int len;
- int offset;
- int partition_type;
- int zipped;
- char reserve[16];
- unsigned char hash[HASH_MAX_LEN];
+typedef struct
+{
+ char name[PARTITION_NAME_LEN];
+ int len;
+ int offset;
+ int partition_type;
+ int zipped;
+ char reserve[16];
+ unsigned char hash[HASH_MAX_LEN];
} partition_head_info_t;
@@ -93,13 +95,14 @@
* @param hash: ÎļþhashÖµ
* @param reserve: Ô¤ÁôÐÅÏ¢
*/
-typedef struct {
- char name[EXTRA_NAME_LEN];
- int len;
- int offset;
- char reserve_1[8];
- unsigned char hash[HASH_MAX_LEN];
- char reserve_2[8];
+typedef struct
+{
+ char name[EXTRA_NAME_LEN];
+ int len;
+ int offset;
+ char reserve_1[8];
+ unsigned char hash[HASH_MAX_LEN];
+ char reserve_2[8];
} extra_head_info_t;
@@ -113,15 +116,16 @@
* @param upgrade_package_file_desc: Îļþ¾ä±ú
* @param upgrade_package_file_size: Îļþ³¤¶È
*/
-typedef struct {
- upgrade_package_head_info_t *head;
-// int partition_num;
- partition_head_info_t *partition_info;
-// int extra_num;
- extra_head_info_t *extra_info;
- int upgrade_package_file_desc;
- unsigned int upgrade_package_file_size;
-}upgrade_package_info_t;
+typedef struct
+{
+ upgrade_package_head_info_t *head;
+ // int partition_num;
+ partition_head_info_t *partition_info;
+ // int extra_num;
+ extra_head_info_t *extra_info;
+ int upgrade_package_file_desc;
+ unsigned int upgrade_package_file_size;
+} upgrade_package_info_t;
diff --git a/ap/lib/libupi_ab/inc/zxic_fota_ab_upgrade.h b/ap/lib/libupi_ab/inc/zxic_fota_ab_upgrade.h
index bea70b8..3757f91 100755
--- a/ap/lib/libupi_ab/inc/zxic_fota_ab_upgrade.h
+++ b/ap/lib/libupi_ab/inc/zxic_fota_ab_upgrade.h
@@ -59,7 +59,7 @@
/*******************************************************************************
* Type definitions *
******************************************************************************/
-
+
/*
@@ -71,11 +71,12 @@
* ³¤¶ÈÐÅÏ¢½öÔÚÉý¼¶×´Ì¬ÎªUPGRADE_STATUS_UPDATINGʱÓÐЧ£¬ÆäËü״̬²ÎÊýÖµÎÞʵ¼ÊÒâÒå
*/
-typedef struct {
- int upgrade_status;
- int total_size;
- int upgraded_size;
-}z_upgrade_status_info_t;
+typedef struct
+{
+ int upgrade_status;
+ int total_size;
+ int upgraded_size;
+} z_upgrade_status_info_t;
/*
@@ -86,11 +87,12 @@
* ×¢Ò⣺
* ³¤¶ÈÐÅÏ¢½öÔÚÉý¼¶×´Ì¬ÎªUPGRADE_STATUS_UPDATINGʱÓÐЧ£¬ÆäËü״̬²ÎÊýÖµÎÞʵ¼ÊÒâÒå
*/
-typedef struct {
- int system;
- int status; /* bootable/successful/unbootable */
- int try_cnt;
-}z_system_info_t;
+typedef struct
+{
+ int system;
+ int status; /* bootable/successful/unbootable */
+ int try_cnt;
+} z_system_info_t;
/*
@@ -99,20 +101,21 @@
* system_1:ϵͳ1״̬
* system_2:ϵͳ2״̬
* ×¢Ò⣺
- *
+ *
*/
-typedef struct
+typedef struct
{
- int boot_to; /* µ±Ç°Æô¶¯ÏµÍ³±êÖ¾*/
- int fota_status;
- z_system_info_t system_1;
- z_system_info_t system_2;
-}z_upgrade_system_info_t;
+ int boot_to; /* µ±Ç°Æô¶¯ÏµÍ³±êÖ¾*/
+ int fota_status;
+ z_system_info_t system_1;
+ z_system_info_t system_2;
+} z_upgrade_system_info_t;
-typedef struct {
- z_upgrade_status_info_t *status;
- void(* status_cb)(z_upgrade_status_info_t *status);
+typedef struct
+{
+ z_upgrade_status_info_t *status;
+ void(* status_cb)(z_upgrade_status_info_t *status);
} z_upgrade_flush_status_t;
@@ -127,33 +130,33 @@
/*******************************************************************************
* Global function declarations *
******************************************************************************/
-
+
/********************************************************************************
* º¯ÊýÃû: zxic_dual_verify
- * ¹¦ÄÜÃèÊö:Éý¼¶°üºÏ·¨ÐÔУÑé
- * ²ÎÊý˵Ã÷£º
- * ÊäÈë²ÎÊý£ºÎÞ
+ * ¹¦ÄÜÃèÊö:Éý¼¶°üºÏ·¨ÐÔУÑé
+ * ²ÎÊý˵Ã÷£º
+ * ÊäÈë²ÎÊý£ºÎÞ
* Êä³ö²ÎÊý:ÎÞ
- * ·µ»ØÖµ£º
+ * ·µ»ØÖµ£º
* Z_FOTA_SUCCESS УÑé³É¹¦
* Z_FOTA_FAILУÑéʧ°Ü
- * ×¢Òâ:
+ * ×¢Òâ:
* ͬ²½½Ó¿Ú£¬½¨ÒéÒì²½µ÷ÓÃ
********************************************************************************/
-int zxic_dual_verify();
+int zxic_dual_verify();
/********************************************************************************
- * º¯ÊýÃû: zxic_dual_upgrade
+ * º¯ÊýÃû: zxic_dual_upgrade
* ¹¦ÄÜÃèÊö:¿ªÊ¼Éý¼¶
* ²ÎÊý˵Ã÷£º
* ÊäÈë²ÎÊý£º
* flush_upgrade_status ״̬»Øµ÷½Ó¿Ú
- * Êä³ö²ÎÊý:ÎÞ
+ * Êä³ö²ÎÊý:ÎÞ
* ·µ»ØÖµ£º
* Z_FOTA_SUCCESS Éý¼¶³É¹¦
* Z_FOTA_FAILÉý¼¶Ê§°Ü
- * ×¢Òâ:
+ * ×¢Òâ:
* ͬ²½½Ó¿Ú£¬½¨ÒéÒì²½µ÷Ó㬱ÜÃâ×èÈû
* ״̬»Øµ÷½Ó¿ÚÖнûÖ¹×ö¸´ÔÓ²Ù×÷£¬½¨Òé½ö½øÐÐ״̬Êä³ö
********************************************************************************/
@@ -165,38 +168,38 @@
/********************************************************************************
* º¯ÊýÃû: zxic_dual_get_upgrade_status
- * ¹¦ÄÜÃèÊö:Éý¼¶×´Ì¬»ñÈ¡
+ * ¹¦ÄÜÃèÊö:Éý¼¶×´Ì¬»ñÈ¡
* ²ÎÊý˵Ã÷£º
* ÊäÈë²ÎÊý£ºÎÞ
- * Êä³ö²ÎÊý:
- * upgrade_info_t *upgrade_info Éý¼¶×´Ì¬
+ * Êä³ö²ÎÊý:
+ * upgrade_info_t *upgrade_info Éý¼¶×´Ì¬
* ·µ»ØÖµ£º
* Z_FOTA_SUCCESS Éý¼¶³É¹¦
* Z_FOTA_FAILÉý¼¶Ê§°Ü
- * ×¢Òâ:
+ * ×¢Òâ:
********************************************************************************/
int zxic_dual_get_upgrade_status(z_upgrade_status_info_t *upgrade_info);
/********************************************************************************
* º¯ÊýÃû: zxic_dual_get_current_system
- * ¹¦ÄÜÃèÊö:»ñÈ¡µ±Ç°ÔËÐÐϵͳ
- * ²ÎÊý˵Ã÷£º
- * ÊäÈë²ÎÊý£ºÎÞ
- * Êä³ö²ÎÊý:ÎÞ
- * ·µ»ØÖµ£º
- * µ±Ç°ÔËÐÐϵͳ
+ * ¹¦ÄÜÃèÊö:»ñÈ¡µ±Ç°ÔËÐÐϵͳ
+ * ²ÎÊý˵Ã÷£º
+ * ÊäÈë²ÎÊý£ºÎÞ
+ * Êä³ö²ÎÊý:ÎÞ
+ * ·µ»ØÖµ£º
+ * µ±Ç°ÔËÐÐϵͳ
* ×¢Òâ:
********************************************************************************/
int zxic_dual_get_current_system();
/********************************************************************************
* º¯ÊýÃû: zxic_dual_get_boot_to_system
- * ¹¦ÄÜÃèÊö:»ñÈ¡ÖØÆôºóÄ¿±êÆô¶¯ÏµÍ³
- * ²ÎÊý˵Ã÷£º
- * ÊäÈë²ÎÊý£ºÎÞ
- * Êä³ö²ÎÊý:ÎÞ
- * ·µ»ØÖµ£º
- * µ±Ç°ÔËÐÐϵͳ
+ * ¹¦ÄÜÃèÊö:»ñÈ¡ÖØÆôºóÄ¿±êÆô¶¯ÏµÍ³
+ * ²ÎÊý˵Ã÷£º
+ * ÊäÈë²ÎÊý£ºÎÞ
+ * Êä³ö²ÎÊý:ÎÞ
+ * ·µ»ØÖµ£º
+ * µ±Ç°ÔËÐÐϵͳ
* ×¢Òâ:
********************************************************************************/
int zxic_dual_get_boot_to_system();
@@ -205,49 +208,49 @@
/********************************************************************************
* º¯ÊýÃû: zxic_dual_set_boot_to_system
- * ¹¦ÄÜÃèÊö:ÉèÖÃÄ¿±êÔËÐÐϵͳ
+ * ¹¦ÄÜÃèÊö:ÉèÖÃÄ¿±êÔËÐÐϵͳ
* ²ÎÊý˵Ã÷£º
* ÊäÈë²ÎÊý£º
* system:Ä¿±êϵͳ
* reboot_flag:ÉèÖÃÍê±ÏºóÊÇ·ñÁ¢¼´ÖØÆô 0:²»ÖØÆô,1:ÖØÆô
- * Êä³ö²ÎÊý:
- * ϵͳ״̬ÐÅÏ¢
+ * Êä³ö²ÎÊý:
+ * ϵͳ״̬ÐÅÏ¢
* ·µ»ØÖµ£º
* Z_FOTA_SUCCESS »ñÈ¡ÐÅÏ¢³É¹¦
* Z_FOTA_FAIL»ñÈ¡ÐÅϢʧ°Ü
* ×¢Òâ:
* ·µ»ØÖµ£ºÖ»ÔÚ²»ÐèÒªÖØÆôʱÓÐЧ
********************************************************************************/
-int zxic_dual_set_boot_to_system(int system, int reboot_flag);
+int zxic_dual_set_boot_to_system(int system, int reboot_flag);
/********************************************************************************
* º¯ÊýÃû: zxic_dual_get_system_status
- * ¹¦ÄÜÃèÊö:²éѯABϵͳ״̬
+ * ¹¦ÄÜÃèÊö:²éѯABϵͳ״̬
* ²ÎÊý˵Ã÷£º
* ÊäÈë²ÎÊý£ºÎÞ
- * Êä³ö²ÎÊý:
- * system_info ϵͳ״̬ÐÅÏ¢
+ * Êä³ö²ÎÊý:
+ * system_info ϵͳ״̬ÐÅÏ¢
* ·µ»ØÖµ£º
- * Z_FOTA_SUCCESS »ñÈ¡ÐÅÏ¢³É¹¦
- * Z_FOTA_FAIL»ñÈ¡ÐÅϢʧ°Ü
- * ×¢Òâ:
+ * Z_FOTA_SUCCESS »ñÈ¡ÐÅÏ¢³É¹¦
+ * Z_FOTA_FAIL»ñÈ¡ÐÅϢʧ°Ü
+ * ×¢Òâ:
********************************************************************************/
int zxic_dual_get_system_status(z_upgrade_system_info_t *system_info);
/********************************************************************************
* º¯ÊýÃû: zxic_dual_set_system_status
- * ¹¦ÄÜÃèÊö:ÉèÖÃϵͳ״̬
+ * ¹¦ÄÜÃèÊö:ÉèÖÃϵͳ״̬
* ²ÎÊý˵Ã÷£º
* ÊäÈë²ÎÊý£º
* system:´ýÉèÖÃϵͳ
* status:ÉèÖÃϵͳ״̬
* Êä³ö²ÎÊý:ÎÞ
- * ·µ»ØÖµ£º
- * Z_FOTA_SUCCESS »ñÈ¡ÐÅÏ¢³É¹¦
- * Z_FOTA_FAIL»ñÈ¡ÐÅϢʧ°Ü
- * ×¢Òâ:
+ * ·µ»ØÖµ£º
+ * Z_FOTA_SUCCESS »ñÈ¡ÐÅÏ¢³É¹¦
+ * Z_FOTA_FAIL»ñÈ¡ÐÅϢʧ°Ü
+ * ×¢Òâ:
********************************************************************************/
int zxic_dual_set_system_status(int system, int status);
@@ -262,10 +265,10 @@
* ²ÎÊý˵Ã÷£º
* ÊäÈë²ÎÊý:ÎÞ
* Êä³ö²ÎÊý:ÎÞ
- * ·µ»ØÖµ£º
- * Z_FOTA_SUCCESS »ñÈ¡ÐÅÏ¢³É¹¦
- * Z_FOTA_FAIL»ñÈ¡ÐÅϢʧ°Ü
- * ×¢Òâ:
+ * ·µ»ØÖµ£º
+ * Z_FOTA_SUCCESS »ñÈ¡ÐÅÏ¢³É¹¦
+ * Z_FOTA_FAIL»ñÈ¡ÐÅϢʧ°Ü
+ * ×¢Òâ:
********************************************************************************/
int zxic_init_flag_partition();
@@ -275,12 +278,12 @@
/********************************************************************************
* º¯ÊýÃû: zxic_dual_get_fota_status_for_nv
- * ¹¦ÄÜÃèÊö:»ñȡϵͳNVÊÇ·ñͬ²½±êÖ¾
- * ²ÎÊý˵Ã÷£º
- * ÊäÈë²ÎÊý£ºÎÞ
- * Êä³ö²ÎÊý:ÎÞ
- * ·µ»ØÖµ£º
- * ״̬±êÖ¾ 0£º²»ÐèҪͬ²½£¬1£ºÐèҪͬ²½
+ * ¹¦ÄÜÃèÊö:»ñȡϵͳNVÊÇ·ñͬ²½±êÖ¾
+ * ²ÎÊý˵Ã÷£º
+ * ÊäÈë²ÎÊý£ºÎÞ
+ * Êä³ö²ÎÊý:ÎÞ
+ * ·µ»ØÖµ£º
+ * ״̬±êÖ¾ 0£º²»ÐèҪͬ²½£¬1£ºÐèҪͬ²½
* ×¢Òâ:
********************************************************************************/
int zxic_dual_get_fota_status_for_nv();
@@ -289,15 +292,15 @@
/********************************************************************************
* º¯ÊýÃû: zxic_dual_set_fota_status_for_nv
- * ¹¦ÄÜÃèÊö:ÉèÖÃϵͳNVÊÇ·ñͬ²½±êÖ¾
+ * ¹¦ÄÜÃèÊö:ÉèÖÃϵͳNVÊÇ·ñͬ²½±êÖ¾
* ²ÎÊý˵Ã÷£º
* ÊäÈë²ÎÊý£º
* status:״̬±êÖ¾£¬0£º²»ÐèҪͬ²½£¬1£ºÐèҪͬ²½
* Êä³ö²ÎÊý:ÎÞ
- * ·µ»ØÖµ£º
- * Z_FOTA_SUCCESS ÉèÖóɹ¦
- * Z_FOTA_FAIL ÉèÖÃʧ°Ü
- * ×¢Òâ:
+ * ·µ»ØÖµ£º
+ * Z_FOTA_SUCCESS ÉèÖóɹ¦
+ * Z_FOTA_FAIL ÉèÖÃʧ°Ü
+ * ×¢Òâ:
********************************************************************************/
int zxic_dual_set_fota_status_for_nv(int status);
int dual_AB_set_fota_status_for_nv(int status);
@@ -305,30 +308,30 @@
/********************************************************************************
* º¯ÊýÃû: zxic_dual_sync_system
- * ¹¦ÄÜÃèÊö: AB-AAϵͳͬ²½
- * ²ÎÊý˵Ã÷£º
- * ÊäÈë²ÎÊý£ºÎÞ
+ * ¹¦ÄÜÃèÊö: AB-AAϵͳͬ²½
+ * ²ÎÊý˵Ã÷£º
+ * ÊäÈë²ÎÊý£ºÎÞ
* Êä³ö²ÎÊý: ÎÞ
- * ·µ»ØÖµ£º
+ * ·µ»ØÖµ£º
* Z_FOTA_SUCCESS ͬ²½³É¹¦
* Z_FOTA_FAIL ͬ²½Ê§°Ü
- * ×¢Òâ:
+ * ×¢Òâ:
********************************************************************************/
-int zxic_dual_sync_system(void);
+int zxic_dual_sync_system(void);
/********************************************************************************
* º¯ÊýÃû: zxic_dual_get_upgrade_type
* ¹¦ÄÜÃèÊö: »ñÈ¡Éý¼¶ÀàÐÍ
- * ²ÎÊý˵Ã÷£º
- * ÊäÈë²ÎÊý£ºÎÞ
+ * ²ÎÊý˵Ã÷£º
+ * ÊäÈë²ÎÊý£ºÎÞ
* Êä³ö²ÎÊý: ÎÞ
- * ·µ»ØÖµ£º
+ * ·µ»ØÖµ£º
* Z_UPGRADE_TYPE_ALL È«°æ±¾ÀàÐÍ
* Z_UPGRADE_TYPE_PLATFORM ƽ̨ÀàÐÍ
* Z_UPGRADE_TYPE_OEM OEMÀàÐÍ
* Z_UPGRADE_TYPE_INVALID ÎÞЧÀàÐÍ
- * ×¢Òâ:
+ * ×¢Òâ:
********************************************************************************/
int zxic_dual_get_upgrade_type(void);
@@ -336,12 +339,12 @@
/********************************************************************************
* º¯ÊýÃû: zxic_dual_get_sync_status
* ¹¦ÄÜÃèÊö: »ñȡͬ²½×´Ì¬
- * ²ÎÊý˵Ã÷£º
- * ÊäÈë²ÎÊý£ºÎÞ
- * Êä³ö²ÎÊý:
+ * ²ÎÊý˵Ã÷£º
+ * ÊäÈë²ÎÊý£ºÎÞ
+ * Êä³ö²ÎÊý:
* sync_status ͬ²½×´Ì¬
* ·µ»ØÖµ£ºÎÞ
- * ×¢Òâ:
+ * ×¢Òâ:
********************************************************************************/
void zxic_dual_get_sync_status(int *sync_status);
@@ -349,18 +352,33 @@
/********************************************************************************
* º¯ÊýÃû: zxic_dual_set_sync_status
* ¹¦ÄÜÃèÊö: ÉèÖÃͬ²½×´Ì¬
- * ²ÎÊý˵Ã÷£º
+ * ²ÎÊý˵Ã÷£º
* ÊäÈë²ÎÊý£º
* sync_status ͬ²½×´Ì¬
* Êä³ö²ÎÊý: ÎÞ
* ·µ»ØÖµ£º
* Z_FOTA_SUCCESS ÉèÖóɹ¦
* Z_FOTA_FAIL ÉèÖÃʧ°Ü
- * ×¢Òâ:
+ * ×¢Òâ:
********************************************************************************/
int zxic_dual_set_sync_status(int sync_status);
+/********************************************************************************
+ * º¯ÊýÃû: zxic_dual_config_package_path
+ * ¹¦ÄÜÃèÊö: ÉèÖÃÉý¼¶°ü·¾¶
+ * ²ÎÊý˵Ã÷£º
+ * ÊäÈë²ÎÊý£º
+ * upgrade_package_path Éý¼¶°ü·¾¶
+ * length Éý¼¶°ü·¾¶³¤¶È
+ * Êä³ö²ÎÊý: ÎÞ
+ * ·µ»ØÖµ£º
+ * Z_FOTA_SUCCESS ÉèÖóɹ¦
+ * Z_FOTA_FAIL ÉèÖÃʧ°Ü
+ * ×¢Òâ:
+ ********************************************************************************/
+int zxic_dual_config_package_path(char *upgrade_package_path, int length);
+
#endif // ZXIC_FOTA_AB_UPGRADE_H
diff --git a/ap/lib/libupi_ab/libupi_ab.a b/ap/lib/libupi_ab/libupi_ab.a
index e7fac0f..d29cd1b 100644
--- a/ap/lib/libupi_ab/libupi_ab.a
+++ b/ap/lib/libupi_ab/libupi_ab.a
Binary files differ
diff --git a/ap/lib/libupi_ab/libupi_ab.so b/ap/lib/libupi_ab/libupi_ab.so
index 4047d48..bccd145 100755
--- a/ap/lib/libupi_ab/libupi_ab.so
+++ b/ap/lib/libupi_ab/libupi_ab.so
Binary files differ
diff --git a/ap/lib/libvoice/voice_api.c b/ap/lib/libvoice/voice_api.c
index ba07e83..3494e74 100755
--- a/ap/lib/libvoice/voice_api.c
+++ b/ap/lib/libvoice/voice_api.c
@@ -42,6 +42,9 @@
extern int mix_set_vp_path(struct mixer *mixer, char path);
extern int mix_get_vp_path(struct mixer *mixer, int *path);
extern int mix_get_voice_path(struct mixer *mixer, int *path);
+extern int mix_set_vploop(struct mixer *mixer, int path);
+extern int mix_get_vploop(struct mixer *mixer, int *state);
+
@@ -422,3 +425,112 @@
return 0;
}
+int ap_audio_set_loopback_enable(int dev_mode,int enable)
+{
+
+ struct mixer *voice_mixer = NULL;
+ int ret = 0;
+ struct pcm_config config_voice = {0};
+
+
+ printf("%s: start dev_mode=%d,enable=%d!\n",__func__, dev_mode,enable);
+
+ if ((dev_mode < T_OUTPUT_HANDSET ) ||(dev_mode >= T_OUTPUT_MAX)){
+ printf("%s: dev_mode not support, dev_mode=%d!\n",__func__, dev_mode);
+ return -1;
+ }
+ if ((enable != 0 )&&(enable != 1)){
+ printf("%s: enable val not support, enable=%d!\n",__func__, enable);
+ return -1;
+ }
+ if(enable == 1){
+
+ //open mixer dev for control
+ voice_mixer = mixer_open(VOCIE_SND_CARD_NUM);
+ if (!voice_mixer) {
+ printf("voice_mixer open failed!\n");
+ return -1;
+ }
+
+ //config mixer dev
+ ret = mix_set_voice_path(voice_mixer, dev_mode);
+ printf("mix_set_voice_path ret=%d!\n",ret);
+
+ ret = mix_set_vploop(voice_mixer, dev_mode);
+ printf("mix_set_vploop ret=%d!\n",ret);
+
+ //close mixer
+ mixer_close(voice_mixer);
+ voice_mixer = NULL;
+
+
+
+
+
+
+ }
+ else{
+
+ //open mixer dev for control
+ voice_mixer = mixer_open(VOCIE_SND_CARD_NUM);
+ if (!voice_mixer) {
+ printf("voice_mixer open failed!\n");
+ return -1;
+ }
+
+
+ ret = mix_set_vploop(voice_mixer, VP_PATH_OFF);
+ //close mixer
+ mixer_close(voice_mixer);
+ voice_mixer = NULL;
+
+
+ printf("mix_set_vploop off end ret=%d!\n",ret);
+
+
+
+
+
+ }
+
+ //return 0;
+
+ printf("%s: end enable=%d!\n",__func__, enable);
+
+ return ret;
+
+
+}
+
+
+
+int ap_audio_get_loopback_enable(int *p_enable)
+{
+ struct mixer *voice_mixer = NULL;
+ int ret = 0;
+ printf("%s: start!\n",__func__);
+
+ //open mixer dev for control
+ voice_mixer = mixer_open(VOCIE_SND_CARD_NUM);
+ if (!voice_mixer) {
+ printf("voice_mixer open failed!\n");
+ return -1;
+ }
+
+ //config mixer dev
+ ret = mix_get_vploop(voice_mixer, p_enable);
+ if((*p_enable != 0 ) &&(*p_enable != 1)){
+ printf("%s: p_enable not support, *p_enable=%d!\n",__func__, *p_enable);
+ ret = -1;
+ }
+ printf("%s: end *p_enable=%d!\n",__func__, *p_enable);
+
+ //close mixer
+ mixer_close(voice_mixer);
+ voice_mixer = NULL;
+
+ return ret;
+
+}
+
+
diff --git a/ap/lib/libvoice/voiceipc.c b/ap/lib/libvoice/voiceipc.c
index 998d7a5..de88327 100755
--- a/ap/lib/libvoice/voiceipc.c
+++ b/ap/lib/libvoice/voiceipc.c
@@ -22,8 +22,10 @@
extern int sc_audio_get_tx_voice_mute_state(int *p_mute);
extern int sc_audio_set_rx_voice_mute_state(int mute);
extern int sc_audio_get_rx_voice_mute_state(int *p_mute);
-extern int sc_audio_set_loopback_enable_state(int enable);
-extern int sc_audio_get_loopback_enable_state(int *p_enable);
+//extern int sc_audio_set_loopback_enable_state(int enable);
+//extern int sc_audio_get_loopback_enable_state(int *p_enable);
+int ap_audio_set_loopback_enable(int dev_mode,int enable);
+int ap_audio_get_loopback_enable(int *p_enable);
static int voice_ipc_fd = -1;
static voice_ipc_control_msg voice_ctrl_recvmsg[IPC_VOICE_FUNC_MAX] = {0};
@@ -400,11 +402,15 @@
{
int ret = VOICEIPC_OK;
int msg_len = 0;
- int enable = 0;
+ int dev_mode = 0,enable = 0;
//memcpy(&dev_mode, msg.param, msg.param_len);
- enable = *((int *)msg.param);
- ret = sc_audio_set_loopback_enable_state(enable);
+ //enable = *((int *)msg.param);
+ memcpy(&dev_mode, msg.param, sizeof(int));
+ memcpy(&enable, msg.param+sizeof(int), sizeof(int));
+
+ //ret = sc_audio_set_loopback_enable_state(enable);
+ ret = ap_audio_set_loopback_enable(dev_mode,enable);
//msg.func_id不变
msg.param_len = sizeof(int);
@@ -425,8 +431,8 @@
int *p_enable = NULL;
p_enable = (int *)msg.param;
- ret = sc_audio_get_loopback_enable_state(p_enable);
-
+ //ret = sc_audio_get_loopback_enable_state(p_enable);
+ ret = ap_audio_get_loopback_enable(p_enable);
//msg.func_id不变
msg.param_len = sizeof(int);
if(0 == ret)
diff --git a/ap/lib/libzcore/min/libbitmap_font.a b/ap/lib/libzcore/min/libbitmap_font.a
index 93aefbb..94ae61c 100644
--- a/ap/lib/libzcore/min/libbitmap_font.a
+++ b/ap/lib/libzcore/min/libbitmap_font.a
Binary files differ
diff --git a/ap/lib/libzcore/min/libttf_font.a b/ap/lib/libzcore/min/libttf_font.a
index 6fe90a5..0ae99c9 100644
--- a/ap/lib/libzcore/min/libttf_font.a
+++ b/ap/lib/libzcore/min/libttf_font.a
Binary files differ
diff --git a/ap/lib/libzcore/min/libzcore.a b/ap/lib/libzcore/min/libzcore.a
index 85f35e1..4079e1f 100644
--- a/ap/lib/libzcore/min/libzcore.a
+++ b/ap/lib/libzcore/min/libzcore.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/fwp/app_fw.a b/ap/lib/libzcore/std/lib/lib/fwp/app_fw.a
index b499735..71b4882 100644
--- a/ap/lib/libzcore/std/lib/lib/fwp/app_fw.a
+++ b/ap/lib/libzcore/std/lib/lib/fwp/app_fw.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/fwp/ar.mc b/ap/lib/libzcore/std/lib/lib/fwp/ar.mc
index 5a792bc..8f85058 100644
--- a/ap/lib/libzcore/std/lib/lib/fwp/ar.mc
+++ b/ap/lib/libzcore/std/lib/lib/fwp/ar.mc
@@ -1,11 +1,11 @@
-create /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/libzcore_fwp.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/fwp/app_fw.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/fwp/bl_psa.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/fwp/bl_svr.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/fwp/framework.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/fwp/fwkernel.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/fwp/gui.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/fwp/msm.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/fwp/ui_fw.a
+create /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/libzcore_fwp.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/fwp/app_fw.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/fwp/bl_psa.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/fwp/bl_svr.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/fwp/framework.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/fwp/fwkernel.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/fwp/gui.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/fwp/msm.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/fwp/ui_fw.a
save
end
diff --git a/ap/lib/libzcore/std/lib/lib/fwp/bl_psa.a b/ap/lib/libzcore/std/lib/lib/fwp/bl_psa.a
index a774524..0dbe80d 100644
--- a/ap/lib/libzcore/std/lib/lib/fwp/bl_psa.a
+++ b/ap/lib/libzcore/std/lib/lib/fwp/bl_psa.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/fwp/bl_svr.a b/ap/lib/libzcore/std/lib/lib/fwp/bl_svr.a
index 5fd8f96..ba31323 100644
--- a/ap/lib/libzcore/std/lib/lib/fwp/bl_svr.a
+++ b/ap/lib/libzcore/std/lib/lib/fwp/bl_svr.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/fwp/font/libbitmap_font.a b/ap/lib/libzcore/std/lib/lib/fwp/font/libbitmap_font.a
index f10ea41..e807b29 100644
--- a/ap/lib/libzcore/std/lib/lib/fwp/font/libbitmap_font.a
+++ b/ap/lib/libzcore/std/lib/lib/fwp/font/libbitmap_font.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/fwp/font/libttf_font.a b/ap/lib/libzcore/std/lib/lib/fwp/font/libttf_font.a
index 1b8e099..2018b61 100644
--- a/ap/lib/libzcore/std/lib/lib/fwp/font/libttf_font.a
+++ b/ap/lib/libzcore/std/lib/lib/fwp/font/libttf_font.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/fwp/framework.a b/ap/lib/libzcore/std/lib/lib/fwp/framework.a
index 3b42df5..8d47272 100644
--- a/ap/lib/libzcore/std/lib/lib/fwp/framework.a
+++ b/ap/lib/libzcore/std/lib/lib/fwp/framework.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/fwp/fwkernel.a b/ap/lib/libzcore/std/lib/lib/fwp/fwkernel.a
index bcc4402..ae1f146 100644
--- a/ap/lib/libzcore/std/lib/lib/fwp/fwkernel.a
+++ b/ap/lib/libzcore/std/lib/lib/fwp/fwkernel.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/fwp/gui.a b/ap/lib/libzcore/std/lib/lib/fwp/gui.a
index a8540d0..d8586ad 100644
--- a/ap/lib/libzcore/std/lib/lib/fwp/gui.a
+++ b/ap/lib/libzcore/std/lib/lib/fwp/gui.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/fwp/msm.a b/ap/lib/libzcore/std/lib/lib/fwp/msm.a
index d83bdef..92c98bd 100644
--- a/ap/lib/libzcore/std/lib/lib/fwp/msm.a
+++ b/ap/lib/libzcore/std/lib/lib/fwp/msm.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/fwp/ui_fw.a b/ap/lib/libzcore/std/lib/lib/fwp/ui_fw.a
index 3a6357a..765e303 100644
--- a/ap/lib/libzcore/std/lib/lib/fwp/ui_fw.a
+++ b/ap/lib/libzcore/std/lib/lib/fwp/ui_fw.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/libplatadapt_com.a b/ap/lib/libzcore/std/lib/lib/libplatadapt_com.a
index 31c3a73..b62cfbd 100644
--- a/ap/lib/libzcore/std/lib/lib/libplatadapt_com.a
+++ b/ap/lib/libzcore/std/lib/lib/libplatadapt_com.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/libplatadapt_fwp.a b/ap/lib/libzcore/std/lib/lib/libplatadapt_fwp.a
index 914933d..6a2b6b9 100644
--- a/ap/lib/libzcore/std/lib/lib/libplatadapt_fwp.a
+++ b/ap/lib/libzcore/std/lib/lib/libplatadapt_fwp.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/libplatadapt_phone.a b/ap/lib/libzcore/std/lib/lib/libplatadapt_phone.a
index fb7558e..623d06c 100644
--- a/ap/lib/libzcore/std/lib/lib/libplatadapt_phone.a
+++ b/ap/lib/libzcore/std/lib/lib/libplatadapt_phone.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/libplatadapt_poc.a b/ap/lib/libzcore/std/lib/lib/libplatadapt_poc.a
index 5b7d93c..05794d6 100644
--- a/ap/lib/libzcore/std/lib/lib/libplatadapt_poc.a
+++ b/ap/lib/libzcore/std/lib/lib/libplatadapt_poc.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/libplatadapt_watch.a b/ap/lib/libzcore/std/lib/lib/libplatadapt_watch.a
index 02dc896..ec3f3ec 100644
--- a/ap/lib/libzcore/std/lib/lib/libplatadapt_watch.a
+++ b/ap/lib/libzcore/std/lib/lib/libplatadapt_watch.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/libzcore_fwp.a b/ap/lib/libzcore/std/lib/lib/libzcore_fwp.a
index e45413e..62aea25 100644
--- a/ap/lib/libzcore/std/lib/lib/libzcore_fwp.a
+++ b/ap/lib/libzcore/std/lib/lib/libzcore_fwp.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/libzcore_phone.a b/ap/lib/libzcore/std/lib/lib/libzcore_phone.a
index 9b67c87..9edd731 100644
--- a/ap/lib/libzcore/std/lib/lib/libzcore_phone.a
+++ b/ap/lib/libzcore/std/lib/lib/libzcore_phone.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/libzcore_poc.a b/ap/lib/libzcore/std/lib/lib/libzcore_poc.a
index 9a08731..cdf5ec3 100644
--- a/ap/lib/libzcore/std/lib/lib/libzcore_poc.a
+++ b/ap/lib/libzcore/std/lib/lib/libzcore_poc.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/libzcore_watch.a b/ap/lib/libzcore/std/lib/lib/libzcore_watch.a
index 5a6c24b..115347c 100644
--- a/ap/lib/libzcore/std/lib/lib/libzcore_watch.a
+++ b/ap/lib/libzcore/std/lib/lib/libzcore_watch.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/phone/app_fw.a b/ap/lib/libzcore/std/lib/lib/phone/app_fw.a
index a2151d1..f3e711f 100644
--- a/ap/lib/libzcore/std/lib/lib/phone/app_fw.a
+++ b/ap/lib/libzcore/std/lib/lib/phone/app_fw.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/phone/ar.mc b/ap/lib/libzcore/std/lib/lib/phone/ar.mc
index 4e3a3a5..50e941e 100644
--- a/ap/lib/libzcore/std/lib/lib/phone/ar.mc
+++ b/ap/lib/libzcore/std/lib/lib/phone/ar.mc
@@ -1,11 +1,11 @@
-create /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/libzcore_phone.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/phone/app_fw.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/phone/bl_psa.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/phone/bl_svr.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/phone/framework.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/phone/fwkernel.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/phone/gui.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/phone/msm.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/phone/ui_fw.a
+create /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/libzcore_phone.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/phone/app_fw.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/phone/bl_psa.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/phone/bl_svr.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/phone/framework.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/phone/fwkernel.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/phone/gui.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/phone/msm.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/phone/ui_fw.a
save
end
diff --git a/ap/lib/libzcore/std/lib/lib/phone/bl_psa.a b/ap/lib/libzcore/std/lib/lib/phone/bl_psa.a
index 9cb4e6f..a49e114 100644
--- a/ap/lib/libzcore/std/lib/lib/phone/bl_psa.a
+++ b/ap/lib/libzcore/std/lib/lib/phone/bl_psa.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/phone/bl_svr.a b/ap/lib/libzcore/std/lib/lib/phone/bl_svr.a
index 6a0d8d3..a4b29d4 100644
--- a/ap/lib/libzcore/std/lib/lib/phone/bl_svr.a
+++ b/ap/lib/libzcore/std/lib/lib/phone/bl_svr.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/phone/font/libbitmap_font.a b/ap/lib/libzcore/std/lib/lib/phone/font/libbitmap_font.a
index 77e48c3..7d57fa1 100644
--- a/ap/lib/libzcore/std/lib/lib/phone/font/libbitmap_font.a
+++ b/ap/lib/libzcore/std/lib/lib/phone/font/libbitmap_font.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/phone/font/libttf_font.a b/ap/lib/libzcore/std/lib/lib/phone/font/libttf_font.a
index 0217fff..9800b4a 100644
--- a/ap/lib/libzcore/std/lib/lib/phone/font/libttf_font.a
+++ b/ap/lib/libzcore/std/lib/lib/phone/font/libttf_font.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/phone/framework.a b/ap/lib/libzcore/std/lib/lib/phone/framework.a
index f77cda0..0348cac 100644
--- a/ap/lib/libzcore/std/lib/lib/phone/framework.a
+++ b/ap/lib/libzcore/std/lib/lib/phone/framework.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/phone/fwkernel.a b/ap/lib/libzcore/std/lib/lib/phone/fwkernel.a
index 9b92754..39894d9 100644
--- a/ap/lib/libzcore/std/lib/lib/phone/fwkernel.a
+++ b/ap/lib/libzcore/std/lib/lib/phone/fwkernel.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/phone/gui.a b/ap/lib/libzcore/std/lib/lib/phone/gui.a
index fb8abb2..185d8f8 100644
--- a/ap/lib/libzcore/std/lib/lib/phone/gui.a
+++ b/ap/lib/libzcore/std/lib/lib/phone/gui.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/phone/msm.a b/ap/lib/libzcore/std/lib/lib/phone/msm.a
index 2a8313a..46128b4 100644
--- a/ap/lib/libzcore/std/lib/lib/phone/msm.a
+++ b/ap/lib/libzcore/std/lib/lib/phone/msm.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/phone/ui_fw.a b/ap/lib/libzcore/std/lib/lib/phone/ui_fw.a
index 97876aa..c48034f 100644
--- a/ap/lib/libzcore/std/lib/lib/phone/ui_fw.a
+++ b/ap/lib/libzcore/std/lib/lib/phone/ui_fw.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/poc/app_fw.a b/ap/lib/libzcore/std/lib/lib/poc/app_fw.a
index 6889113..d4f7a36 100644
--- a/ap/lib/libzcore/std/lib/lib/poc/app_fw.a
+++ b/ap/lib/libzcore/std/lib/lib/poc/app_fw.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/poc/ar.mc b/ap/lib/libzcore/std/lib/lib/poc/ar.mc
index dcbdd50..385e390 100644
--- a/ap/lib/libzcore/std/lib/lib/poc/ar.mc
+++ b/ap/lib/libzcore/std/lib/lib/poc/ar.mc
@@ -1,11 +1,11 @@
-create /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/libzcore_poc.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/poc/app_fw.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/poc/bl_psa.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/poc/bl_svr.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/poc/framework.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/poc/fwkernel.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/poc/gui.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/poc/msm.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/poc/ui_fw.a
+create /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/libzcore_poc.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/poc/app_fw.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/poc/bl_psa.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/poc/bl_svr.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/poc/framework.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/poc/fwkernel.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/poc/gui.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/poc/msm.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/poc/ui_fw.a
save
end
diff --git a/ap/lib/libzcore/std/lib/lib/poc/bl_psa.a b/ap/lib/libzcore/std/lib/lib/poc/bl_psa.a
index ad58019..8717824 100644
--- a/ap/lib/libzcore/std/lib/lib/poc/bl_psa.a
+++ b/ap/lib/libzcore/std/lib/lib/poc/bl_psa.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/poc/bl_svr.a b/ap/lib/libzcore/std/lib/lib/poc/bl_svr.a
index 49a5584..914eeff 100644
--- a/ap/lib/libzcore/std/lib/lib/poc/bl_svr.a
+++ b/ap/lib/libzcore/std/lib/lib/poc/bl_svr.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/poc/font/libbitmap_font.a b/ap/lib/libzcore/std/lib/lib/poc/font/libbitmap_font.a
index 60b9258..8d26aaf 100644
--- a/ap/lib/libzcore/std/lib/lib/poc/font/libbitmap_font.a
+++ b/ap/lib/libzcore/std/lib/lib/poc/font/libbitmap_font.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/poc/font/libttf_font.a b/ap/lib/libzcore/std/lib/lib/poc/font/libttf_font.a
index 7695dc9..15d7229 100644
--- a/ap/lib/libzcore/std/lib/lib/poc/font/libttf_font.a
+++ b/ap/lib/libzcore/std/lib/lib/poc/font/libttf_font.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/poc/framework.a b/ap/lib/libzcore/std/lib/lib/poc/framework.a
index 761e7b5..2306ef8 100644
--- a/ap/lib/libzcore/std/lib/lib/poc/framework.a
+++ b/ap/lib/libzcore/std/lib/lib/poc/framework.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/poc/fwkernel.a b/ap/lib/libzcore/std/lib/lib/poc/fwkernel.a
index ce18345..3e4e904 100644
--- a/ap/lib/libzcore/std/lib/lib/poc/fwkernel.a
+++ b/ap/lib/libzcore/std/lib/lib/poc/fwkernel.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/poc/gui.a b/ap/lib/libzcore/std/lib/lib/poc/gui.a
index 214f2b1..0f5ee46 100644
--- a/ap/lib/libzcore/std/lib/lib/poc/gui.a
+++ b/ap/lib/libzcore/std/lib/lib/poc/gui.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/poc/msm.a b/ap/lib/libzcore/std/lib/lib/poc/msm.a
index d49bb5a..51798cf 100644
--- a/ap/lib/libzcore/std/lib/lib/poc/msm.a
+++ b/ap/lib/libzcore/std/lib/lib/poc/msm.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/poc/ui_fw.a b/ap/lib/libzcore/std/lib/lib/poc/ui_fw.a
index e3c709b..d65ae80 100644
--- a/ap/lib/libzcore/std/lib/lib/poc/ui_fw.a
+++ b/ap/lib/libzcore/std/lib/lib/poc/ui_fw.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/watch/app_fw.a b/ap/lib/libzcore/std/lib/lib/watch/app_fw.a
index c3f3eb5..ee06b49 100644
--- a/ap/lib/libzcore/std/lib/lib/watch/app_fw.a
+++ b/ap/lib/libzcore/std/lib/lib/watch/app_fw.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/watch/ar.mc b/ap/lib/libzcore/std/lib/lib/watch/ar.mc
index 51e372f..fc8502e 100644
--- a/ap/lib/libzcore/std/lib/lib/watch/ar.mc
+++ b/ap/lib/libzcore/std/lib/lib/watch/ar.mc
@@ -1,11 +1,11 @@
-create /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/libzcore_watch.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/watch/app_fw.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/watch/bl_psa.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/watch/bl_svr.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/watch/framework.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/watch/fwkernel.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/watch/gui.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/watch/msm.a
-addlib /home/xujian/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/watch/ui_fw.a
+create /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/libzcore_watch.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/watch/app_fw.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/watch/bl_psa.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/watch/bl_svr.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/watch/framework.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/watch/fwkernel.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/watch/gui.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/watch/msm.a
+addlib /home/zte/share/v3t/sdk_build/ap_build/Code/ap/project/zx297520v3/prj_vehicle_dc/build/../../../../lib/libzcore/std/lib/watch/ui_fw.a
save
end
diff --git a/ap/lib/libzcore/std/lib/lib/watch/bl_psa.a b/ap/lib/libzcore/std/lib/lib/watch/bl_psa.a
index 52b9930..b0debad 100644
--- a/ap/lib/libzcore/std/lib/lib/watch/bl_psa.a
+++ b/ap/lib/libzcore/std/lib/lib/watch/bl_psa.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/watch/bl_svr.a b/ap/lib/libzcore/std/lib/lib/watch/bl_svr.a
index f66e03f..7355491 100644
--- a/ap/lib/libzcore/std/lib/lib/watch/bl_svr.a
+++ b/ap/lib/libzcore/std/lib/lib/watch/bl_svr.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/watch/font/libbitmap_font.a b/ap/lib/libzcore/std/lib/lib/watch/font/libbitmap_font.a
index eac90f3..bd660aa 100644
--- a/ap/lib/libzcore/std/lib/lib/watch/font/libbitmap_font.a
+++ b/ap/lib/libzcore/std/lib/lib/watch/font/libbitmap_font.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/watch/font/libttf_font.a b/ap/lib/libzcore/std/lib/lib/watch/font/libttf_font.a
index 4cde1f3..ee1cb8f 100644
--- a/ap/lib/libzcore/std/lib/lib/watch/font/libttf_font.a
+++ b/ap/lib/libzcore/std/lib/lib/watch/font/libttf_font.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/watch/framework.a b/ap/lib/libzcore/std/lib/lib/watch/framework.a
index 7b0c661..9ba2439 100644
--- a/ap/lib/libzcore/std/lib/lib/watch/framework.a
+++ b/ap/lib/libzcore/std/lib/lib/watch/framework.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/watch/fwkernel.a b/ap/lib/libzcore/std/lib/lib/watch/fwkernel.a
index 16ff5d4..b0b7764 100644
--- a/ap/lib/libzcore/std/lib/lib/watch/fwkernel.a
+++ b/ap/lib/libzcore/std/lib/lib/watch/fwkernel.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/watch/gui.a b/ap/lib/libzcore/std/lib/lib/watch/gui.a
index f455d79..3244ead 100644
--- a/ap/lib/libzcore/std/lib/lib/watch/gui.a
+++ b/ap/lib/libzcore/std/lib/lib/watch/gui.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/watch/msm.a b/ap/lib/libzcore/std/lib/lib/watch/msm.a
index 6a77cbf..51b8f17 100644
--- a/ap/lib/libzcore/std/lib/lib/watch/msm.a
+++ b/ap/lib/libzcore/std/lib/lib/watch/msm.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/watch/ui_fw.a b/ap/lib/libzcore/std/lib/lib/watch/ui_fw.a
index bc5326e..ac41751 100644
--- a/ap/lib/libzcore/std/lib/lib/watch/ui_fw.a
+++ b/ap/lib/libzcore/std/lib/lib/watch/ui_fw.a
Binary files differ
diff --git a/ap/lib/libzte_vsim/libzte_vsim.a b/ap/lib/libzte_vsim/libzte_vsim.a
index e2ebc45..47d3b59 100644
--- a/ap/lib/libzte_vsim/libzte_vsim.a
+++ b/ap/lib/libzte_vsim/libzte_vsim.a
Binary files differ