[Feature][ZXW-65]merged P49 base code

Change-Id: I3e09c0c3d47483bc645f02310380ecb7fc6f4041
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" \